Building the Arduino Receiver. The whole board and micro weighs in at 22 grams. The supply will be a 3C Lipolly
The Xbee Vin (max 16V) and Arduino VIN (max 20V) hare both powered from the supply battery 11.1 V directly as the both have internal regulators. This helps isolate any noise from the Arduino and ore servos from being superimposed on the Xbee supply rail.
The Xbee need around 220mA and the Arduino say 100 mA driving the servo PWM signals, and not the motors. All up say 750mA in a 750mAh 3C
Comments
Hey looks similar to my little project :)
http://aimatt.com/2012/08/02/diy-rc-receiver-serial-ppm/
BTW, you might want to think about using an Extracore (you can find them on tindie.com) for less tahn $11 and they are much smaller than the nano.
I think from memory that the xBee is simplex, keep that in mind when sending telemetry that it might cause a hickup in control if the packets get a little big. are you sending a timecode with the control packets? I would consider adding a timecode and some 'sanity checking' to it so if it's older than say 1 second throwit out and go onto the next one, just in case something weird happens and a packet sits in the buffer, you don't want it suddenly enacting 10 packets one after the other...
I will probably crash it anyway but the fun is in the tinkering, that's why I like rough and ready then you are not so gutted when you do an Issac Newton landing :)
Ah yes, a scratch builder after my own heart!
Well done! Build on dude!
-=Doug
@Nick,
Nice solder job. Well layed out. Yes, wire wrap wire would help reduce the weight and make it easier to assemble. When I am not using wire wrap wire, I use 28g solid teflon wire that does not melt near the solder joint. Good luck flying!
Regards,
TCIII
Thanks for the tip
I will see if I can find some wire wrap around here for a reasonable cost for the next version.
I have a Tri frame I want to finish I will need to write more sophisticated RX code to utilize the gyro inputs. Have had some success with my Tee Bone design using a Netduino which showed that the gyro control loop need not run much faster than at 20mS intervals
One big advantage of ther Xbee aproach as I'm sure you know is they are tranceivers I have a telemetery packet being returned every 5 command frames which are 20mS so 10Hz telemetery.
void DoTelemetery()
{
//Send back a telemetery packet
if((PacketCount % 5) == 0)
{
rssiDur = pulseIn(5, LOW, 200);
int PacketType = 12;
sprintf(buf, "T%02X%02X%04X%02X%03X%03X%03X%03X%03X%03X%03X%03X%02X\n", PacketType, rssiDur, PacketCount, NoPacketCount, AnIn[0], AnIn[1], AnIn[2], AnIn[3], AnIn[4], AnIn[5], AnIn[6], AnIn[7], DigBits);
Serial.write(buf);
if(digitalRead(13) == false)
digitalWrite(13, HIGH); // set the LED on
else
digitalWrite(13, LOW); // set the LED off
}
}
I will reuse my Netduino Plus as a telemetery processor when I reach this stage
let me know when you take it out for a fly! I want to try something similar soon with my hexa, but I'm not sure if I can trust it or not!
if you do a lot of prototyping like this I'd suggest getting some 'wire wrap' wire and using that to run your tracks, it's very thin single strand wire that you might find much much easier to solder than traditional multi-strand wires, and looks much neater when you need to use lots of it as well!
Got to get brave enough the fly with it when you think what could go wrong
it looks great, well done!
Its very responsive the Arduino reads the analogue pots in the TX and builds a packet which is sent at 38,400 baud via Xbee to the RX Xbee where and Arduino nano grabs the packet and drives the PWM outputs
No laptop required its a self contained box with Arduino Uno Xbee and other bits inside