#robotics Logs

Aug 13 2017

#robotics Calendar

04:22 AM rue_shop3: damn, only 2am
04:24 AM * rue_shop3 stagggers a little
04:46 AM hackkitten: :3
04:48 AM rue_shop3: DAMNIT
04:49 AM rue_shop3: I just realized that rotating a servo 90 degrees will make the whole frame smaller in all the ways I wanted it to be
04:49 AM rue_shop3: and I just finished designing the frame
04:52 AM mrdata_: blork
04:53 AM mrdata_: rue_shop3, designing, not building, right
04:55 AM rue_shop3: well, one part was printed, but I had to tweek it anyhow
04:55 AM rue_shop3: there are 6 parts that will need to be changed
04:55 AM rue_shop3: 2:30am, I'm gonna go to bed and fall asleep there
05:01 AM hackkitten: sounds like a plan :)
05:01 AM Jak_o_Shadows: I need to reprint mopst of my stuff
05:02 AM Jak_o_Shadows: SOme of it cause bad printing, some of it cause silly design, some of it because it's just a little bit too thin, so it's a bit weak.
05:02 AM Jak_o_Shadows: But I can do stuff with it as is, so i'm going to
05:02 AM Jak_o_Shadows: better to make progress than to perpetualy redesign
05:08 AM mrdata_: define progress
05:08 AM mrdata_: test and adjust is refinement; that's progress
05:08 AM mrdata_: redesign is like scrapping all that you have
05:09 AM mrdata_: but you dont
05:09 AM mrdata_: each design informs the next
05:09 AM mrdata_: if you decide hey you could turn that part and meet several requirements, then do
05:10 AM mrdata_: i like to have three or more reasons to do anything
05:10 AM mrdata_: that makes it sensible
05:11 AM mrdata_: some things i designed and never built, i look at now and see how i was wrong
05:11 AM mrdata_: it's a softer lesson to know when to move on than to try to beat a poor design into working
05:44 AM hackkitten: though it can be highly educational :)
05:58 AM mrdata_: sadonecrobestiality is beating a dead horse
06:20 AM Jak_o_Shadows: At some stage, you need to bring things out of your head, paper, and computer into the real world
06:29 AM hackkitten: only to watch it explode spectacularly... maybe :)
06:29 AM * hackkitten is in the final stages of testing this PWM circuit :D
06:29 AM hackkitten: only lost one cap so far
06:30 AM hackkitten: first spent a few weeks agonising over the design together with friends and running lots of simulations
06:32 AM hackkitten: currently in the 'refinement and testing' phase :)
06:32 AM hackkitten: I guess some people like to just throw stuff on a breadboard/protoboard and see what it does
06:32 AM hackkitten: that's fine too :)
07:52 AM Jak_o_Shadows: Oh, absolutely. I did a reasonable amount of analysis to get the leg proportions, and stuff.
07:52 AM Jak_o_Shadows: But I haven't found a nice imulation tool for the actual motion, so stuff, it, real world in the mean time
12:38 PM rue_bed: what about thet suff their using in that slam video
02:51 PM SpeedEvil: http://imgur.com/gallery/s18aDQB Robotic sperm carrier. (safe for work)
03:11 PM rue_more: its intersting how they call them robots, but their just motion controlled particles
03:16 PM SpeedEvil: Indeed - easier headline
04:34 PM ace4016: https://youtu.be/_Cp-BGQfpHQ and https://www.youtube.com/watch?v=hlVmppyflS0
05:22 PM rue_shop3: halfing the number of poly's in an model really helps openscad
05:24 PM rue_shop3: I need a machine to make 1-off things for me that dosn't take as long to set up as it would take for me to make the thing myself
05:24 PM rue_shop3: its kinda like going the other way from mass production
05:24 PM rue_shop3: micro production, on a larger scale
05:24 PM Tom_L: your buddy finally cool off?
05:27 PM SpeedEvil: rue_more: minions!
05:29 PM rue_shop3: no
05:30 PM rue_shop3: Tom_L, so, you good on where to go with that?
05:30 PM rue_shop3: does that din mount pcb fit within the budget?
05:31 PM * rue_shop3 glances back at 8 pcb-din clips on a rail behind him
05:53 PM Tom_L: pretty sure, i'm gonna look for that opto after spagetti
06:18 PM Tom_L: haha rue_shop3
06:18 PM Tom_L: https://mesaus.com/index.php?route=product/product&path=74_77&product_id=131
06:18 PM Tom_L: right under my nose
06:45 PM rue_shop3: its 24V tho
06:45 PM rue_shop3: you still need a board
06:46 PM rue_shop3: and whats the coil current....
06:48 PM rue_shop3: 0.5w?
06:48 PM rue_shop3: 20mA?
07:04 PM Tom_L: i think those opto's will be ok
07:06 PM Tom_itx: http://www.mouser.com/ProductDetail/Schneider-Electric/RSB2A080BD/?qs=%2fha2pyFaduimHO8XzlsjWOnBOn4efcfrMgA4uVmiEVWLgCB0zNgYEA%3d%3d
07:08 PM Tom_itx: https://www.digikey.com/products/en?keywords=H11A817C-ND
07:08 PM veverak: hmm
07:08 PM veverak: hmmm
07:09 PM veverak: hmmmmm
07:09 PM veverak: C++ -> asynchronous complex behavior OR threads ?
07:10 PM veverak: got task A that should repeat 'n > 1000' times, task 'B' that runs once after 'A' set of tasks is done, than executes another set of task 'A', task 'C' that is executed every 't' seconds and task 'D' executed at random
07:10 PM veverak: so, basic is BAAAAAAAAA...AAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA.....AAAAAAAAAAABAAAAAA....
07:11 PM veverak: with periodic 'C' and 'D' inserted at random
07:11 PM veverak: I was thinking of simple state machine
07:13 PM deshipu: sleep is for the weak
07:14 PM veverak: or threading and lock over datastrucutre (both accesses the same structure)
07:14 PM deshipu: veverak: keep it synchronous and predictable as long as you can -- will ease debugging
07:15 PM veverak: deshipu: yeah, but the synchronous solution is obviously the more complex one here
07:15 PM deshipu: also avoid race conditions and the like
07:15 PM veverak: or not?
07:15 PM veverak: not sure
07:15 PM veverak: damn it :/
07:15 PM veverak: need to get paper/pen, draw everything
07:17 PM veverak: nah, synchronous
07:17 PM veverak: will ease logging and such
07:17 PM rue_shop3: synchronous paper?
07:17 PM veverak: just have to pick, if either 'state machine' with while true: case 'state': ...
07:18 PM Tom_L: rue_shop3
07:18 PM veverak: or queue with void*() calls
07:18 PM Tom_L: you think that opto will drive that ok?
07:18 PM Tom_L: all they give is the coil resistance
07:19 PM veverak: yeah
07:19 PM veverak: threadsafe queue of jobs to be executed sounds good
07:19 PM veverak: 'A' simply inserts 'A' again untl it decides to insert 'B' task
07:19 PM veverak: 'C' is insertex into queue by timer
07:19 PM veverak: 'D' is inserted by it's external 'trigger'
07:20 PM veverak: C/D are inserted from different thread, but queue should handle that
07:20 PM deshipu: as long as the queue doesn't grow too large
07:20 PM veverak: deshipu: it should not grow, really
07:21 PM rue_shop3: Tom_itx, it looks like a 20mA coil, the opto is 50mA rated
07:21 PM rue_shop3: still over 50%
07:21 PM veverak: deshipu: 'A' -> inserts A or B
07:21 PM deshipu: depends on how many tasks you have and how fast they are finished
07:21 PM rue_shop3: er, you know what I mean
07:21 PM veverak: B -> inserts A
07:21 PM rue_shop3: 200%
07:21 PM veverak: so, every task, inserts at most one other task
07:21 PM rue_shop3: veverak, queue based function execution?
07:21 PM veverak: rue_shop3: yup
07:21 PM deshipu: except for C and D
07:21 PM veverak: hmm
07:21 PM rue_shop3: been a long time since I did that
07:22 PM rue_shop3: and anyone can zerp the queue and start a new task stack?
07:22 PM veverak: deshipu: yeah, but 'C', 'D', 'B' should do one thing:
07:22 PM veverak: 'if A is not in queue, insert it'
07:22 PM veverak: I really think that number of items in queue can be '5' at most
07:22 PM deshipu: veverak: then maybe instead of a queueu
07:22 PM Tom_itx: rue_shop3, how big a resistor should i put on that to be safe?
07:22 PM deshipu: veverak: you just need 4 flags
07:22 PM veverak: rue_shop3: yeah, "throw everything away and start again" could work
07:22 PM deshipu: veverak: iterate over them and execute tasks A, B, C or D when the flag is set
07:22 PM rue_shop3: Tom_itx, 1k on the led
07:23 PM veverak: deshipu: loses order of the tasks
07:23 PM veverak: CDB
07:23 PM Tom_itx: yeah, what about the transistor side?
07:23 PM veverak: or
07:23 PM veverak: DCB
07:23 PM veverak: is different
07:23 PM rue_shop3: deshipu, I used it for a game, macromedia flash, back in .... 2002?
07:23 PM deshipu: you didn't say the order matters
07:23 PM veverak: yeah, I know
07:23 PM veverak: to be precise, if I would make it priority queue
07:23 PM veverak: C > D > B > A
07:24 PM rue_shop3: I never got around to a C implementation
07:24 PM veverak: than, C/D does not insert anything
07:24 PM veverak: B inserts only A
07:24 PM veverak: A inserts either A or B
07:24 PM deshipu: you can do that with the flags
07:24 PM veverak: yeah, that sounds simple
07:24 PM deshipu: if C flag not set, check D, if D not set, check B, etc.
07:24 PM veverak: deshipu: I see!
07:25 PM deshipu: how interrupts work on simple platforms
07:26 PM veverak: hmm
07:26 PM veverak: A -> argumentless
07:26 PM veverak: B -> needs one argument
07:26 PM veverak: C -> argumentless
07:26 PM veverak: D -> needs one argument
07:28 PM veverak: hmm, let me think again if task D won't appear multiple times
07:29 PM veverak: for A/B, multiple times is pointless, for C too. Chance that I will need 'D' to be executed AGAIN before it was executed first time, is real
07:29 PM veverak: it's small, but it's real
07:29 PM veverak: however, than the first call is pointless in first place
07:29 PM rue_shop3: DAMNIT, ITS LIKE THERE IS ONLY 1 RIGHT WAY TO ASSEMBLE THIS ROBOT
07:29 PM veverak: deshipu: yeah, flags can work
07:30 PM veverak: 4 flags, 4 objects with operator()
07:30 PM Tom_L: rue_shop3, from the inside out
07:30 PM veverak: thanks! :)
07:31 PM Tom_L: rue_shop3, what are you working on?
07:31 PM veverak: I also suppose, that this has minimal overhead
07:32 PM rue_shop3: ... a hexapod and a driveway people detector
07:33 PM veverak: so, container with 'executors' for each task, flag array, endless loop that fires executors based on flags
07:33 PM deshipu: you are overthinking it
07:33 PM deshipu: just do the simplest thing that works
07:33 PM veverak: not really , just brainstorming about how to organize it
07:33 PM veverak: it will be simple
07:34 PM veverak: (in the end)
07:34 PM deshipu: when's the end?
07:34 PM deshipu: in the end we all die
07:34 PM veverak: tomorrow maybe?
07:34 PM veverak: :)
07:34 PM veverak: deshipu: I will just think about it tomorrow
07:34 PM veverak: I know that I am shitty at designing things at 2am
07:34 PM deshipu: thinking is overrated
07:34 PM veverak: however, I still do most of the things at 2am....
07:34 PM deshipu: nothing good ever came out of it
07:34 PM rue_shop3: global stack of functions, each event causes the handling functions to get pushed on the stack, when each function in the stack finishes, the next one is called. events can clear and rebuild the execution stack, or append or insert calls
07:35 PM rue_shop3: :P
07:35 PM rue_shop3: been there
07:35 PM veverak: rue_shop3: or something like that :)
07:35 PM veverak: night!
07:35 PM deshipu: good night
07:35 PM deshipu: I hope the pcbs will arrive tomorrow
07:44 PM rue_shop3: better than that, they will arrive tommorow for the next month, then they will arrive today
07:44 PM deshipu: they are in the country already
07:44 PM rue_shop3: hopefully the country isn't canada
07:47 PM rue_shop3: huh, freq is almost 200% out
07:47 PM deshipu: no, it's a real country
07:47 PM rue_shop3: the odds of it not being in a real country are low
07:48 PM deshipu: ok, maybe a confederation
07:48 PM deshipu: so what if there is no capital
07:48 PM rue_shop3: or a unitation?
07:49 PM rue_shop3: I know a country with no name, but it has 3 capitals
07:49 PM rue_shop3: ASU, in no particular order
10:54 PM rue_more: so, I cant use a 38Khz beam to detect an obspicle by loss of signal path
10:55 PM rue_more: but, I can continious transmitt a stream, leave the reciever saturated, and wait for a blocking obsticle to unsaturate it
10:57 PM rue_more: :/
10:57 PM rue_more: or for $6 I can just get a beam sensor from china
10:58 PM Tom_L: rue_more
10:58 PM Tom_L: what sort of a diode should i use across the coil?
10:58 PM Tom_L: 1n914 enough?
10:58 PM rue_more: 1N4001
10:58 PM rue_more: NONO
10:58 PM Tom_L: ok
10:58 PM Tom_L: i have those
10:58 PM rue_more: 1N4002
10:58 PM rue_more: NO no
10:58 PM Tom_L: 1A right?
10:59 PM rue_more: 1N4004
10:59 PM Tom_L: 2A
10:59 PM rue_more: no wait 1N4001 was better
10:59 PM rue_more: 1N5818
10:59 PM rue_more: no 4002
11:00 PM Tom_L: i'll see what i got
11:00 PM Tom_L: should it be fast or just any diode?
11:00 PM rue_more: ok, look, whatever you use, needs: a reeverse breakdown voltage of more than 48V
11:00 PM Tom_L: 24
11:00 PM rue_more: and a continious current rating of more than 20mA
11:00 PM rue_more: no 48
11:00 PM Tom_L: x2
11:00 PM rue_more: 200%
11:00 PM rue_more: er, sorry corrent is 40mA
11:01 PM rue_more: so, ok, 40mA, 48V rating
11:01 PM rue_more: final answer
11:01 PM Tom_L: it'll be something outta the box
11:02 PM Tom_L: and 100 ohm in series just for good measure
11:02 PM rue_more: ?
11:02 PM Tom_L: from the opto to the coil
11:02 PM rue_more: not the diode?
11:02 PM Tom_L: or should i drive the coil direct?
11:02 PM Tom_L: no no
11:02 PM rue_more: no, its inductive, it'll be fine
11:02 PM Tom_L: in series with the coil
11:03 PM Tom_L: so drive it directly from the opto?
11:03 PM rue_more: yup
11:03 PM Tom_L: mkay
11:03 PM rue_more: opto is rated for 50mA
11:03 PM Tom_L: i got 10 so i'll believe you on the first one
11:03 PM rue_more: yea, there are optos that are rated for more, but you dont need it
11:03 PM Tom_L: it's what i got
11:03 PM rue_more: shall I do a bench test?
11:03 PM rue_more: is your opto a PC817?
11:03 PM Tom_L: no
11:04 PM rue_more: why not
11:04 PM Tom_L: 814
11:04 PM Tom_L: h11A814
11:04 PM Tom_L: i had another one but i dunno what it is
11:06 PM Tom_L: sry
11:06 PM Tom_L: H11A817
11:06 PM Tom_L: mm the other one is triac out
11:07 PM rue_more: huh, its also 50mA
11:07 PM rue_more: the 817 is the most popular opto
11:07 PM Tom_L: that's what this is
11:07 PM rue_more: crack open just about any power supply to get one
11:07 PM rue_more: from wall warts to laserprinters
11:07 PM Tom_itx: https://www.digikey.com/products/en?keywords=PS2501L-1-H-A-ND
11:08 PM Tom_L: got some of those too
11:08 PM Tom_L: wtf are those for...
11:08 PM Tom_L: i can't remember why i got them
11:09 PM rue_more: huh
11:09 PM rue_more: maybe replacements when the fpga board blew
11:09 PM Tom_L: don't think so
11:10 PM Tom_L: no clue
11:10 PM rue_more: shall i set up a 817 driving a 24V coil and leave it for the night at 1Hz?
11:10 PM Tom_L: sure
11:10 PM Tom_L: i got 1k to the led
11:10 PM rue_more: sounds good
11:10 PM Tom_L: and you said drive the coil direct to 24v
11:10 PM Tom_L: emitter to what?
11:10 PM rue_more: the IR can go hard, even like 100ohms would prolly be ok with it
11:10 PM Tom_L: collector to what?
11:11 PM Tom_L: i'll feed it +24v to the coil
11:11 PM rue_more: go emitter to ground and collector to coil
11:11 PM Tom_L: then gnd the
11:11 PM rue_more: call me old fashond
11:11 PM Tom_L: mkay
11:12 PM Tom_L: JT had these
11:13 PM Tom_L: just as long as it switches... i'll mess with the led resistor
11:14 PM Tom_L: man, that's the first time i had everything i needed...
11:14 PM Tom_L: even have a vero board somebody sent me
11:37 PM rue_shop3: tom, less than 1k, needs lots of drive current
11:38 PM rue_shop3: I'm at 5V input, w/220ohms and getting 5V drop across the output (which switches the relay fine)
11:39 PM rue_shop3: shows 7mA
11:39 PM rue_shop3: so, it could be lower
11:40 PM rue_shop3: hah, no, my freq gen cant put out that much current
11:41 PM rue_shop3: 1 min
11:47 PM rue_shop3: Tom_L, the led, use a 330R resistor, the drive current is 8.5mA, the output voltage drop is 1V
11:47 PM rue_shop3: ping?
11:48 PM rue_shop3: 470 seems to high, go with 330