Instructables

Brain-Controlled RC Helicopter

Featured
Picture of Brain-Controlled RC Helicopter
helicopter-01-unboxing.jpg
helicopter-02-open_lid.png
This Instructable will show you how take a Radio Controller Helicopter and modify the remote control hardware such that it can be operated by free, open source computer software and flown based on brainwave measurements of concentration and relaxation taken by consumer-grade EEG headsets.



The software used in this Instructable consists of two applications, Puzzlebox Synapse and Puzzlebox Brainstorms. The former connects to commercially available consumer-grade EEG headsets, such as the NeuroSky MindSet or Emotiv EPOC. The latter connects to the transmitter chip extracted from the RC Helicopter's remote control and issues flight commands and settings based on detections received from Puzzlebox Synapse. Software (including source code) is available for download from the project website:


http://brainstorms.puzzlebox.info


Required Materials
- Radio Controlled Helicopter
- EEG headset such as the NeuroSky MindSet or Emotiv EPOC
- USB-to-Serial converter cable, capable of being set at an arbitrary baud rate
- An oscilloscope
- A logic analyzer
- Soldering Iron and Solder (optional)
- Connection cables and prototyping board (optional)
- Puzzlebox Synapse and Puzzlebox Brainstorms software


Note: Items in bold can be found in the Glossary and Link Index listed the final step of this Instructable.


Before beginning, unpack the helicopter, charge and install the batteries, and make sure everything is in good working order before beginning to examine or disassemble any individual components.

You should also familiarize yourself with the basic controls of your helicopter, including how trim settings operate and basic flying characteristics.


Note: The RC Helicopter used in this Instructable is a Blade mCX2 :

http://www.bladehelis.com/Products/Default.aspx?ProdId=EFLH2400

 
Remove these adsRemove these ads by Signing Up

Step 1: Examine Remote Control Components

The first step is to disassemble and examine the components of the circuit board of the remote control. It may be useful to employ a microscope to examine the manufacturer's name and part number of the various chips in order to research their features and protocols. This can save time later when working with the oscilloscope and logic analyzer.

Note: The remote control used for this Instructable is a Blade MLP4DSM.

There are 4 channels which are used for flying:

Throttle (Up/Down in the air)
Elevator (Forward/Backward while flying)
Aileron (Left/Right while flying)
Rudder (Rotate Clockwise/Counter-clockwise while flying)

The two joysticks are connected to potentiometers which adjust the voltage of the circuit to which each are connected from the DC power source through to an Atmega88PA micro-controller.

The micro-controller measures the input voltages and converts them to digital PCM values which are sent to a transmitter chip which uses the Spektrum DSM2 protocol to communicate with the RC Helicopter.


Layman's Explanation:

(Note: this explanation is not 100% accurate but may be a helpful way to visualize and understand what is going on)

It may be helpful to think of electricity as water, flowing through pipes as opposed to wires or tracks on the circuit board. If you were to measure the pressure or level of the water flowing inside the pipe at any one point that would be its voltage, with the diameter of the pipe the maximum voltage the circuit can handle. The volume of the water passing through that point is the current of the circuit, measured in amperes (amps). If you were to picture a large storm drain dripping a trickle of water that would be a high voltage, low current circuit, whereas a firehose blasting water would be a relatively low voltage, high current circuit. It is for this reason that amps are often considered more dangerous than voltage.

The batteries act as the both the source and the destination for the water (electricity) flowing through the pipes (circuit). The potentiometers connected to the joysticks on the front of the remote control act as gates which alter the level (voltage) of water flowing through the pipes. For example, when the throttle joystick is in the lowest position, where the rotor blades are normally off, the gate is entirely closes so no water is flowing throw the pipes and the voltage is zero. When the the throttle is in the highest position the gate is completely open and the water and voltage are likewise at their highest level.

If the pipes passed through a wheel on the way to their destination and that wheel turned the helicopter rotor blades, it might make sense that more water flowing through (high voltage) would turn the wheel and therefore rotor blades faster, allowing the helicopter to fly higher.

Now of course the joysticks and circuit we are talking about is on the remote control, not the helicopter, so we need a few extra steps.

In this imaginary example, the micro-controller measures the water level in the pipe as it flows past. This number represents the voltage and therefore the joystick position. The number is converted into a digital format and passed on to the transmitter, along with the number which correspond to all of the other joystick positions. The transmitter broadcasts these numbers to the helicopter. Finally the receiver in the helicopter talks to its own micro-controller which converts the digital values into the appropriate physical settings for the rotor blades and servos.

Step 2: Connect Control Board to Oscilloscope

