BlackWido

There are probably easier ways to do it. But on my Rover I have a Hitec Laser 6 receiver plugged into my BB2 with an Atom Pro (pins 0-5). I then use assembly language interrupts to measure the PWM signals to calculate all 6 channels (2 for each joystick, plus aux, plus Gear up/down)… A version of this code is described in the thread: lynxmotion.net/viewtopic.php?t=3496

Note this code does use up some CPU resources during interrupts and as such some bit bang functions like Serout that relies on timings do not always work well, especially at higher baud rates…

What might be a better approach is to have a seperate processor handle these inputs and then communicate with the main processor, possibly through I2C or serial input or the like. Sounds like a fun project…
I am surprised that there are not RC receiver products that don’t have some option to use the received information before they then reoutput them as PWM signals…

Kurt

Hi,

Sounds interesting about using interrupts. The serout have a pretty important task in Xan’s code. But to be honest I’ve very little experience with more advanced programming.

Yes, I was thinking about the Parallax propeller chip, just using one of the cogs to take care of all inputs.

Totaly agree about that, it would be awesome!

I think THIS receiver might do the trick.

:blush: :blush: I’ve got one sitting in my spares box - which came with an RB1000 i bought second hand and to be honest i’ve not got around to testing it - the phoenix kinda pushed my humanoids to one side at the moemnt.

The previous owner didn’t try it either, but from what i understand it does a bunch of processing and spits the signals out of a single connection so you don’t need to plug all 6 (or how many) Rx connections to the board - i know, i know, i’m getting all technical again. :open_mouth: :blush:

I used my PC power supply to get more amperage. before I used a 1200ma trafo. but I guess that just wasn’t enough. Oh well I’m just exited that I can finally continue this project. Thanks guys for pointing out the problem. (I’m not very much of a electronics guy yet). I will post my progress when I have some… Thanks again!

Hi All,

I spent most of my “Robotic time" on building :blush: think I should take it out for play more. I’m glad to hear that my code works fine :smiley:

Oh, That sounds cool! I’m still planning to use the offset registers to see how that works out. I’m wondering if I could write a simple serin->serout program that sends the serial input from my BB2 directly to the SSC. This way I don’t need to switch connections if I want to use the SSC directly. I’ll start a separate thread about this.

I know what you mean about the strange looks when changing the gaits while walking! I’ve noticed that the PS2 remote has got a very short travel range before it gets to full speed. I don’t know exactly why but the joystick of the Wii remote feels much more controllable which makes it more easy to go half speed.

I have got none experience with RC receivers but if I’ve noticed some problems using interrupts and high baud rates with BlackWido. When I fist connected the BlueSmirf to BlackWido I made a separate program for testing. Every thing worked fine but when I included it to my main program, that is using serout, I lost a lot of data! I changed the input to an interrupt (hserin) and this messed up my serout to the SSC. Some servos are running to the most strange places. After running some tests it was clear that if there is an interrupt (from hserin) while sending data with serout, it will miss some bytes. For example, if I send #0P1500 this can result to something like #0P500. This is solved by lowering the baud rate of both the BlueSmirf and the SSC. So since interrupts can seriously mess up the serin/serout signals. If it isn’t possible to get the data from the receiver without an interrupt I think that a second processor would be a good solution. Or maybe I did something wrong :wink:

Processing the signals and getting just one signal to the BB2 sound a good solution. Do you know if it is a serial or a pwm signal? I’m not into RC receivers so correct me if I’m wrong but it looks like this is a 40MHz receiver. Maybe there is a 2.4GHz version “out thereâ€

There’s almost no instructions/information in the box except a few notes in german - which seem to be about getting it to sync with a transmitter.

But i can confirm that it’s for use with a 40mhz fm radio. My futaba T9CP heli radio has a removable transmitter module on the back so i’ve simply taken the 35mhz flight module out put the 40mhz one from my 3PK car radio in there.

I can’t see anything which mentions ‘serial’ or ‘pwm’ on the RB14SCAN info - only “Stellen Sie am sender den PPM-Sendemodus ein”- so i guess it’s a PPM signal.

If anyone can help me write a BB2/BasicAtom Pro28 programme to test this receiver, i’d be happy to run it and report back the results - before anyone decides to buy one.

Most RC equipment i know of using 2.4ghz/spreadspectrum tecnology is for cars and flight with “Spektrum”, “Futaba” and “Nomadio” having popular products.

HPI/Futaba do have a 2.4ghz PS2 type controller for the RBT1 (g-robot) humanoid.
See: Futaba Robot and HPI 2.4ghz PS2 controller and RPU-11 receiver

I guess if you bought the controller and receiver you could in theory use them to control a phoenix/blackwido, but it might be an expensive way to try it out. I’m also not sure whether there are export issues when buying radio equipment from japan - i seem to remember that you can’t import heli gyros :confused:

My thoughts also. I have been playing around with a Protoboard with USB and will probably order a couple more boards (probably without USB for $20 and a USB clip). So far I have the PS2 controller working. I will probably next try the Laser6…

Update - I looked up on the Propeller Object Exchange and there is already an object up there to measure the servo pulses. Right now it is sort-of primitive in that it first tests the first one in your list, and then sets up to do the second… So if you miss the start of the second you will have to wait until the next cycle… Maybe good enough for me to control my Rover… Actually you pass in the array of IO pins to monitor, so I could tweak the order… I will have to try this out…

Yes, I have had problems with serial inputs as well. I have posted a few messages about this in the past. At one point I suggested to AcidTech that maybe we need some command or the like that we can maybe tell the bitbang functions approximately how many cycles we used in our interrupt handling, such that it could compansate… So maybe the best approach is to offload this stuff to a second processor…

Kurt

Hi,

That sounds like an great idea!

