Author Topic: connecting Lego dacta 9751(Interface B control lab) to Whadda/OWI robot arm?  (Read 1845 times)

0 Members and 1 Guest are viewing this topic.

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
Hi
i have this 9751 LEGO Technic Interface B controller. It's for the older 9V Lego-Technic parts.
On the right side of its connector panel, there are 8 PWM outputs which can switch polarity and has 7 PWM levels.
The controller is programmable using a rs232 interface. The original software runs on Windows95, but luckily people made a Python and a Java API.

I want to see if i can use it to drive the 'whadda' robotarm kit. This robot kit powers the motors with 3 volts. each motor has a ceramic capacitor in parallel which says '104'.

I hope this is the right place in the EEVBLOG to post things about my ongoing project..



i have a program cycling from
1 - left, going from pwm level 0 to 7 with 1 second interval
2 - right, going from pwm level 0 to 7 with 1 second interval

When i use the dacta controller to drive the standard 9V DC Lego motors(pics of its internals), then the voltage on the oscilloscope roughly follows the PWM modulation.(looks the line follows the initial on-spike to 9v and then comes down a bit and stays there until the pulse goes off)
But when i attach one of  the DC motors of the robotarm then the signal on the oscilloscope goes to about zero with spikes looking like depending on the pwm signal.  (i've got an Gould OS250TV 10 mhz oscilloscope)

i thought, the voltage drawn to 0-ish looks like a short cicruit, so
i put a 100 ohm resistor in series between the dacta-motor-connector and the 'whadda' motor, but then the motor doesn't turn.
when i put a 10 ohm resistor in place, it starts working at pwm levels 6(90%) and 7(full on)

To reduce the spikes, i had tried to a few capacitors Variations in parallel(even though it already has one). the ceramic ones(100u to 1uF) didn't seem to do much.
when i put an electrolytic 50V/820uF in parallel(hoping it wouldn't blow up when in reverse ???, which it didn't) it does soften the whole PWM out to a smooth-ish line, so smooth that i don't see the pwm pulses, it's now jagged line. But it does seem to make the motor turn a bit better (at pwm levels 5 to 7).

But still not really good. And the motor isn't responding evenly for left and right turning at same pwm level. when testing i don't have the motor connected and tried making contact when at different levels. When keeping it connected, the motor makes a high-pitch sound, but only starts moving late in level 7. when i connect at level 6 or 7 only, it starts turning almost immediately. i guess it's the big capacitor first taking the energy.

i've checked some information on back-emf, but i'm not sure what to try next.

Looking at the 9V Lego motor pictures, i see things which i don't recognize.
on the 2nd picture it looks like there's some sort of diode inside.
on the 1st picture and 3rd picture it looks like there's some sort of cell inside.
i'm hoping you can tell me what i'm looking at, and how i can get the robot arm motors properly responding

Thx
« Last Edit: July 17, 2021, 06:42:23 am by htm »
 

Offline Cyberdragon

  • Super Contributor
  • ***
  • Posts: 2676
  • Country: us
I have the earlier model of this arm, and assuming it's the same internals, it should just be driving the motors by simple switches and polarity reversal, I see no reason why an H-bridge would not work.

If you have to put a resistor in series, seems like the motors are just too high power in the arm (IDK what the specs are, what batteries does it take? my older one takes Ds which put out a lot more than Lego motors use). Also...that's a 9V max output on a 3V motor, if that were to reach full power it would certainly not be healthy for the motor.

Also, don't reverse caps, even if they don't pop immediately it is damaging them if the pulses are high enough.

The Lego motor probably just has a thermal cutout.

*BZZZZZZAAAAAP*
Voltamort strikes again!
Explodingus - someone who frequently causes accidental explosions
 

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
Hi Cyberdragon,

I have the earlier model of this arm, and assuming it's the same internals, it should just be driving the motors by simple switches and polarity reversal, I see no reason why an H-bridge would not work.
i actually just pulled a picture from the internet. im not sure which model it is. This type also uses D type batteries. i got it for 5 euro from an online 2nd hand store :) The seller told me he got it from www.conrad.com

If you have to put a resistor in series, seems like the motors are just too high power in the arm (IDK what the specs are, what batteries does it take? my older one takes Ds which put out a lot more than Lego motors use). Also...that's a 9V max output on a 3V motor, if that were to reach full power it would certainly not be healthy for the motor.
yes, 9V out on 3V motor.. not sure what can be done about it other than replacing the motor?

Thanks for warning of the invisible Elco damage.

The Lego motor probably just has a thermal cutout.
would that be the diode-like thing i guess. any idea what the disc could be?
« Last Edit: July 16, 2021, 02:26:25 pm by htm »
 

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
(9751 Dacta controller)
Sadly i don't have any details on the DACTA controller PWM output

(2838c01 Lego Motor)
I took one 9V Lego motor apart to see it's components.
photo1 - top view
photo2 - rear view
photo3 - rear view, with the disc in place
photo4 - shows a black cylinder with part number "15B C451"

Based on the partnumber i found printed on the outside of the Lego motor '70586', i found this stackExchange article
https://bricks.stackexchange.com/questions/6507/can-i-safely-dissassemble-a-74569-motor-the-old-fast-9v-one
is contains some nice details:
  • The motor itself is a mabuchi 70586,
  • The shiny disk is a resettable thermal fuse aimed at limiting current in the motor if it is stalled for a long time.
  • The black cylinder is a 15V surge suppressor, limiting voltage spikes caused by motor brushes(on mine it says "15B C451")
(Whadda robotarm motor)
Here are the robotarm 3V motor specifications https://owirobot.com/robotic-arm-edge/
Operating Voltage3VDC
No Load Current255mA Max.
Stall Current3170mA