Picture of Connect Control Board to Oscilloscope
helicopter-08-data_on_oscilloscope.png
helicopter-06-connected_to_oscilloscope.png
By utilizing an oscilloscope, we can determine some of the characteristics of the signal sent between the micro-controller and the transmitter chip.

We connected the lead and ground wire to each of the pins of the transmitter chip until we were able to determine which pin was used for the signal and which was the electrical ground. Adjusting the intensity of the oscilloscope will help to make the image more clearly visible.

Most importantly we were able to determine that the remote control for our helicopter sends a digital as opposed to analog signal.

Also quite important, we were able to measure the voltage level used by the Digital signal to confirm we could read and generate a signal at the same voltage level using our USB-to-Serial cable. If this were not the case we might need to add a simple circuit to step up or down the circuit voltage to match our USB-to-Serial hardware.

In the first photo below the dots along the lower line indicate when packets of data (aka "frames") are being sent. We were able to time the impulses to get an idea of what we need to look at when we moved on to the logic analyzer.

In the second photo by zooming in we can see some of the verticals from the digital signal. Sections of the lines will flicker as the joysticks on the remote control's circuit board are manipulated. This indicates the data in each frame is changing in relation to the directions indicated by each channel.

More specific directions and discussion regards how to use an oscilloscope are beyond the scope of this document.

Step 3: Connect Control Board to Logic Analyzer

Picture of Connect Control Board to Logic Analyzer
Throttle Full - Cyclic Neutral.jpg
A logic analyzer will allow you to capture the frames of digital PCM data as the signal is sent from the micro-controller to the transmitter and visualize and decode them.

For this Instructable first a Tektronix 1241 Logic Analyzer was used, then a Saleae Logic which allowed us to precisely measure the frequency with which frames of data were sent (22ms) including the format, quantity, and content of characters in each byte of its serial protocol (8 data bits, no parity, 1 stop bit), as well as its rate (133000 baud). Each frame contains 14 bytes which can be conveniently represented in hex notation.

Note: The baud rate quite critical. The closest standard baud to our target supported by most if not all serial devices (including the USB-to-Serial device we require) is 115200. This was too far out from our transmitter and during initial experimentation attempts at communication failed. It became necessary to select a USB-to-Serial device whose chipset permitted the setting of an arbitrary baud rate. For the final version we settled on a model which included a FTDI chipset (specifically the FT232 USB-Serial (UART) IC, see Glossary for details).


Attached to this step are example log files captured with the "Logic" software application freely available from Saleae. In the first file the throttle is completely in the down position, in the second file the throttle is completely in the up position.

More specific directions and discussion regards how to use a logic analyzer are beyond the scope of this document.


Layman's Explanation:

(Note: this explanation is not 100% accurate but may be a helpful way to visualize and understand what is going on)

In our earlier analogy, we stated that the water pressure and level as it flowed through pipes was akin to the voltage level of the electrical current flowing through our circuit, being altered by the "gates" of the joysticks being raised and lowered. As we learned by using the oscilloscope however, the signal sent between the micro-controller and the transmitter chip is digital, not analog. This effectively means that any time we take a measurement the water pipe will either be full, or empty at any given point, never in between. By alternating between these two extremes, binary numbers are being sent.

Another way to think about this is to imagine two people at either end of the pipe, a sender and a receiver. In this case the sender is the micro-controller (because it knows the value of the numbers to be sent) and the receiver is the transmitter chip. Attempting to send information by flooding and draining the pipes would be very slow, so instead they are using a flashlight to communicate in a form of morse code.

Every so often, the receiver will peek into the pipe and at the same moment the sender will either turn on the flashlight to indicate a one, or leave it off to indicate a zero. Each time this happens a single bit is communicated. This will happen rapidly eight times in a row, forming a byte. If every bit was a letter in a word, the work would be the byte. The logic analyzer further tells us that there are fourteen bytes or "words" in each sentence spoken by the micro-controller to the transmitter chip, and each sentence contains all of the joystick settings for each motion direction the remote control is capable of setting. The complete sentence gets constantly repeated approximately 45 times per second (once every 22ms) as long as the remote control is powered on.

The baud rate mentioned above as being critical would be the predetermined timing the sender and received would have agreed upon for sending flashes of light. In other words if the sender is going to send a flash once every five seconds but the receiver was only looking once every ten seconds, the receiver would only be there to witness half of the signals, and after the first view would record each of the subsequent bits in the wrong positions within the words they are recording. When we say the baud rate is 133000 what that actually means is there are up to 133,000 individual flashes happening every single second!

Step 4: Desolder Transmitter from Control Board

Picture of Desolder Transmitter from Control Board
helicopter-13-desoldering_transmitter.png
After using the oscilloscope to establish a digital signal was being sent between the micro-controller and the transmitter chip, and using the logic analyzer to decode the characteristics and content of its serial protocol, it became clear that the easiest method for us to interface with our radio controlled helicopter via software would be to bypass all other components and communicate with the transmitter chip direction using a USB-to-Serial cable.

Had this not been the case we might have instead used the analog outputs of an Arduino to simulate the voltage levels normally indicated by the potentiometers.

As the transmitter chip was actually a separate circuit board (see photo) and there was enough clearance on the pins connecting the two for us to clip in, we might have been able to record and analyze all of the data being sent to it from the micro-controller without any physically modifications. However we eventually would want to be able to simulate these messages ourselves, which would require powering the transmitter board. If the power switch of the remote control was on then the micro-controller would also be sending data, which would conflict with the data we were generating. If we left the power switch off the transmitter board would also be off, preventing it from sending any data to the helicopter. We considered that we would be able to power the transmitter circuit from the USB-to-Serial cable, however we were not certain that the electricity applied at this point would not also flow back to the micro-controller.

Therefore we decided to desolder the transmitter chip from the remote control entirely as that was the only component we required for certain for our project.

Step 5: Connect Control Board to USB/Serial Cable

Picture of Connect Control Board to USB/Serial Cable
helicopter-15-reading_packets.png
helicopter-15-reading_full_throttle_packets.png
Once the transmitter chip was desoldered, we wanted to be able to reconnect the original remote control to it and still fly the helicopter as before, or be able to connect the USB-to-Serial cable to it and operate the helicopter using software, or be able to connect the remote control to the USB-to-Serial cable to capture and record data frames directly.

We ended up building a simple switch circuit using a prototype board which would allow us to flip switches as desired into any of these configurations.

We used the information collected in this way to write in Python the "Helicopter_Control.py" module available as part of the Puzzlebox Brainstorms software.

In the attached photos we ran this module from a console, issuing the "read" command in the following way:

python Helicopter_Control.py --command=read --device=/dev/ttyUSB0

Note: In our specific configuration, the serial port created on our Linux system when the USB-to-Serial device was attached was "/dev/ttyUSB0" and this may be different for your specific system. Under Windows a COM port such as "COM1" might need to be indicated.

When executed in this way it becomes quite easy to see the realtime data sent from the micro-controller to the transmitter chip. We incorporated this information into our source code such that we could arbitrarily send specific command strings to our helicopter at will.

Incidentally we noticed that when the helicopter is first powered up, it is necessary for a command string matching a "neutral" throttle position to be repeated sent by either the remote control or computer software, whichever is currently connected to the transmitter chip. Otherwise the helicopter will not see the transmitter chip and will enter sync mode (indicated by a blinking blue light in the cockpit).

Also when the console command is terminated the helicopter will disconnect (the constant blue light in cockpit going out). To re-establish the connection it is necessary to again transmit a neutral signal for approximately two seconds before a directional command can be issued, such as "hover" or "fly forward." These transmission settings are handled automatically by the Puzzlebox Brainstorms software.

Step 6: Test Flying RC Heliocopter from Command Console

Picture of Test Flying RC Heliocopter from Command Console


In this example video the Radio Controlled Helicopter is first operated via the original remote control, then after switches on the prototype board are flipped, the command to "fly forward" is issued by the Puzzlebox Brainstorms software operating in console mode. Note there is a delay before the helicopter takes off during which time the sync between transmitter and helicopter is re-established.

Available console commands include the following:

Neutral: Use this command to establish initial sync with helicopter
python Helicopter_Control.py --command=neutral

Hover: Hover the helicopter in the air
python Helicopter_Control.py --command=hover

Fly Forward: Fly the helicopter forward, low to the ground so as to easily land
python Helicopter_Control.py --command=fly_forward

Read: Read data frames from the remote control and output them directly to the console
python Helicopter_Control.py --command=read

Step 7: Connect EEG Headset to Puzzlebox Synapse

Picture of Connect EEG Headset to Puzzlebox Synapse
screenshot-puzzlebox_synapse-raw_eeg_waves.jpg
screenshot-puzzlebox_synapse-brain_signals.jpg
synapse-screenshot-0.4.2.jpg
Puzzlebox Synapse is a free, open source, cross-platform application which connects directly to commercially available consumer-grade EEG headsets, collects brainwaves signals (including detection states), performs visualizations of the data, optionally records sessions to disk, and provides a TCP/IP server infrastructure to relay information to remote clients.

