26 novembre 2008

C++ & UI state machine

Still progressing slowly on the software, and had some problems with the development toolchain Avr-gcc/g++ as it does not support the full c++ syntax, especially new/del/ and virtual functions.
I spend some hours to write a first version in C-like, when someone from rcopensource list point me to this very interesting thread.

So, with this help, I rewrote the state machine of the UI in C++ language with virtual functions and new/del. It looks good, it should be easy to update and maintain. Here is an example of the code for one screen:


// --------------------------------------------- Servo Neutre
screenText OScrServoNeutre::text[LINE][LINE_LENGTH] =
{
/*01234567890123456789 */
"# Servo Neutre &&&&>\0",
"<==Servo \0",
" valeur = &&&& \0",
"< - + >\0"
};
OScreen * OScrServoNeutre::Action(e_command cmd)
{
switch (cmd)
{
case swUpLeft: return (scrServo);
case swUpRight:
servo = IProcessor::ServoSelect();
return (scrServoNeutre);
case swDownLeft:
neutre = IProcessor::ServoNeutreDecr();
return (scrServoNeutre);
case swDownRight:
neutre = IProcessor::ServoNeutreIncr() ;
return (scrServoNeutre);
default: return (scrError);
}
}

void OScrServoNeutre::PostAction()
{
SubVarText();
Display();
}



23 novembre 2008

Avr32



Intersting board with a microcontroller 32bits: Atmel AVR32 AT32UC3A1512. It has 512k flash, digital IO and 8 analog input, 4 UARTs, audio stream output, .... plenty of things and more.
The datasheet.
The board is called Alvidi and can be bought here: Avr32 Alvidi

17 novembre 2008

Joke

While I am progressing on the software of the radio, I found it could be useful to add a feature to make the radio compatible with Microsoft:



And I could have add on the screen (but there is not enough space): "please note in case you damage your plane, we deny any responsibility..." :)

11 novembre 2008

Transmitter & LCD prototype





Here are some pictures of the transmitter+LCD prototype. I reused an old LCD that I got from an old network equipment, so it is a bit ugly ;).

The LCD is removable from the transmitter. The idea is to insert the LCD display in the transmitter for the setup of the plane. When the setup is complete, the LCD display can be removed, and go flying with just the transmitter and no lcd.




There are 4 small switches to control the programming also connected to the Arduino board.



The LCD is soledered on a protoboard and a 16 pins connector is added. The 16 pins connectors inserted into the female glued inside the transmitter.
The control of the LCD is done by the Arduino with only 7 pins: 4 bits for data and 3 bits for control. ins. The switches use also 4 pins on the Arduino.

The next step is to write some software for the some basic settings of the plane (neutral, course).

09 novembre 2008

RC Open Source

A new yahoo list has been created to discuss about an RC Open source.
The list is in French, and has alredy many discussions:
http://fr.groups.yahoo.com/group/rcopensource
If you are interested to participate, please join.

Hack a Day & Make

The well known site hackaday has kindly write a news about "effetdebord":
http://hackaday.com/2008/11/07/arduino-rc-airplane/

And same for Make Magazine:

http://blog.makezine.com/archive/2008/11/arduino_powered_rc_airpla_2.html

The number of visits has exploded, this is great, thank you guys!

01 novembre 2008

Receiver O24RCP



Here is the receiver I made as explained on the O24RCP web site. The site explains with many details how to make it, and provide related firmware image. The only tricky thing it to be careful with the components selected and the way to position them so that they fit under the XbeePro module. The picture below show the receiver without the Xbee:



The image was flashed with the very simple ICSP programmer from the same web site connected on a serial port. First tried was unsuccessful because I used a USB to Serial cable. A true serial port is needed on the PC to flash sucessfully the avrtiny 2313.



On the transmitter side, I add to my software the protocol used by O24RCP in version 1.1 or 1.2. A Jumper now select if the transmitter work in RCHome mode, or in O24RCP mode(version 1.1).
Here is a small video showing the system working: