Half Duplex UART type support

Hi all!

I’m a new owner of a FEZ Spider (starter kit) with an interest in controlling Dynamixels. I’m also the one who (independently) created the C# Dynamixel Library and AX-12 Smart Arm sample available at the CrustCrawler website (http://www.crustcrawler.com/products/smartarm/index.php?prod=12#) and my own site (Forest Moon Productions - AX-12 Arm Sample).

I’d be interested in porting some version of this library to the Gadgeteer/.NETMF devices. This thread looked promising, but appears to be abandoned, with no recent news. The link provided by Gus to his solution is no longer accessible as the www.microframeworkprojects.com site appears to be down. Has anyone had success in this area? Are any solutions available for the hardware/software/driver issues? I’d certainly love it if someone has already solved the problem and provided a high-level C# library. But I’d also be happy to pick up where others have left off and share whatever work I do. Perhaps even a Dynamixel Gadgeteer module would be of interest?!

We have moved everything to this very website. Here it is Home - GHI Electronics

Welcome to the community and we look forward to seeing some dancing robot video, like this one :slight_smile:

https://www.youtube.com/watch?v=uIuRc1r_N34

Thanks for the quick response! I had seen that, and understand the approach, but I was actually hoping for (while not expecting) a bit more detail, in particular WRT the FEZ Spider. But I assume that between your Spider schematic and the LPC24xx User Manual I can figure out which socket and RX/TX pins to use given the COM port and registers you’re using. I also assume prototyping with the extender board is a reasonable first choice. I’ll have a go and see what I can do!

Ferg,

Did you get anywhere with this? I have a Parallax Motor mount with position controller that I want to control via a single wire, half-duplex UART. I can build the circuit that Gus mentioned early on in the thread, but if there’s a simple software solution, I’d rather use that.

Thanks,
Stacy

I know this is an old thread, but it became relevant to me when I wanted to control the Parallax motor controller. I found that some people are using a technique with a diode and resistor as seen here: http://forums.parallax.com/showthread.php/122566-Wheel-Kit-Position-Encoders-and-1-wire-UART?p=970721&viewfull=1#post970721. The 14 post in has a diagram.

Is this a reasonable way to go?

Parallax HB-25?
http://www.parallax.com/tabid/768/productid/64/default.aspx

attaching questions to a year old thread usually results in few responses.

Kerbal,

It’s actually this device that I’m controlling: http://www.parallax.com/Store/Robots/AllRobots/tabid/755/ProductID/507/List/0/Default.aspx?SortField=ProductName,ProductName. I’m sure I’ll figure it our, but I was curious if anything had developed from this thread. I realize it’s an old one, so I wasn’t expecting too much.

@ stacyh3 - I don’t think this thread is applicable to your device. What’s your robot’s job-to-be?

This link did not, initially, jump out at me:
http://www.parallax.com/Portals/0/Downloads/docs/prod/motors/27971-Motor-Mount-Wheel-Kit-Guide-v2.0.pdf

The ‘new’ encoders included with this are pretty standard opto’s; the signal is high when the beam is not blocked by the encoder and low when it is.
The bottom of that PDF explains how to interpret them.
Other than that, it appears you just supply current to the motors; reverse polarity reverses direction of spin.

They use Quadrature to count the pulses…

http://www.parallax.com/Portals/0/Downloads/docs/prod/motors/29321-36-Pos-Encoder-Set-v1.0.pdf

Is that directed at me or @ stacyh3 ?

@ Justin - I was wondering that about your post :slight_smile:

Seems like once either line determines that the wheels are turning and shouldn’t be (rolling downhill), you’d only need to sample both lines to determine which direction you should accelerate to apply the ‘brakes’ until you successfully stop. You could, then, resume watching only one of the signals for width/frequency/count. Right?

I might be missing something… Is there a reason to sample both lines all the time when the PIC is already aware of the spin direction?

Also, does it seem odd to you to have 2 separate power and ground connections just because there are 2 signals? Why not a single 4-pin connector??

@ Justin - Can you also specify how you run these motors?

Would you use PWM or just analog?
Does voltage determine HP and current determines torque?
Or do you supply a fixed voltage and just vary the current?

Thanks

@ Kerbal - lol - sorry should have been clearer…

Depending on the controller you use it can be either PWM or serial. Or instance if you use http://www.ghielectronics.com/catalog/product/315 then a PWM signal is sent to the motors to turn and a digital pin is used for direction - this is all done via the driver.

The best way to go is to use a dedicated DC motor controller to drive them due to the loads etc involved.

You can use interrupt pins to count the pulses for the encoders but Netmf is not the best for this as you will lose pulses when it starts doing house keeping etc, and yes you need to constantly monitor both A and B channels.

What you want is a dedicated module to do the quadrature stuff.

Most encoders i have seen usually have 4 or 5 pins +5v, GND, A and B with an option index.