Yeah, thats also one of the main reasons for why I’m considering changing to RC control.

I’m thinking of buying a Spectrum DX6i (cheaper than the DX7) to control Phoenix with. My father have the DX7. My old Graupner FM 4014 Transmitter with receiver worked well too, but I want the small recievers (and small antenna + legal ground control) from Spectrum. But before I buy one I need to check how the Spectrum receivers send the pwm pulses on each channels. My old receiver send them in a “puls train” meaning that within 20 ms it first send a puls (about 1.2 - 1.8 ms pulse) on CH1 then CH2 then CH3 and so on. That is very timesaving when doing a pulsin (from the Basic Atom Pro) on CH1, CH3 and CH5 then do a pulsin on CH2, CH4 and CH6, meaning that you can read all channels within about 25 ms. But if Spectrum’s receivers send pulses on all channels at once (not in a train/serial) I’ve a problem, because reading of all six channel will take about 110 ms.

So I’m gonna connect my fathers Spectrum on to a oscilloscop to check that before I buy one.

Say you have a RC transmitter with six channels but only need to use two of them it would be very time saving to use ex Ch1 and Ch3 on the Rx, because you are able to read both channels within the same cycle.

I am not sure, but we may by hijacking this thread… On my Rover I did the receive of the 6 channels through assembly language interrupts. This has caused problems for serial functions. Possibly I should go back to the Pulsin solution.

But right now I am curious about doing it with the propeller. As I mentioned above they do it one at a time where you can actually choose the order… This is all done on one COG, with maybe 10 lines of code and only one counter. You could easily modify this code to use multipe cogs and probably with a little more work use both counters… But first I need to add some more pins/resistors to the Propeller prototype board to plug all of this into.

Kurt

[size=150]Lady’s and Gentleman,[/size]

I’m proud to present to you: Phoenix!

I’ve got LM’s phoenix configured as described in the tutorials. SSC with the connector to the front.

To get a total Black look I used some sleeves for the wires. All the servo wires are still in the original length so some strategy was necessary to fit them all in the tiny body. 8)

I removed the connecter from the PS2 receiver and soldered the wires directly on the PCB. Since the receiver was already open, I replaced the LEDs for some, lying around, blue ones. The PS2 receiver is placed on a custom made bracket. BlackWido was so friendly that I could borrow some of his spare material. :wink:

In the lower deck is some free space for a battery slot. It can both fit the 9V battery for the logic as the Lipo battery for the servos. As you can see I placed a piece of thin plastic over the soldering side of the SSC to prevent damage to the Lipo when changing batteries (I’ve ordered 2 8)).

The Lipo is in backorder for 3 weeks already, I just received a mail saying that they expect them August 20th. It looks like I have to wait some time before I can see it walk…

The electronics are connected as in the tutorial:
BB2 Pin 4 t/m 6 to the buttons A, B and C (In the middle of the BB)
BB2 Pin 8 and 10 to the SSC.
BB2 Pin 12 t/m 15 PS2 (I used the once in the middle where the jumpers are)
I didn’t fire it up yet. I only connected the logic to check the blue LEDs. I need to get a connector to drive the servos on my net adapter so start calibrating.

So what do you think?

Xan

Hi Xan,

You did a great job putting Phoenix together!
Yes those servo wires was not easy, very tidy.

Nice detail about the blue leds, cool!
Looks like you copied mine PS2 bracket? :wink:

I’m just wondering, where are you exactly gonna put the 9v logic battery?
Looking forward to see her walk!

Great work Xan. 8)

Great looking Phoenix.

Hi Zenta,

First I tried to totally remove the housing of the receiver, but I didn’t find a good place to mount it on a decant way. After that I decided to place it on top of the BB2. To be honest, I had the same idea for the bracket before I saw your picture. Really! :stuck_out_tongue: But what I did copy was the connection to the middle of the BB and not the once on the side. 8)

Good question, The Lipo will fill up the total lower part of the body. But there is some free space on the side of the SSC connector. The wires from the front legs are placed to the top so there is some free space to fit the 9V battery. I’ll tried it by placing the phoenix upside down and placing the battery there. The Lipo slot is still free and the battery is fully inside of the body.

Me 2! I can’t wait until the Lipo arrives!

Thanks for the positive reactions Zenta and A-bot!

Xan

Hi Zenta,

Last night I’ll tried the different gaits that you’ve posted. I used the select button to change between the different gaits. The Tripod gait can really build up some speed! Love the marching sound of the 3 legs hitting the wooden floor! :stuck_out_tongue:

The 12 steps Ripple is much more fluent indeed. I increase the speed of the servos for that one. Did you tried to change the servospeed as well? It is found on the end of the code where the positions are send to the SSC (SEROUT SSC_OUT, i9600,“T200â€

Aften waiting (and mailing) for 5 weeks I just received a mail from hobbycity that they discontinued selling the lipos I ordered :frowning:

DAMN!! Now I have to find some others that will do the work! :cry:

:imp: Thats to bad! I’ve also been waiting for them to be in stock. Hopefully you’ll find some other LiPo’s that will fit.

I just completed my shopping list at hobbycity which I’m gone purchase this evening. I’m gone use a 4900mAh @ 7.4V Lipo together with a switching regulator to give me the maximum runtime. The regulator on my current setup needs to be changed to the new one.

I had some great support on the hobbycity forum getting the chopping list together. If somebody ever has got some questions about lipos it is definitely worth a try! :smiley:

Xan

Hi Xan,

Thats a beefy LiPo! :smiling_imp:
Lets not hope its dimensions are to large… (Length = 150mm). When I got mine cheaper LiPo’s the dimension specs on their website was not 100% correct with its real dimensions.

Crossing fingers :slight_smile:

Fantastric job! you did an excelent job with the wires and I love the braded looms.