When I first built my electric longboard I started with a devicter devduino V2 running a modified version of the Wiiceiver code from AustinDavid.com. This plug n play setup has worked really well and proved quite robust considering the hostile environment it is working in.
devduino V2 controller
I had been thinking about purchasing a dual motor kit and experimenting with traction control and anti lock braking (after a couple of close calls indoor on a tiled floor) which would require a bit more processing power.
The first version of my NetMF controller will be powered by a GHI Electronics FEZ Lemur which is an ARM Cortex M4 based System on a Chip (SoC) running at 84MHz.
The FEZ Lemur is an Arduino pinout-compatible mainboard but with the Inter-Integrated Circuit (I2C) pins on D2-Serial Data Line(SDA) and D3-Serial Clock Line (SCL).
My first proof of concept (PoC) uses a standard wii Nunchuk and some jumper wires.
Bill of materials (Prices in USD as at Mar 2016)
- GHI Electronics Fez Lemur USD24.95
- Seeedstudio Grove – NunChuck USD1.90
- Assorted Breadboard Jumpers USD5.00
- Generic Wii Nunchuk controller USD7
I then tested my hardware setup with an application based on the driver software written by Szymon Kobalczyk and it worked. I have used this software on a couple of projects but have never been able to get to work with my wireless Wii Nunchuk.
I compared the Arduino wiiceiver code and the C# version and found the initialisation process was different. I then did some research and found that the WiiNunChuk driver of the .Net Micro Framework Toolbox by Stefan Thoolen used a similar approach as the wiiceiver code.
using System; using System.Threading; using Microsoft.SPOT; using Toolbox.NETMF.Hardware; public class Program { public static void Main() { WiiNunchuk nunchuk = new WiiNunchuk(); while (true) { // Reads all values nunchuk.Read(); Debug.Print(nunchuk.AnalogStickX + " " + nunchuk.AnalogStickY); Thread.Sleep(100); } } }
I then tried the wireless Wii NunChuk device and it worked (The tape is to stop the wireless dongle falling off due to vibration when mounted on my skateboard)
The PoC was working so now I needed to make it more robust and plug n play. For many of my projects I use the Seeedstudio Grove system which provides plug n play digital inputs, digital outputs, analog inputs and I2C connectivity for *duino (and other) format devices.
The Seeedstudio base shield V2 can be configured for *duino devices which implement I2C connectivity on the Analog Input pins 4 & 5 or dedicated pins SDA & SCL pins.
To get the SeeedStudion Base Shield to work with my FEZ Lemur I had to put a twist in the jumper cable to get the SDA & SCL the right way round and plug it into the D2 socket.
NOTE : put some tape on the top of the MicroSD card socket to stop a accidental short circuit.
Connecting to G30_G30...Connected 128 128 128 128 128 128 128 128 128 128 128 128 128 128 128 170 80 209 63 255 128 255 128 255 128 255 128 255 244 255 255 255 255 250 255 210 255 128 255 128 255 128 255 107 255 5 255 0 255 0 128 0 128 0 41 0 24 0 0 103 0 128 0 128 8 235 77 255 128 255 128 255 128 128 128 128
Next step is to get inerface to the 150A Electronic Speed Control(ESC) working.