The whadda/owi robot does 'motor stall protection' by slipping, in case the robot arm can't move. So that would iliminate my need for a thermal fuse, i guess.
But a surge suppressor like the Lego motor has, sounds like something useful.
Q1:
Would a bidirectional TVS diode as 'surge suppressor', with Vr=9.4V and Vc=15.6V, (i looked it up here) be sufficient when i use the 3V robot motor?

Q2:
Is there a do-able way to adjust the Dacta reversible 9V PWM signal to fit a 3V motor? Or would it be better to select another motor to use in the robot?
(so that i can keep using the Lego dacta controller)
« Last Edit: July 16, 2021, 10:01:53 pm by htm »
 

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
I did a few tests on a Dacta Interface B output port, to see what it could drive.

I set its PWM to 100% and measured the voltage drop for the following resistances;

Notes;
At 47Ω, the voltage shows a steady line on the oscilloscope.
At 22Ω, approx 7V on the scope, i noticed a downward wobble.  --‿--‿-- of about 1Volt
At 10Ω, approx 5V on the scope, i noticed a full wobble.  ⁔‿⁔‿ of about 1 Volt up and 1Volt down

Looks like the DACTA interface is built for delivering about 150mA maximum per PWM output port.
Is that a fair conclusion?
 

Offline Cyberdragon

  • Super Contributor
  • ***
  • Posts: 2676
  • Country: us
You'll need an intermediate motor controller, voltage is too high, current is to low. Some sort of bipolar (differential pair) level shifter with an H-bridge driver should work (you'll need one for each pair). Resitor dividers should work for dropping the voltage, then feed that into a 3V H-bridge driver.
*BZZZZZZAAAAAP*
Voltamort strikes again!
Explodingus - someone who frequently causes accidental explosions
 

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
Do you think i could use some high-current opamp for scaling down the PWM and enabling more current?

i'm thinking of an opamp/comparator, because the dacta motor signal has one lead at 0v, and the other pulse between 0 and 9v, and the leads swap function when the motor turning the other way. i thought an opamp would compare both and i could get an easy output(if i have a split power supply [-5,0,+5] )

i tried finding some which allow 500mA output, but those were quite expensive already.. am i looking at the right parts?
https://nl.mouser.com/Semiconductors/Amplifier-ICs/Operational-Amplifiers-Op-Amps/_/N-4h00g?P=1z0z63xZ1yvbm3z
 

Offline Cyberdragon

  • Super Contributor
  • ***
  • Posts: 2676
  • Country: us
Well, sort of, not sure if 500mA will be enough, but you could always use a polyfuse. If you used a 4.5V dual rail supply and an open loop OP-amp, IE in comparator mode, you would get a bipolar level shifter. However, that's still 4.5V to ground, meaning the 3V motor is still overvolted, meaning the current would be higher, and it would still be stressed. Plus, you would need one of these for every motor...ouch...$$$. Also, you would stress out or even fry the OP-amp unless you level shifted anyway, as these are standard rail-rail amps, meaning they can't handle an input overvolt and 9V across the inputs would be greater than the supply rails (as it's referenced to 0V, not 2x4.5V).
*BZZZZZZAAAAAP*
Voltamort strikes again!
Explodingus - someone who frequently causes accidental explosions
 

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
Thanks for the infos Cyberdragon.

The opamp idea seems quite fragily indeed and too $$.
i've ordered H-bridge chips, the L293D(pdf). The D version so that back-emf is handled, because the documentation says:
Quote
On the L293, external high-speed output clamp diodes should be used for inductive transient suppression. On
the L293D, these diodes are integrated to reduce system complexity and overall system size
The D version can handle 600 mA. I heard they can be stacked to handle more current.

im not completely sure how to read the manual though..
Chapter 6.1 Absolute Maximum Ratings, about the "Output Voltage, VO" :
MINMAX
Supply voltage, VCC1(2) 36 V
Output supply voltage, VCC2 36 V
Input voltage, VI 7 V
Output voltage, VO –3 VCC2 + 3 V  ??? Is that a warning w.r.t. voltage spikes because of e.g. back emf?
« Last Edit: July 30, 2021, 06:48:04 am by htm »
 

Offline Zero999

  • Super Contributor
  • ***
  • Posts: 20357
  • Country: gb
  • 0999
I wouldn't recommend the L293, for a 3V motor. It has far too much voltage loss. Use something which is designed for 3V operation, such as the BD6212.
 

Offline htmTopic starter

  • Regular Contributor
  • *
  • Posts: 51
  • Country: nl
Hi Zero999
Thanks. There's many unknowns for me. Next time i'd better ask here first  :palm:

I searched for the one you mentioned.
https://eu.mouser.com/Semiconductors/Power-Management-ICs/Motor-Motion-Ignition-Controllers-Drivers/_/N-41dum?P=1z0wt2g&Keyword=BD6212&FS=True
i assume for me the HRP7 package is easier to handle than the HSOP25 package.

Say i use BD6211HFP-TR which allows 1A.
What would be best practice to limit the current in case the motor stals? could be that i'm asking the wrong questions.
(the Robot arm motor has:  No Load Current   255mA Max.   Stall Current   3170mA )
Maybe you can point me to some reading?
« Last Edit: July 29, 2021, 01:09:45 pm by htm »
 

Offline Cyberdragon

  • Super Contributor
  • ***
  • Posts: 2676
  • Country: us
TC1508S can handle 1.8A/channel, dual channel, 2.5A peak. It's a small chip, so a heatsink would be needed though.
*BZZZZZZAAAAAP*
Voltamort strikes again!
Explodingus - someone who frequently causes accidental explosions
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf