#robotics Logs
Nov 17 2017
#robotics Calendar
12:02 AM logstaren: this could make servo cases couldn't it? it would be about $500, thoughts? https://www.youtube.com/watch?v=Lunou93re9g&t=163s
12:05 AM AchiestDragon: the ones i used in my 3d printer weigh in at over 1kg each , and are 110mn , with quite heffty microstepping controlers and i cant get them them to skip steps by hand stalling them , but they still do sometimes
12:05 AM logstaren: he says it's got a Z axis depth of 7 centimers
12:05 AM rue_mohr: I made both my printers
12:05 AM rue_mohr: I'd make another but I'm out of room just now
12:10 AM logstaren: build another shed
12:11 AM rue_mohr: that just makes the problem bigger
12:14 AM logstaren: agreed
12:14 AM AchiestDragon: bigger shead ?http://www.hts-ind.co.uk/wp-content/uploads/2016/04/temporary_industrial_building1-388x280.jpg
12:25 AM logstaren: AchiestDragon, I would live in that. No questions asked.
12:25 AM logstaren: I'd cut out windows though and put tinted glass on them.
12:29 AM AchiestDragon: the problem i would have is i would not be happy till it was full , or would build something in that would not get though the door
12:31 AM AchiestDragon: anyway afk, its 6:30 am here been up all night
01:07 AM edmoore: i'd like a big shed like that too
01:07 AM edmoore: for our workplace
01:07 AM edmoore: our current building is a bit small, couldn't get a decent VMC through the door
01:33 AM edmoore: lovely footage https://www.youtube.com/watch?v=mTAbj8aRVvg
01:42 AM rue_mohr: hahahahah
01:42 AM rue_mohr: I been playing with transistor circuits for hours, but as it turns out, the LM393 is JUST FINE with working with a 0.1V range against ground
01:42 AM rue_mohr: it switches wonderfully
01:46 AM rue_bed: SO
01:46 AM rue_bed: this means
01:47 AM rue_bed: that the best way to do this is to use a 74hc595 with diy R-2R ladder, and LM393 w/transistor controller
01:48 AM rue_bed: I dont think there is anything usefull I can do with the other comparitor in the 393
01:49 AM rue_bed: ok
08:56 AM rue_mohr: so if I replace the reset transistor with a lm393 comparitor, and add a R-2R+74hc595 dac to the ref for it, I have what I'm after
02:54 PM Burninate is now known as obormot
02:54 PM obormot is now known as Burninate
04:56 PM Jak_o_Shadows: https://github.com/basilfx/TRADFRI-Hacking is kinda cool. Could make my whole alarm clock thing much neater and smaller
07:13 PM rue_mohr: who the hell uses zigbee?!
07:14 PM rue_mohr: can it read my power meter?
07:23 PM Jak_o_Shadows: zigbee is pretty common in home automation?
07:23 PM Jak_o_Shadows: all the xioami stuff uses it
07:24 PM rue_mohr: I thought it became pointless somewhere along the line
07:24 PM rue_mohr: the modules cost WAY more than esp8266
07:24 PM rue_mohr: $30-$40 ea opposed to... $1.50
07:27 PM rue_mohr: Billy has a voltage source that goes from 0 to 5V it has a 2kohm impedence, Billy needs the range to be 0-0.1V with a load impedence of 10Mohms, choose a circuit for billy to use, and specify component values.
07:32 PM rue_mohr: hmm, well, if Billy uses a votlage divider with a 2k impedence, then it only needs to be 25:1
07:32 PM rue_mohr: so, what votlage divider has a 25:1 ratio, and a 2k impedence
07:34 PM rue_mohr: eaaaasy, 50k and 2.083k
07:34 PM rue_mohr: ah but wait kids, that output impedence
07:36 PM z64555: zigbees are kinda neat to play with if you want a wireless async data connection
07:37 PM rue_mohr: so then, Billy should use 1920 ohms and 80 ohms
07:37 PM z64555: The newer versions have a networking protocol in them, so it's not likely you'll be able to read your power meter with one
07:38 PM rue_mohr: power meter is zigbee, amongst a few other things
07:39 PM z64555: oh, unless you're talking about an actual module, and not the thing installed on a post outside
07:39 PM rue_mohr: the meter on the post outside has a zigbee modem, and a cb band radio
07:40 PM rue_mohr: they took over a large part of the cb spectrum that has the radio ammatures pissed
07:40 PM z64555: ooooohhh. Yeah I would bet they'd be pissed
07:41 PM rue_mohr: wait, shoudl the DAC reference be brought down to 0.1V for comparison, or should the 0.1V sense be amplified up for comparison
07:42 PM rue_mohr: I have a spare opamp
07:42 PM rue_mohr: well, lm393, so more of a comparitor
07:44 PM Jak_o_Shadows: zigbees are more point to poitn arent' they?
07:44 PM Jak_o_Shadows: also, better RF wise? Longer range, or some thing?
07:47 PM rue_mohr: well the meters talk to each other
07:47 PM rue_mohr: pass data to meters that can reach the network
07:48 PM rue_mohr: part of the todo was about them saying that meters only report their data in a blip every few hours, but neglecting to say their also passing blips from other meters
07:49 PM rue_mohr: I wonder if a lm393 can issue a stable gain of 50
07:51 PM rue_mohr: I can stay up all night, so I'm going to take a nap
07:54 PM rue_mohr: mmmmm
07:55 PM rue_mohr: I'd like to assemble some of the 120V led pilots I designed now that all the parts are in
08:13 PM Jak_o_Shadows: I'd like to do this PWM table -> PWM thing.
08:14 PM Jak_o_Shadows: I'm thinking a PWM frequency of FAST, with a PWM table change frequency of max 4 Hz, via DMA maybe?
08:15 PM Jak_o_Shadows: Through, not sure I need the DMA
08:28 PM AchiestDragon: get a small sram chip big enough to hold the pmw table , and a cpld configed to give you dual port access to the ram on port to the cpu the other to the pwm step counter , load ram in software , and you should be able to get ultra high precision pwm at rates up to a few mhz
08:35 PM Jak_o_Shadows: that's probably a superior solution.
08:35 PM Jak_o_Shadows: But like, this is for changing the brightness level in very discrete steps over the course of a minute.
08:35 PM Jak_o_Shadows: 30 mintues*
08:36 PM AchiestDragon: one of the topics that seems to come up freqently in cnc forums is the fact that real time control of steppers using pc based printerports as dio ports is stepping sync , the max swiching rate of a pc printer port is only arround 5mhz at best , when you got the x and y motors trying to create a pulse curve the acuracy of the stepping rate is an issue
08:38 PM AchiestDragon: the other beeing the os realy is not real time enough to let you have the interupt rates close enough without clashing when you want to go faster
08:41 PM AchiestDragon: why pwm ,, what about a digitaly controled pot ? you just have to update the value over spi or i2e every so often over the period
08:47 PM AchiestDragon: https://cdn-shop.adafruit.com/datasheets/tlc59711.pdf < or this , spi chip to control the led backlighing level
08:50 PM AchiestDragon: maybe just me but theres some functions i find better to do in h/w than s/w by nature as reduces the cpu load , leaving it free for other tasks
08:52 PM Jak_o_Shadows: Meh. I have hardware PWM. The only thing that is going to take CPU is changing the frequency
08:52 PM Jak_o_Shadows: Which is only going to take CPU because I'm optimising for memory use rather than CPU
08:52 PM Jak_o_Shadows: Also, for thiso ne, I need 1 channel
08:55 PM AchiestDragon: timer interupt then , one interupt = (total time of change) / number of steps in table , to update the pwm value
08:59 PM Jak_o_Shadows: I was gonna have timer just increment a uint32 or something. Then have the pwm table be a binary tree or something
09:01 PM Jak_o_Shadows: Through, to be more precise, I might have 16 counters (for the 16 differetn alarms possible), and just pick the max of them
09:03 PM AchiestDragon: if its a linear change then you dont need a table just on interupt pwm value = last pwm value - amount of change value ,write value , and store as last value , then return interupt
09:05 PM AchiestDragon: although you may want to add bits to chek if min value reached
09:09 PM AchiestDragon: i would use a table if the maths where complex like getting the pwm to change in accordance with a curve or another waveform like a sinewave
09:20 PM Jak_o_Shadows: Nah, not going to be linear.
09:20 PM Jak_o_Shadows: for starters, the brightness variation with duty cycle isn't linear
09:20 PM Jak_o_Shadows: for second, I want it to have a slow flashing about 20 minutes in.
09:25 PM rue_bed: Jak_o_Shadows, I'm not sure I understand your table pwm, what am I missing, there was going to be dma based pwm...
09:26 PM Jak_o_Shadows: I WAS going to have DMA updting the duty cycle of a PWM timer.
09:27 PM rue_bed: ah
09:27 PM Jak_o_Shadows: But i decided that I didn't want to have linear gaps in the PWM table values
09:27 PM rue_bed: I remember somehting about servo pwm and dma
09:31 PM rue_bed: oooh
09:31 PM rue_bed: right
09:31 PM Jak_o_Shadows: I haven't touched the servo sde in weeks
09:31 PM Jak_o_Shadows: Through, the christmas lights controller is arguably similar
09:31 PM rue_bed: the dma would be preloaded with the sequence the bits were going to change of all the pwm channels
09:32 PM rue_bed: the timer would span the change intervals and trigger the dma
09:34 PM rue_bed: in the case of the hobby servos, the table would just be a shift of a bit across all channels
09:35 PM rue_bed: the timer would wait the pulse duration for each channel
09:35 PM rue_bed: effectivly turning the dma into a 4017
09:35 PM rue_bed: across the native io of the controller
09:35 PM rue_bed: is... is my brain still in my head?
09:37 PM AchiestDragon: what cpu/ host & o/s
09:38 PM rue_bed: stm32103 no o/s
09:38 PM rue_bed: stm32F103
09:38 PM rue_bed: its part of how you get 88 servo pwm channels on a stm32
09:39 PM rue_bed: @16 bits ea
09:40 PM Jak_o_Shadows: sounds rightish
09:40 PM AchiestDragon: the curve problem is also why i ended up looking at doing it in hardware , and still am for my next hexapod
09:40 PM rue_bed: curve?
09:43 PM AchiestDragon: with a hexapod ( with longish legs ) the movment of one leg requires the foot to stay at the same point on the ground not move as the leg turns , right , so the knee joint of the leg needs to adjust for that as the hip joint moves
09:43 PM rue_bed: thats kinematics
09:44 PM rue_bed: angle elbow(dist C, dist A, dist B){ // returns angle c
09:44 PM rue_bed: return rad2deg(
09:44 PM rue_bed: acos(
09:44 PM rue_bed: ((double)SQR(A)+(double)SQR(B)-(double)SQR(C)) / ((double)2*(double)A*(double)B)
09:44 PM rue_bed: )
09:44 PM rue_bed: );
09:44 PM rue_bed: }
09:44 PM AchiestDragon: and with a hexapod you got that going on on at least 3 legs at the same time , also in sync with the others that are in the lifted part of a walking sequence
09:45 PM rue_bed: I suggest working out all the kinematics to put the endpoint of any leg whereever you want it
09:45 PM rue_bed: then working out the sequence of where you want the legs to be as it walks
09:46 PM rue_bed: move the world, or move the robot
09:46 PM rue_bed: there is only ONE person out there I'v seen get all the kinematics right
09:47 PM rue_bed: I started my big hexapod before they did it, I was going to show the world what proper hexapod control looks like
09:47 PM rue_bed: sigh
09:48 PM AchiestDragon: what i ended up doing was using a fpga , to sync the movment and seperatly actualy using a common lookup table for the sin and cos and sync the individual pwm timers
09:52 PM AchiestDragon: all the cpu had to do was set the next position values for each pwm , and it calculated the rate of change and individual position values for each individualy , so they would al run in correct sync
09:53 PM AchiestDragon: as doing it in software is a real pain
09:59 PM AchiestDragon: i did spy a scematic of the ip i had done for that a couple of weeks back in a pile of paperwork , but will probabaly re do it adding accelaration curves also
10:04 PM AchiestDragon: the main goal was to make it more fly by wire type control where all th e cpu should have to do is tell it move forward say 100 mm and it should walk there only calling on the cpu if thers a problem on the way , leving the cpu other things like mapping and obstical avoidance for the next command
10:08 PM AchiestDragon: i was putting in stuff to allow the whole walking process to be speed controled so it would slow down if one fo the feet did not find ground so that it could allow that leg to search for a place that made contact and other exceptions
10:12 PM AchiestDragon: mk2 was servo based , i used rc model servos with metal gears , but the controler payload was too heavy for it
10:15 PM AchiestDragon: mk2 also would fit though the door without having to remove its legs
10:24 PM AchiestDragon: https://github.com/xesscorp/CAT-Board dam , that looks like just the part i need , but not a lot of info on it or wether there actualy making them
10:59 PM rue_mohr: hah
10:59 PM rue_mohr: sounds like the size of my big hex
11:01 PM rue_mohr: nice
11:05 PM AchiestDragon: yea , im tring to aim for something not much bigger than these https://www.youtube.com/watch?v=-Soq9qpK5Ac
11:06 PM AchiestDragon: and about as fast if not faster
11:09 PM rue_mohr: they all look the same
11:10 PM Jak_o_Shadows: If it's a competition...
11:10 PM AchiestDragon: this guy seems to know how to get them to look right https://www.youtube.com/watch?v=GDaNkff5Yyg , but its basicaaly rc not autonomus
11:11 PM AchiestDragon: kool never the less
11:12 PM Jak_o_Shadows: Hmm. How much do zigbees cost
11:12 PM AchiestDragon: sorry for another link but https://www.youtube.com/watch?v=OI4OiKNEixc
11:26 PM AchiestDragon: what 37 servos that are £167.65 each
11:51 PM rue_mohr: "these are so simple to do, that were going to charge anyone who dosn't know how to do it thru the nose for them" D.I.Y.
11:53 PM rue_mohr: like my R-2R ladders
11:53 PM AchiestDragon: its because its a "hobby shop " product ,, like you go there to buy some model boat and its not far short of the cost of a full sized one ,
11:54 PM rue_mohr: the cat wants me to leave the window open so he can smell and hear the great outdoors
11:54 PM rue_mohr: ITS WINTER
11:55 PM rue_mohr: *bunt* out goes kitty.
11:55 PM rue_mohr: now I'll get to listen to him whinning to comein again
11:55 PM rue_mohr: ok, thinking.....
11:55 PM AchiestDragon: my cat brought a friend home about 12 month back , a scotish wild cat , so now i have to feed 2 of them
11:55 PM rue_mohr: hah
11:55 PM rue_mohr: will it let you touch it?
11:56 PM AchiestDragon: no , it calls 4 or 5 times a day for food but wont let you go near it
11:57 PM rue_mohr: so, I have to decide if I'm going to amplify the current sense or attenuate the setpoint for my comparitor