#robotics Logs
Sep 09 2018
#robotics Calendar
12:24 AM rue_shop4: hardware debounce is done with a RS flipflop, the common of the switch goes to ground, the NO goes to set, and the NC goes to reset
12:28 AM rue_shop4: k
01:04 AM mrdata: sometimes debounce is done with an RC filter
01:10 AM rue_shop3: hahahh, the datasheet for the 74ls148 has all the signals backwards, I just wired my keyboard exactly how I didn't want it
01:11 AM rue_shop3: mrdata, yes, but real, proper, good debounce is done with a spdt switch and an rs flipflop
01:12 AM mrdata: backwards? you mean high is low?
01:12 AM mrdata: etc
01:12 AM mrdata: it's negative logic??
01:13 AM mrdata: backwards pinouts?
01:13 AM rue_shop3: no, the datasheet has inputs 0-7
01:13 AM rue_shop3: and a 3 bit output
01:13 AM rue_shop3: but input 0 is 111
01:13 AM rue_shop3: and input 7 is 000
01:13 AM mrdata: thats negative logic
01:13 AM rue_shop3: "crap"
01:13 AM rue_shop3: anyhow
01:13 AM rue_shop3: I have a microcontroller in the middle, I can put a ~ in the code
01:14 AM rue_shop3: the freq gen has 8 ranges
01:14 AM rue_shop3: the '148 circuit for the keyboard, and the '138 circuit for the indicator leds is done
01:14 AM rue_shop3: need to mount the lcd to it
01:15 AM rue_shop3: then trim it all up
01:15 AM rue_shop3: and I'm getting close
01:15 AM rue_shop3: I suppose after that, I'll build the board for the dividers and output driver
01:16 AM rue_shop3: I'v read that the 74HC240 is SUCH a good RF driver that some people use it for up to 1w transmitters
01:17 AM rue_shop3: you use 1 gate as a subdriver, then put all the other in parallel for the output driver
01:18 AM rue_shop3: so, I'll have a board with the SI5153 on it, 7x 7490 dividers, a 74ls151 selector, and a 74hc240 output driver
02:20 AM rue_shop4: ok, the lcd is on and it even works
02:20 AM rue_shop4: so, next I need to tie in the buttons and code then up
03:41 AM rue_mohr: https://robothon.org/rules-pop-can-challenge/
03:41 AM rue_mohr: nice
04:18 AM Jak_o_Shadows: it's not critically importa,t so i'd rather just sw debounce.
04:18 AM Jak_o_Shadows: rather than complicate the wiring
06:30 AM orlock: hmm
06:30 AM orlock: i had a thought
06:34 AM orlock: maybe this steppers wired so it's only exicing a small portion of the coils
06:47 AM orlock: one coil is 22 ohm, the others 224 on the 6 wire motor
06:47 AM orlock: other motors its 17 ohms
12:08 PM rue_bed: its highly unlikley
12:08 PM rue_bed: right up there with finger cancer
01:00 PM rue_shop4: --
04:48 PM rue_shop3: first ver of digital servo is a fail
04:48 PM rue_shop3: oscillates at 4Khz, but I didn't have the DAC serial lines set to ouput, so I'll try again here
04:56 PM rue_shop3: SWEEEEET
04:56 PM rue_shop3: its a digital force feedback servo!
04:59 PM rue_shop3: I wonder how well it would work if the motor drive signal were voltage and not current
05:02 PM rue_shop3: feedback level could go up a few points
05:02 PM rue_shop3: temp = (AdcValues[0]-AdcValues[1])/Kp0;
05:02 PM rue_shop3: #define Kp0 4
05:02 PM rue_shop3: so, maybe 2
05:11 PM rue_shop3: oo, math bug, when its severly out of range, it stops trying
05:11 PM rue_shop3: temp = (AdcValues[0]-AdcValues[1])/Kp0;
05:11 PM rue_shop3: pwm0 = limit(temp, -127, 127) + 127;
05:11 PM rue_shop3: send8(pwm0);
05:12 PM rue_shop3: temp is an int, adcvalues are int
05:12 PM rue_shop3: hmm
05:12 PM rue_shop3: #define limit(v, l, h) ((v) > (h)) ? (h) : ((v) < (l)) ? (l) : (v)
05:13 PM rue_shop3: even pwm0 is an int
05:14 PM Tom_L: hobby servo or 10hp monster?
05:14 PM rue_shop3: send8 is unsigned int, but gcc should take care of that.
05:14 PM rue_shop3: heh, cdrom motor
05:14 PM rue_shop3: and custom gearbox to pot
05:14 PM Tom_L: 3phase?
05:15 PM Tom_L: bldc
05:15 PM rue_shop3: brushed
05:15 PM rue_shop3: I'll take a pic of it all, its been fun
05:19 PM rue_mohr: http://ruemohr.org/~ircjunk/projects/servo/p1100692.jpg
05:19 PM rue_mohr: ok, so its almost all new
05:19 PM rue_mohr: the black box is a +-12V power supply
05:20 PM rue_mohr: the boards in the breadboard are 8 bit serial current control motor drivers
05:20 PM rue_mohr: the mechanics infront are cdrom motors with pots
05:20 PM rue_mohr: its force feedback, turning either servo turns the other
05:20 PM Tom_L: you print the mounts?
05:21 PM rue_mohr: and if one of them is stopped, you can feel the resistance on the other side
05:21 PM rue_mohr: the orange is PVC pipe, the blue is printed
05:21 PM rue_mohr: the white gears are a china special
05:21 PM Tom_L: figured that
05:21 PM rue_mohr: I didn't gear it enough tho
05:22 PM rue_mohr: needs an extra ~3:1
05:22 PM rue_mohr: which is a double edges sword, you want the torque but not the gearbox resistance
05:22 PM rue_mohr: so, I suppose I should just use larger mtoors
05:22 PM Tom_L: you could take the 3:1 from my Z cause i don't need it :)
05:23 PM rue_mohr: :)
05:23 PM rue_mohr: so it works tho
05:23 PM rue_mohr: which is cool
05:23 PM Tom_L: current feedback?
05:23 PM rue_mohr: I can seperate those two units as far as I want, its just a digital comm line between them
05:23 PM rue_mohr: with a twist
05:23 PM rue_mohr: so, the controller takes in the two analog positions
05:24 PM Tom_L: from what?
05:24 PM rue_mohr: does the feedback calc, and sends the result out as a force value thats applied to each servo identicle
05:24 PM rue_mohr: the signals come from the pots
05:24 PM Tom_L: ahh they're hiding
05:24 PM rue_mohr: their on the large gear
05:24 PM Tom_L: yep
05:25 PM rue_mohr: green-yellow-orange
05:25 PM rue_mohr: yea, this is cool
05:25 PM Tom_L: i used one for position on my balance bot
05:26 PM rue_mohr: so, I might tune it up a bit, but the next step is to be using serial adc's, one controller on each end, and a serial link between them
05:26 PM rue_mohr: this is for the 12' mecha
05:26 PM rue_mohr: the cool thing is that it doesn't matter what kinda actuator you use
05:26 PM rue_mohr: signal->force, the mechanism doesn't matter
05:26 PM Tom_L: a video could be in order
05:27 PM rue_mohr: not too interesting, you turn either side and the other side moves
05:27 PM rue_mohr: working it out has been a brain-twister tho
05:27 PM Tom_L: did you use similar code on your muscle tests?
05:27 PM rue_mohr: there are a lot of symantics
05:27 PM rue_mohr: no, this is totally new
05:28 PM rue_mohr: its the first time I'v applied current control and force based signals
05:29 PM rue_mohr: the mecha will use 47 channels of this
05:30 PM rue_mohr: each controller will take on 8 channels, 6 controllers linkked to a computer, that pushes everything over network, and breaks down in the same way on the other side
05:30 PM Tom_L: what sort of network?
05:31 PM Tom_L: can bus, ethernet, ...
05:31 PM rue_mohr: probably tripple bonded wifi
05:36 PM rue_shop4: well yay, that was a milestone
05:36 PM Tom_L: sounds like it
05:36 PM rue_shop4: it proved a thing too
05:36 PM Tom_L: mega328?
05:36 PM rue_shop4: 32
05:37 PM rue_shop4: it proved that I dont need to measure the actual force to do the force feedback
05:37 PM rue_shop4: I can take the error and use it to apply a force to both sides
05:37 PM rue_shop4: its kinda a semantic difference
05:39 PM rue_shop4: the other cool thing is that I can apply a multiplier to create a difference in force between the two sides
05:39 PM rue_shop4: so A can apply 4x the force to B, and yet get 1/4 the force from it
05:40 PM rue_shop4: which is good when its a 5.5' human operating a 12' robot
05:41 PM rue_shop4: or even its its a 5.5' human operating a 0.5' robot
05:44 PM rue_shop4: I'm not hearing a lot of inspired imaginations, I recon nobody understands what I'm saying again?
05:48 PM Tom_L: was afk
05:49 PM Tom_L: i get what you're doing
05:49 PM Tom_L: couldn't write it but i get it
05:51 PM rue_shop4: I wonder if the dollar store is still open
05:51 PM rue_shop4: mmmm
05:55 PM Tom_L: you gonna sell em the idea?
06:25 PM rue_shop4: they want $7 for _1_ ratchet strap
06:25 PM rue_shop4: one thats prolly not even worth 4
06:25 PM rue_shop4: all the other stroes that sell them closed up, so I'll have to get them later
06:26 PM rue_shop4: (for the jigs for the big rings)
07:16 PM Tom_L: and i thought it was all supposed to be a dollar
07:24 PM rue_shop4: not anymore
07:25 PM rue_shop4: they want so much for pens I can buy them cheaper at the drug store
07:35 PM rue_shop4: Tom_L, quick, whats G4 ?
07:35 PM Tom_L: umm dwell
07:35 PM rue_shop4: aha
07:35 PM rue_shop4: ok
07:36 PM Tom_L: GB4 P0.5 wait 1/2 sec
07:36 PM Tom_L: G4*
07:36 PM rue_shop4: np :)
07:36 PM rue_shop4: G21 G90 G40
07:36 PM rue_shop4: G0 Z10.0
07:36 PM rue_shop4: G17
07:36 PM rue_shop4: M3 S1000
07:36 PM rue_shop4: ( GO NOW )
07:36 PM rue_shop4: G00 X0.000 Y0.000 Z4.000
07:36 PM rue_shop4: G00 X0.000 Y0.000 Z1.000
07:36 PM rue_shop4: G01 F100.000 X0.000 Y0.000 Z-7.000
07:36 PM rue_shop4: G4 P0.050
07:36 PM rue_shop4: G00 X0.000 Y0.000 Z4.000
07:36 PM rue_shop4: G00 X-0.000 Y-30.000 Z4.000
07:36 PM rue_shop4: ....
07:37 PM rue_shop4: try my encoder disc again
07:37 PM Tom_L: why 2 rapids in succession?
07:37 PM rue_shop4: I suppose
07:37 PM rue_shop4: hmm
07:37 PM Tom_L: those are all rapid moves except one
07:37 PM Tom_L: G00
07:37 PM Tom_L: G1 is linear
07:37 PM rue_shop4: hmm
07:37 PM rue_shop4: there are 3 jogs for every hole...
07:38 PM Tom_L: no circular moves in it?
07:38 PM Tom_L: do printers honor arcs or convert to line segments?
07:38 PM rue_shop4: void drillHole(HoleOp_t method, point2d_t position) {
07:38 PM rue_shop4:
07:38 PM rue_shop4: double dep;
07:38 PM rue_shop4:
07:38 PM rue_shop4: // goto start position
07:38 PM rue_shop4: MachineCommandJogto( position.x, position.y, method.jogHeight, method.jogSpeed );
07:38 PM rue_shop4: MachineCommandJogto( position.x, position.y, method.startHeight, method.jogSpeed ); // jog to start height
07:38 PM rue_shop4: everything with them is line segments
07:39 PM rue_shop4: from the slicer software
07:39 PM Tom_L: goes back further than that
07:39 PM Tom_L: openscad
07:39 PM Tom_L: all triangles
07:39 PM rue_shop4: yea, it outputs all polygon stuff
07:39 PM rue_shop4: stl
07:40 PM rue_shop4: the reason for the dual g0's is becuase I go to x,y, at jog height, then move down to launch distance
07:40 PM rue_shop4: MachineCommandJogto( position.x, position.y, method.jogHeight, method.jogSpeed ); // pullout to jog height
07:41 PM rue_shop4: then when its finished drilling the hole, it jogs back to safe xy jog height
07:41 PM Tom_L: your interpreter?
07:41 PM rue_shop4: yup
07:41 PM Tom_L: ok
07:42 PM rue_shop4: it looks like it could use an optimizer that checks the prev. hight and skips the extra jog if it doesn't need it
07:42 PM Tom_L: why do you need dwell there?
07:42 PM rue_shop4: its the bottom of the hole
07:42 PM rue_shop4: waiting for the drill to finish a rev
07:42 PM Tom_L: no peck cycle
07:42 PM rue_shop4: nope
07:42 PM rue_shop4: have to do it manually
07:42 PM Tom_L: you may want a peck
07:42 PM rue_shop4: it does
07:42 PM Tom_L: clears long chips
07:43 PM rue_shop4: /can
07:43 PM rue_shop4: void drillHole(HoleOp_t method, point2d_t position) {
07:43 PM rue_shop4: typedef struct HoleOp_s {
07:43 PM rue_shop4: float jogHeight; // absolute
07:43 PM rue_shop4: float jogSpeed; // machine units
07:43 PM rue_shop4: float startHeight; // where the feedrate starts
07:43 PM rue_shop4: float feedRate; // fer the drillin ya know
07:43 PM rue_shop4:
07:43 PM rue_shop4: float peckDepth; // if this is greater than the finish depth, its a one-pass drill
07:43 PM rue_shop4: float peckPulloutDist; // this value is trimmed to the start height
07:43 PM rue_shop4: float pulloutSpeed; // all reverse ops
07:43 PM rue_shop4:
07:43 PM rue_shop4: float finishDepth; // where to stop (should be negitive number)
07:43 PM rue_shop4: float finishDwell; // how long to pause before pulling off of bottom of the hole.
07:43 PM rue_shop4:
07:43 PM rue_shop4: } HoleOp_t;
07:44 PM rue_shop4: I can apply the Op to whatever things in the drawing I want
07:44 PM rue_shop4: I dont need 1/hole
07:45 PM Tom_L: start height could be understood instead of specified
07:45 PM rue_shop4: global for the part?
07:45 PM Tom_L: set a clear distance for the tool and start height starts there by default
07:45 PM Tom_L: or for the operation
07:46 PM rue_shop4: this is r1, I'm think I'm gonna make lots of changes, but need to use it to know exactly what they will be
07:46 PM rue_shop4: I keep daydreaming that its sunny outside
07:46 PM Tom_L: mine i give: LEVEL, CLEAR, PROFILE_TOP
07:46 PM rue_shop4: level?
07:46 PM Tom_L: level is where to start
07:46 PM rue_shop4: whats profile_top?
07:46 PM Tom_L: clear is retract safe distance
07:46 PM Tom_L: profile top is the top of the material at that point
07:47 PM Tom_L: could be the top of the block or the top of a pocket etc
07:47 PM rue_shop4: ok
07:47 PM Tom_L: clear makes it all safe though
07:48 PM Tom_L: that describes the tool, then it describes the operation separate
07:51 PM orlock: eurgh
07:56 PM orlock: rue: stepper question
07:57 PM orlock: how many coils, rougly, mght an average small stepper have?
07:58 PM orlock: what i'm wondering - i have this stepper that presents weirdly
07:59 PM orlock: could it be possible that 1/8th or so of the coils can be energised seperatly to the rest?
08:02 PM rue_shop3: its as common as finger cancer (not really)
08:02 PM rue_shop3: can you take me images of the origional driver board?
08:02 PM orlock: yeah, and it's a custom made stepper
08:02 PM Tom_L: how would that benefit anything?
08:02 PM rue_shop3: I should be abel to tell ya pretty quick
08:03 PM rue_shop3: almost all steppers are custom made
08:03 PM rue_shop3: take any random stepper out of a printer and the model is just enough different from the companies main model numbers to know its custom
08:03 PM orlock: Tom_L: 95% of it's time is spent moving slow with minimal torque needed, and they want the batteries o last as long as possible
08:03 PM rue_shop3: can you take me images of the origional driver board?
08:03 PM rue_shop3: I should be abel to tell ya pretty quick
08:03 PM orlock: the other 5% of the time somebody might actually want it to move "faster"
08:04 PM rue_shop3: can you take me images of the origional driver board?
08:04 PM rue_shop3: I should be abel to tell ya pretty quick
08:04 PM Tom_L: still needs enough energy to cog the magnets
08:04 PM orlock: rue_shop3: i'll try dig them up
08:05 PM orlock: i find somebody that had probed the coil resistance - it was all in french
08:05 PM Tom_L: translate.google.com
08:05 PM rue_shop3: lets see the page anyhow
08:05 PM rue_shop3: french is just backwards english with a heavy topping of stupid
08:06 PM rue_shop3: I should know, I'm canadian
08:08 PM orlock: It's not in front of me, still looking for a photo i've taken
08:08 PM orlock: https://www.cloudynights.com/uploads/monthly_05_2007/post-7860-14071030281089.jpg
08:10 PM orlock: the 4 wire version measures 17 ohms
08:11 PM orlock: this one measures 22 and 224
08:11 PM orlock: in series thats still not 17 ohms
08:13 PM orlock: ok found it
08:13 PM orlock: https://somepicturesof.space/HEQ5_Driver_Board.jpg
08:13 PM Tom_L: 224 must be the single coil
08:14 PM orlock: Tom_L: and the 22 is "the rest of them"
08:14 PM Tom_L: no, just the opposite...
08:14 PM Tom_L: 22 is shorter wire
08:14 PM Tom_L: less coils
08:14 PM rue_shop4: orlock, what are the 3 different connectors?
08:14 PM orlock: ok
08:14 PM rue_shop4: 4pin - 4pin - 6 pin
08:14 PM orlock: i was thinking in parallel?
08:15 PM rue_shop4: it looks more like its a bipolar driver
08:15 PM rue_shop4: orlock, what are the 3 different connectors?
08:15 PM rue_shop4: 4pin - 4pin - 6 pin
08:15 PM orlock: rue_shop4: first 4 is controller, second 4 wire is the DEC motor, so only moves when you tell it
08:15 PM orlock: the 6 pin is for the 6 wire RA motor - which runs at a fixed slow speed 95% of the time
08:15 PM rue_shop4: ok I need to see the back and I need hints on the transistor part numbers
08:15 PM orlock: and 5% of the time needs to move faster with more power
08:16 PM Tom_L: rue_shop4, how many encoders do you think you would want?
08:16 PM Tom_L: before i tear this setup down
08:16 PM rue_shop4: heh lifetime supply :)
08:17 PM orlock: hmm
08:17 PM Tom_L: we don't even know if they work yet
08:17 PM orlock: theres two uln2k3's in there
08:17 PM rue_shop4: orlock, they are using them to drive the big ones from what I can tell
08:17 PM rue_shop4: I need to see the back of the baord
08:17 PM rue_shop4: and there are 3
08:18 PM orlock: ok, have to grab that later
08:18 PM rue_shop4: cause they have 16 transistors the the 2003 is only 7 channels
08:18 PM rue_shop4: it looks like a bipolar driver
08:19 PM rue_shop4: the one motor is obviously bipolar, the 6 pin one SHOULD be unipolar, but....
08:19 PM rue_shop4: unless thats why the relay
08:19 PM orlock: yeah when i change it from low power/tracking to slew, the relay clicks
08:19 PM rue_shop4: orlock, I can see a chance its a dual bipolar
08:21 PM orlock: http://astrolabo.com/PICASTRO/Montures/HEQ5-EQ6/Synth%e8se_PA_HEQ-5_EQ-6.pdf
08:21 PM Tom_L: rue_shop4, how long is standard mail from the US?
08:21 PM Tom_L: like a letter
08:33 PM rue_shop3: dunno
08:33 PM rue_shop3: prolly makes it to the border in about a day, so, 2 months?
08:34 PM Tom_L: even a letter?
08:34 PM rue_shop3: hmm
08:34 PM rue_shop3: good question
08:35 PM rue_shop3: orlock, bad link
08:35 PM rue_shop3: it says page not found
08:35 PM rue_shop3: do you have a copy of it?
08:35 PM rue_shop3: mrdata, so, the limit of 74ls04 seems to be about 4Mhz
08:37 PM rue_shop3: mrdata, heh, my old tube sig gen drifts by about 500hz @ ~ 4Mhz
08:38 PM rue_shop3: but whats more of an issue, is that even maxed out, it dosn't generate enough signal for a ttl gate
08:38 PM rue_shop3: I put an amp on it too, still cant keep up enough signal
08:38 PM rue_shop3: hmm
09:28 PM rue_shop3: OK!
09:28 PM rue_shop3: I got a buffer that could do it, and the 7490's I have are ok up to 11Mhz (maybe beyond, dont care)
09:43 PM rue_shop4: so I need to also test the 74240 as an RF driver
11:06 PM mrdata: ok