For this Instructable we will use Puzzlebox Synapse to connect to a NeuroSky MindSet and report calculations of "attention" and "meditation" levels to Puzzlebox Brainstorms which uses this data to fly, hover, or land the Radio Controlled Helicopter.

If you are using an Emotiv EPOC headset then it is possible to use the "EmoKey" software to talk directly to Puzzlebox Brainstorms and thus skip this step.

To begin you will need to establish a Bluetooth connection with your NeuroSky MindSet. Instructions on how to do this should have been provided with your headset and are outside the scope of this document. That said if you are using Windows XP, it is recommended that you use the Toshiba Bluetooth stack (provided on the headset's installation CD) as opposed to the built-in Microsoft Bluetooth stack. We have simply had better results with Toshiba's software. The default Bluetooth pin for the NeuroSky MindSet is "0000" and once connected you should have a new COM port for your windows system or /dev/ttyUSB under Linux. Any users of Mac OS X are encouraged to try running the software from source using a Python interpreter and reporting any issues they might encounter. The software should be compatible but has neither been tested with nor packaged for OS X at the time of writing.

Once connected simply select the Bluetooth MAC address of your connected NeuroSky MindSet, or select the indicated COM port as appropriate.

Click the "Start" button under the "Server Daemon" section of the interface and the GUI will begin displaying EEG measurements in realtime. Brainwave and "eSense" calculations are produced once per second. It is also possible to view the user's raw EEG output as graphed waves, view attention and relaxation trends over time, and save the complete contents of a user's session to disk or export the results as a CSV file for use with OpenOffice.org Calc or Microsoft Excel.

Step 8: Fly RC Helicopter Using Puzzlebox Brainstorms

Picture of Fly RC Helicopter Using Puzzlebox Brainstorms
screenshot_brainstorms_preview-control_panel.jpg
Puzzlebox Brainstorms is a free, open source, cross-platform software application which permits Brain-Computer Interface (BCI) control of vehicles, devices, and toys such as LEGO Mindstorms, Radio Controlled Helicopters, and even electric wheelchairs.

In this Instructable we will use this software to fly our helicopter forward, hover, and/or land automatically based on detected levels of concentration and relaxation from an EEG headset such as the NeuroSky MindSet or Emotiv EPOC.

The first step, after loading the application, is to connect to the Puzzlebox Synapse server which was prepared in the previous step. The server can exist on the same computer system or be accessed remotely across a network or the Internet over TCP/IP. Click on the "Control Panel" tab of Puzzlebox Brainstorms and after verifying the Host and Port settings, click "Connect" to begin receiving EEG detections.

Next click on the "RC Helicopter" tab.

The transmitter chip should have already been extracted and connected to the computer system as described in earlier steps. The USB-to-Serial interface will appear as a COM port under Windows or a /dev/ttyUSB serial device under Linux. By default, when "Concentration" or "Relaxation" levels reach a certain threshold (approximately 60% or higher, specificed in the "puzzlebox_brainstorms_configration.ini" file) the "Speed" meter will begin to fill and the Radio Controlled Helicopter will take off in "Hover" mode. Once concentration or relaxation levels fall below that threshold the helicopter automatically land.

If using an Emotiv EPOC headset, you can assign arbitrary detections to helicopter functions by linking through the "EmoKey" program to the following keyboard shortcuts:

"Home" or "[" - Hover
"Page Up" or "]" - Fly Forward
"End" or "\" - Land


Layman's Explanation:

(Note: this explanation is not 100% accurate but may be a helpful way to visualize and understand what is going on)

Pretend you are standing outside of a baseball stadium while a game is on. You can't see the players on the field (we can't "read your mind") but every once in awhile, you can hear the crowd cheer and shout and you know something exciting is happening. We know that when this happens, it means you are paying attention. You can think of the electrode which rests on the temple as an antenna that is picking up a broadcast of the crowd cheering. When we tune to just the right station on the dial and hear that roar of excitement, we know that you are concentrating.

The human brain is made up of approximately 100 billion neurons which are constantly exchanging and signaling information through chemical processes that produce electricity. When a region of the brain related to a particular function is highly active, small changes in electrical activity can be measured on the surface of the scalp directly over that region.

Just as with the remote control circuit, we measure these levels and changes in electrical activity in volts (although the changes are many orders of magnitude smaller). If you were to pull a single AA battery out of the remote control you would find written on the side "1.5v" which indicates the normal charge of that battery to be 1.5 volts. We measure the electrical signals of the brain in millionths of volts (microvolts), using an EEG which in essence is just an extremely sensitive voltmeter.

When we measure the electrical readings of the brain using an EEG headset, we can use mathematics to process the signal. Coupled with knowledge that the electrode has been placed at the cerebral cortex (the frontal lobe of the brain, right under the forehead), along with measurements taken a neutral ground reference (such as on the user's ear, where there are no neurons) we can make calculations about levels of attention, focus, and relaxation.

Step 9: Glossary, Link Index, and Credits

Picture of Glossary, Link Index, and Credits
wikipedia-radio_controlled_helicopters.png

Ampere (amps)
https://secure.wikimedia.org/wikipedia/en/wiki/Ampere

Analog
https://secure.wikimedia.org/wikipedia/en/wiki/Analog_signal

Arduino
http://arduino.cc/

Atmega88PA
https://secure.wikimedia.org/wikipedia/en/wiki/ATmega88

Baud
https://secure.wikimedia.org/wikipedia/en/wiki/Baud

Binary
https://secure.wikimedia.org/wikipedia/en/wiki/Binary_numeral_system

Bit
https://secure.wikimedia.org/wikipedia/en/wiki/Bit

Blade mCX2 (Helicopter)
http://www.bladehelis.com/Products/Default.aspx?ProdId=EFLH2400

Blade MLP4DSM (Remote Control)
http://www.horizonhobby.com/Products/Default.aspx?ProdID=EFLH1064B

Brain-Computer Interface (BCI)
https://secure.wikimedia.org/wikipedia/en/wiki/Brain-computer_interface

Byte
https://secure.wikimedia.org/wikipedia/en/wiki/Byte

Digital
https://secure.wikimedia.org/wikipedia/en/wiki/Digital_signal

Electroencephalography
https://secure.wikimedia.org/wikipedia/en/wiki/Eeg

Emotiv EPOC
http://www.emotiv.com/store/hardware/epoc-bci/epoc-neuroheadset/

FTDI - Future Technology Devices International
http://www.ftdichip.com

Hackerspace
https://secure.wikimedia.org/wikipedia/en/wiki/Hackerspace

LEGO Mindstorms
http://mindstorms.lego.com/

Logic Analyzer
https://secure.wikimedia.org/wikipedia/en/wiki/Logic_analyzer

Morse Code
https://secure.wikimedia.org/wikipedia/en/wiki/Morse_code

Neuron
https://secure.wikimedia.org/wikipedia/en/wiki/Neuron

NeuroSky MindSet
http://store.neurosky.com/products/mindset

Noisebridge
https://www.noisebridge.net/wiki/Noisebridge

Oscilloscope
https://secure.wikimedia.org/wikipedia/en/wiki/Oscilloscope

PCM
https://secure.wikimedia.org/wikipedia/en/wiki/Radio-controlled_helicopter#PCM

Potentiometer
https://secure.wikimedia.org/wikipedia/en/wiki/Potentiometer

Puzzlebox Brainstorms
http://brainstorms.puzzlebox.info/index

Python
http://www.python.org/

Radio Controlled Helicopter
https://secure.wikimedia.org/wikipedia/en/wiki/Radio_controlled_helicopter

Saleae Logic
http://www.saleae.com/logic/

Serial
https://secure.wikimedia.org/wikipedia/en/wiki/Serial_port

Spektrum DSM2
http://www.spektrumrc.com/DSM/Technology/DSM2.aspx

Voltage (volts)
https://secure.wikimedia.org/wikipedia/en/wiki/Volt



Thanks

A special thanks to the following who helped contribute to this project:

Noisebridge Hackerspace

Miloh Alexander
Jake Walters
Tony Roberts
Paul Tonkin
Greg Smith
Chris Hellyar

madson8122 months ago
I should have read through it before I commented, sorry! I see that I would need a far more powerful EEG than what I'm willing to spend on in order to do that. Thx for the instructions!
madson8122 months ago

do you only need the eeg headset? and is it possible to program it to go forward when you think "forward" and turn right when you think "turn right"? if so could you post instructions on how to do so? sorry if I'm asking stupid questions, I don't build stuff very often.

acontenti3 months ago
Thank you very much for your reply!
This is what I'm trying all the time, to change the '--command=', the blue LED turns on at the helicopter, the antenna achievement synchronize with the helicopter, but I get ERROR.
An example of this you can see in the following pictures that i add.
What should I do or Which part of the code I need to change to make the helicopter fly?

Thank you very much for your help.

Alejandro
nhormell1 year ago
could you use a hacked mindflex headset instead of the mindwave?
puzzlebox (author)  nhormell3 months ago

Sorry for the delayed response, but yes absolutely that would work. The only thing you are missing when you used a hacked mindflex is the Raw EEG wave. You still get the Attention and Meditation algorithms.

acontenti3 months ago

Hello all there! I'm still trying but I fail to fly my helicopter (Blade mCX2 RTF) directly with Helicopter_Control.py on Windows 8


This is what I get:



INFO: [Brainstorms:Helicopter_Control] Using PySide module

<---- [Helicopter Remote] Main thread running

data_payload: 0000005e05ff0a4b0e17135414aa

data_payload: 0000005e05ff0a4b0e17135414aa

data_payload: 0000005e05ff0a4b0e17135414aa

data_payload: 0000005e05ff0a4b0e17135414aa

data_payload: 0000005e05ff0a4b0e17135414aa



Then i understood that these are the codes that perform this:



data_payload: 0000005e05ff0a4b0e17135414aa (neutral)



data_payload: 0000035405ff0a4b0e17135414aa (hover)



data_payload: 0000035405ff0b540e17135414aa (fly_forward)



data_payload: 0000005e05ff08aa0e17135414aa (fly_back)



Someone can help me please?

What should I do or Which part of the code I need to change to make the helicopter fly?



Thank you!



Alejandro

alejandrocontenti@hotmail.com

puzzlebox (author)  acontenti3 months ago

Answered in the Puzzlebox Brainstorms forums: https://puzzlebox.info/forums/showthread.php?tid=3060&pid=3234#pid3234

Judes D3 months ago

Hey Steve,

Is there any problem if I use an USB Oscilloscope and Logic Analyzer instead of separate analogue model?

Pls reply soon. It's very urgent

Judes

sku_93518_5.jpgsku_93518_2.jpgsku_93518_1.jpg
puzzlebox (author)  Judes D3 months ago

That should work just fine. We use a Saleae Logic analyzer ourselves (which is also USB). The oscilloscope in the video is only being used to confirm that the control signal is digital instead of analog.

Psychospazz6 months ago
wow... when i see things like this, I realize how limited my little brain is, LOL
Great build, really cool
iScience2 years ago
This is awsome!!
But with some EEG paste and more electrodes, we can make this go
Forward, Backward, LAnd, Right, Left
I think we have to amplify the signal and decode it with a formula and program it

I think im gonna do this :)
collinIT iScience7 months ago
Cool, how did you makeout with this?
Jett Green7 months ago
How much does this cost?
michael31 year ago
Hi sir:
I am michael,a university student from China.Actually,i made a control for a aircraft (not a RC Helicopter like yours )by using a Mindwave after reading your artical.The software is written by myself,it is Labview and they are connencted by bluetooth.My question is since we just can get two datas:attention and meditation,how can we control our aircraft to a correct direction by Mindwave.For example,if i want the aircraft to go left,what should i do by dealing with the two datas?
fatihah882 years ago
Hye sir...

This technology is really new for us..even there is no implementation and development have been made in our country..

I am a student and would like to do this for my final year project..

So here,

I have questions to ask you..

1) If i don't have logic analyzer, can still proceed the project?

2) Why using serial usb converter instead of parellel?

3) Is there any different if I use cheap helicopter in term of the microcontroller?
Still using the Serial-usb converter?

Hope to here the answer from you a.s.a.p or can reply to my email..
Thank you.
puzzlebox (author)  fatihah882 years ago
Hello there, thanks for writing.

Before proceeding, you should be aware that you should assume every model helicopter will use a different microcontroller and/or transmitter chip and potentially an entirely different control mechanism, even when working with two models from the same manufacturer. Its even possible two helicopters which are listed as the same model will have different chips inside over time due to differences in production runs! There are no guarantees.

That said, our helicopter used a "Spektrum DSM2" transmitter chip, which was printed on the side of the box. So its fairly reasonable to assume anything else with that same brand and logo will have a similar configuration. But again, no promises.

To answer your questions more fully:

1) We used a logic analyzer to figure out what was going on with our circuit. The oscilloscope was a more important first step though as it helped us to learn about our circuit - specifically that there was a digital signal between the microcontroller and transmitter chip. If this wasn't the case we would not have had any use for a logic analyzer. If you are affiliated with a university they should have an oscilloscope and someone capable of educating you in its use.

2) Most digital devices speak to one another using some serial protocol. That's a good thing. Just as it is easier for you to read this message one word at a time (letter by letter in fact) than trying to read multiple lines all at once (ergo in parallel). Anyway you are probably thinking of the type of parallel port printers used to use but I think you'll find it is nearly impossible to locate a modern computer which still has one.

3) A "cheap" helicopter is likely to use less complex parts and likely different control mechanisms, such as IR. It would be easier to hack the joystick potentiometers for such a device.


Finally, one last word - if you do not have a solid foundation in electronics you're going to want to find and work directly in person with someone who does. Most of what I have learned personally was from working on projects such as this alongside much more experienced individuals. Trying to ask complex questions over an internet forum will quickly become an exercise in frustration - not the least of which for the person trying to answer them!


Cheers

Steve Castellotti
Mind controlled helicopters may or may not get you laid, but I think you are a cool person for sharing knowledge and answering this person's questions in such detail.
who says mind controlled helis won't get you laid? =P
hello.sir

I am from India

i want to build this project. I have neurosky mind set..

So i want to ask few questions regarding other parts of that project ..

Q-1. can i use another company's RC helicopter. I didn't find the same company's helicopter or if that helicopter company supplying their product in india then where should i buy?

Q 2- can u tell me full specification of usb to serial cable that used by u and where can i buy is it available in india....?

Q3- i didn't understands that why u by passing all the circuit and components and connceting only the transmitter chip to usb to serial cable .....can u please expalin it ...


fatihah881 year ago
Hi.. one more thing to ask you.. can i use Arduino usb yo serial converter board or just build the simple board like what you have done? pls advise me.. thanks..
samando1 year ago
Here's a thought: Thought-controlled slot cars. The harder you concentrate, the faster the car goes. When you need to brake, however, you have to relax. Which is difficult, 'cause your car is hurtling towards a bend at far too high a speed. It'd be engaging, difficult and fun. I see a profit in this.
shijau1 year ago
Hi..

I would like to ask few things..

1) Can we just use USB to parallel?why and why not?
2) Why you choose to use USB to serial?any advantages of using this kind of board?

That's all ..

puzzlebox (author)  shijau1 year ago
Hello shijau, thanks for writing.

In this project we encountered a Spektrum DSM2 transmitter chip, which receives as its input a serial protocol from the remote's microcontroller. The chip does not, to my knowledge have a parallel interface.

In any case we modified an existing hardware device, so our equipment had to match.


Cheers

Steve Castellotti
Dude thats so cool.
Sir,
I have some doubts. So please me explain these...
Your project explanations are very nice...I can understand your explanations. But I can’t able to understand your proto type board connections, because it is quite different from my text book explanations. So please explain me about “there are four wires one is +ve, -ve, Gnd, and data sending connections in data cable and remote control and also why you are using Blade mCX2 model helicopter to control the MLP4DSM type of remote control...why not the same model helicopter... and after finishing connections, you have shown another one 55 seconds video, why you are using here same 2laptops and what are all the software installed in it”...

puzzlebox (author)  Bionic Chandru2 years ago

    Thank you for writing.

    To quickly answer your questions:

- The MLP4DSM is the controller provided with the Blade mCX2, so that was the most obvious choice to use.

- The USB-to-Serial adapter cable we used provides 4 pins: Power, Ground/Negative (they are the same wire), Rx and Tx. We first needed to receive data (Rx) from the remote control's circuit board microprocessor to read the commands it would send to the transmitter chip. Later we needed to transmit that same data (Tx) to the transmitter chip. In our example we used Red for positive power, black for ground/negative, yellow for Rx and orange for Tx.

- Only one laptop is necessary. We used two during our development for our own convenience. The only software you need to control the helicopters is Puzzlebox Brainstorms. If you want to use mind-control from a NeuroSky headset (or similar) you will also need Puzzlebox Synapse. In the course of the modification we used special software for the software-based Logic Analyzer. All required materials are listed on the first page of the instructions and links to all manufacturers and relevant software is provided in the Glossary:

http://www.instructables.com/id/Brain-Controlled-RC-Helicopter/step9/Glossary-Link-Index-and-Credits/


    I hope this helps.

    If you complete the project, please send us photos so we can add them to our website!


Thank you.


Steve Castellotti
Sir,
Thank for your kind response, definitely I' ll finish this project and send you a photographs, and I can't able to sing up your official site, some more doubts also I have for neurosky headset I have o install drivers provided with headset and puzzle box synapse, and thoshiba blue tooth software also is it... nerosky head set connected with PC via blue tooth is it sir, and after wearing headset how to think a commands.
Thanking you,
Chandru
One more doubt also sir,
In prototype board two terminals is connected to the RC one is black and another one is orange and that orange and yellow wire connections are connected random in connections...this is what I am getting confusion...
puzzlebox (author)  Bionic Chandru2 years ago

I think the word you mean to use is "question" not "doubt" (c:

Happy to help.


The official site for the software is http://brainstorms.puzzlebox.info


If you are running Windows XP, then the recommended Bluetooth stack to use with with the NeuroSky MindSet is from Toshiba. It should be included on the installation CD which comes with the MindSet. The default Microsoft Bluetooth stack should work but many users have experienced connections hanging and frequently timing out while using it.

Besides being able to establish the Bluetooth Serial connection, no other drivers or software should be necessary. Specifically, Puzzlebox Synapse is a replacement for NeuroSky's ThinkGear server, so you don't want to run both at the same time. Puzzlebox Brainstorms can talk to either NeuroSky ThinkGear or Puzzlebox Synapse as they both provide the same protocol.


The NeuroSky MindSet measures levels of attention and relaxation. Some suggestions for achieving and maintaining a high level of focus include performing mathematics in your head, reciting song lyrics, or naming each street from one part of a familiar city to another. To achieve high levels of relaxation it helps to close one's eyes and meditate. Everyone is a little different so perhaps you will find what works best for you by experimenting.


Finally to answer your question about the wires, the connections are not random. If you are using the exact transmitter chip described in this document with a USB serial cable, you don't need to worry about reading values from the microcontroller because we have already traced them out for you in the source code.

You will only need to connect the positive (red) and ground (black) cables from the USB serial adapter to the positive and ground pins of the transmitter chip. Then you will need to connect the "transmit" (Tx) wire from the USB serial adapter to the "receive" (Rx) pin of the transmitter chip -- because your computer will be transmitting commands to the chip, the chip will receive those commands, and re-transmit them through the radio signal.

A prototype board with several wires are shown in the video so that we could easily change between reading values from the microcontroller to writing values to the transmitter. If all you want to do is fly the helicopter form computer software you don't need to reproduce all of that work and you will only ever need three wires to connect the transmitter chip to the USB-to-Serial adapter.

I hope this helps.

Cheers

Steve Castellotti
Sir,
When I wearing a mind set, what are the words I have to think to fly helicopter.
puzzlebox (author)  Bionic Chandru2 years ago
You don't think a specific word or command, the EEG simply measures your brainwaves and compares characteristics to those of a known baseline (composited from a large pool of test subjects during a scientific study).

In other words, if you ever play sports such as basketball, while on the court taking foul shots one after another, you have to block the noise and distraction of people around you in order to focus on making the shots. In that moment, if you were doing well, you would tend to measure a high level of focus. If on the other hand you were shooting poorly because of someone shouting or the sun in your eyes, then you would tend to measure low focus.

Its the same if you are watching a boring television show (low focus) versus your favourite movie (high focus).

If you are trying to write a paper for class and you're not making any progress, you would tend to measure low focus, but if you knew everything you wanted to say and were typing it out as fast as your fingers would let you, you would tend to measure with high focus.

We use those high-focus-tendencies to make the helicopter fly. Whether you happen to be playing basketball, watching a movie, or writing a paper at the time you are wearing the headset doesn't affect the software - only how focused or engaged you are at the time.

Sir,
I am waiting for your reply, Puzzle box synapse will work for radio frequency mind wave, else shall I buy mindband, Mindset is not possible because it is outdated manufacturing.....

Thanking you,

By,
M.Hariram Chandar
Thank You so much sir,
Chandru
ilpug2 years ago
now all you need is something that when you think "beer" it will bring you beer.
dentman1 ilpug2 years ago
a good wife
AWESOME!!! I immediately subscribe to you!
nrosenberg2 years ago
You don't plan on releasing this as a pre-configured kit for those of us, who don't have access to oscilloscopes and logic analysers, do you? ;P
build522 years ago
awesome!!!!!!!!!!!!!!!!!!!!!!!!!!!! my brother made some thing like this but it was a rc car. didn't even know that you could do that.
ms102 years ago
cool.great rc project
HarveyH443 years ago
No video of the heli crashing into stuff? From personal experience with RC Helicopters, have to say this would be great, but kind of skeptical that you could everything tuned in, before the helicopter is mostly destroyed. I am by no means an expert pilot, and feel a great flight, is one where I kept it in the air, until the battery needs charging. I've got a Blade CP, and it took a lot of time and parts, adjustments, just to keep it in the air for short periods without crashing it. I've been using a cheaper, duel rotor design for a month, with fewer hassles, but it not as responsive.
Pro

Get More Out of Instructables

Already have an Account?

close

PDF Downloads
As a Pro member, you will gain access to download any Instructable in the PDF format. You also have the ability to customize your PDF download.

Upgrade to Pro today!