| Other articles |
ToC |
Version française |
PDF |
FeedShare on: Facebook |
Twitter |
reddit |
RC model helicopter prices have reached a point where all sorts of challenging (i.e. crash-prone) robotics projects become affordable. This document explains how to build a 300 g helicopter with embedded Linux and Bluetooth datalink from off-the shelf components for less than 500 EUR. ![]() Table of Contents List of Figures
List of Tables RC model helicopter prices have reached a point where all sorts of challenging (i.e. crash-prone) robotics projects become affordable. This document explains how to build a 300 g helicopter with embedded Linux and Bluetooth datalink from off-the shelf components for less than 500 EUR. As a proof of concept, we provide software which allows the helicopter to be remotely controlled over Bluetooth with a PC joystick. Future work will focus on the integration of sensors (IMU, altitude, magnetic compas, GPS, camera) and flight control software (either third-party or dedicated).
A number of inexpensive microhelicopters are now available to RC model hobbyists: Ikarus Piccolo, MS Hornet, Carboon, Dragonfly, Honeybee, Hummingbird, Tiny, Aerohawk, Blade CP, Sky Lark... These are essentially scaled-down versions of regular model helicopters, made possible by advances in battery technology. Some models have a rotor head with fixed collective pitch (FP), while others have both cyclic and collective variable pitch (CP). Most have a dedicated tail motor rather than a variable-pitch tail rotor. A recent radical innovation is the "ProxFlyer" self-stabilizing deformable rotor design. Unfortunately, current commercial implementations are too small to carry mainstream sensors and embedded computers. However, due to its passive stability, this design will probably turn out to be the preferred choice for hovering robots which do not require high maneuverability. Another alternative is the quad-rotor helicopter which is more silent, mechanically more robust, safer (with ducted rotors), and probably easier to control than a single-rotor/swashplate design. Potential weaknesses include: the overall size of the aircraft for a given payload, the energy efficiency of four small motors versus a larger one providing the same lift, and the impact of (usually fixed-pitch) rotors with high inertia on maneuverability. For this project we use a microhelicopter kit containing:
The aircraft has a mass of 270 g and can lift about 50 g of payload. An "all-in-one" controller package connects all the components together. This is in contrast with larger model helicopters, where the connections between the receiver, gyro, BEC and ESCs are exposed and documented. Integrating all these functions reduces size, weight and cost, but makes modifications harder. Fortunately, in some commercial microhelicopters, the "all-in-one" controller can be tinkered with fairly easily. It actually consists of two boards connected back-to-back with a 2x3-pin connector (see Figure 1, “ Contents of the integrated controller in a typical commercial microhelicopter kit ”):
Table 1, “ RC receiver PWM outputs ” lists the PWM outputs of the receiver board, two of which are routed internally to the power/gyro board. Table 1. RC receiver PWM outputs
Any similar helicopter can be used. The main requirements are:
We use a Gumstix single-board computer with the following features:
Some features are not used:
Gyros (which measure angular rate of rotation) are commonly used in RC model helicopters. MEMS accelerometers are now routinely found in mass-market devices such as camcorders, hard disks and cars. Accelerometers can also be used as inclinometers in stationary applications. The power/gyro board has two +5 V voltage regulators labelled CX1117-5.0 and mounted in parallel. Current is 50 mA when idle and ranges from 3 to 5 A while flying. Since this +5 V rail is exposed on each servo connector (including the unused ones), the CPU board can be conveniently powered from it. In order to accomodate the extra current (100 to 200 mA), it might be necessary to replace the two voltage regulators with a larger, externally-mounted regulator. In order to control the helicopter, we modify the RC receiver board so that the board can inject its own PPM signal into the PPM demultiplexer. Why not get rid of the receiver board entirely and generate five PWM signals with the CPU board ? . The proposed approach has several advantages:
Figure 2, “ RC receiver board details and modifications (in red) ” shows details of a typical RC receiver board and the modification. Simply cut the correct PCB trace(s) and connect both ends to a 2-pin connector outside of the plastic enclosure. Chronograms should help locate the signals. This modification can be done in such a way that the original functionality is restored simply by disconnecting the CPU board and inserting a jumper. Xbox controllers are widely available, inexpensive, and have well-defined functionality (unlike PC joysticks). They can be connected to a PC by replacing the proprietary connector with a USB type A plug. Just connect the four wires with matching colors and ignore the extra yellow wire. Alternatively, any USB joystick (a.k.a. joypad or gamepad) with two dual-axis analog sticks can be used. In this case the mixer configuration file must be adjusted to match the layout of the axes (see iprc_tx in [PXARC]). The software developed for this project is now packaged separately. See [PXARC]. Depending on the type of helicopter used,
it might be necessary to configure iprc_tx to perform the CCPM mixing.
An example can be found in Figure 3, “
Mixer configuration Figure 6, “ Rear view with connector on I/O daughterboard. ” and Table 2, “ I/O daughterboard pin assignments. ” show the connection with the Gumstix daughterboard. Table 2. I/O daughterboard pin assignments.
In this scenario (Figure 7, “ Remote control over Bluetooth or Wi-Fi ”) we simply emulate a regular remote control. There are no sensors on the helicopter, no complex embedded software, and no feedback from the helicopter to the ground station. Procedure 1. Startup
In this variant (Figure 8, “ Remote control with a Bluetooth joystick ”) we take advantage of the fact that some modern wireless joysticks are compatible with the Bluetooth HID Profile, and can therefore connect directly to the on-board Linux computer with Bluetooth module. Instructions for using the PS3 "SIXAXIS" controller can be found in [SIXLINUX].
[PXA255_ELEC] Intel PXA255 Processor. Electrical, Mechanical, and Thermal Specification. 27878002.pdf. [PXARC] RC and robotics software for Linux/PXA255/PXA270 . http://www.pabr.org/pxarc/doc/pxarc.en.html . [SIXLINUX] Using the PlayStation 3 controller in Bluetooth mode with Linux . http://www.pabr.org/sixlinux/sixlinux.en.html .
http://www.pabr.org/chromicro/doc/chromicro.en.html Copyright © 2005, 2006, 2007 pascal@pabr.org |