13 Kasım 2014 Perşembe

Our stab at a line follower robot

Found this old post that I somehow forgot to publish:

I and a couple of people from Illutron are running three workshops about robotics. One of the projects we are presenting is a line follower robot. We have chosen this since making a robot capable of following a black line on a piece of paper presents a number of good hardware and software challenges for the worksop participants.
This is our first version the hardware.
The robot is laser cut from 4mm HDF board and consists of a flat chassis driven by two hacked servos. A top structure is added to carry batteries and various sensors.
A curved structure at the back acts as the 3'rd wheel.
Good traction is achieved by gluing sand paper to the wheels.
The sensor is made from layered HDF board.

Minimalistic APRS transponder beaten by the internet

When starting the minimalistic APRS transponder project the goal was to make a semi-disposable APRS transponder costing less than 28 Euro (~35USD).
After spending many nights designing a VHF transmitter from cheap easily obtainable parts the price landed around (for the transmitter) 13.5 Euro (16.75 USD). This was not including about 1 hour of assembly time. All seem good but then I found this module on the Internet for 11.12 Euro, including shipping. Not only was it cheaper than I could ever build something myself but it was also a fully programmable VHF tranceiver and had 1W output.
I have now decided to base my APRS tranceiver around this module and use the left over money(!) on a more powerful processor.



Here is a picture of my initial prototype. Schematic and source follow shortly.

7 Kasım 2014 Cuma

APRS transponder now with 1W output



Did some more work on the minimalistic APRS transponder. Made a test circuit board that allowed for adjusting component values. It now output 1Watt at 7.2V
UPDATE: Some pins have changed so this schematic is NOT compatible with the code posted earlier
Updated code HERE
Added a voltage regulator for 2LiPo cell operation.
Here is a quick video of my test setup transmitting 1W.

28 Ekim 2014 Salı

Tone/DTMF detector library for Arduino

Was playing with some cheap radios and decided that the keypad DTMF tones could be used for remote control.
I had some old source that detected touch tones using a AVR microcontroller and decided to convert it for Arduino.

This resulted in a library that detect audio tones played into any Arduino pin.
The audio is first clipped to a 1-bit signal (played loudly into a digital pin) then sampled at 10kHz.
256 1-bit samples (25.6mS) can then be analyzed for the content of one or more audio tones.
The analyzer uses a crude 1-bit DFT but works surprisingly well at detecting multible tones such as DTMF or guitar plucks.
The result can be presented as either a DTMF symbol or approximate signal strength for any frequency analyzed (up to 5kHz).

Here is the library for now (will move to github).

Magnetic levitation

Some students wanted to build a toothbrush holder that floated a toothbrush in mid air to avoid contamination.
I build a prototype to see if it was possible to implement the control system in software.

This project allow a small permanent magnet to be levitated by a electro magnet.
Since static passive magnetic levitation is not possible a HALL effect sensor
 is used to constantly regulate the magnetic field.
To achieve stability a software based PID controller is used.
5 potentiometers is used to control the PID parameters.
This is the Arduino code for the project

Minimalistic APRS transponder

After working on a High altitude Balloon project I got interested in APRS.
APRS is basically a radio amateur driven network that among other things lets you broadcast your position worldwide on VHF radio.
For out project we used this APRS transponder to keep track of the balloon.
Mostly for the challenge I decided to build a really small and inexpensive APRS tracker you wouldn't be too sad to loose.

UPDATE: The example code uses a ATTINY85. Change to ATTINY45 in AtmelStudio if using this chip.

I used a FS6377 integrated clock synthesizer as the VHF transmitter. This chip is I2C programmable and is able to generate 144.8MHz (or 144.39MHz for US) from a 20MHz crystal.
The FS6377 does not have a modulation input but I was able to modulate the crystal oscillator using a simple variable capacitance diode.
I chose the ATTINY85 microcontroller form Atmel because it is cheap and available in a really small package.
The BELL202 modem signal needed for APRS is synthesized inside the ATTINY85 microcontroller and output as a PWM signal.
The frequency of the modem tones need to be very precise and since the internal clock is not very accurate I chose to generate a 10MHz clock frequency externally. It is possible to tune the internal clock in software to gain an extra I/O pin but I didn't need it here.



The transponder really show potential to miniaturized. The transmit power is around 30mW enough for long range if transmitting in line of sight.

The project is heavily inspired by the Trackduino project.

Here is the source code for the project as an AtmelStudo project

UPDATE: Fuses are EXTENDED 0xFF : HIGH 0xDF : LOW 0xC0

UPDATE:
Use this program to change for other frequencies:
http://www.onsemi.com/pub/Collateral/FS6377_REV3.1.0.ZIP
This is the current configuration. Mind that the registers are in reverse order from the order they are sent in transmitter.cpp in the project.




12 Mayıs 2014 Pazartesi

A bit more wheelchair stuff

Figured out some more details about the actuator data format.
Also a short video from FabLabRuc of me driving the wheelchair using a HCD controller.

11 Mayıs 2014 Pazar

Hacking electric wheelchair drive

While building some robots for a museum we came up with the idea of using an electric wheelchair as the base for the robot.
Not wanting to replace the electronics we gave it a shot to try to use the existing motor driver and control it from an Arduino. On inspection it turned out to be a very common Penny and Giles Pilot plus drive.
Very little technical information is available about the interface between the joystick- and motor unit of this system. So we started reverse engineering. Here is what we have found so far.

By opening up the joystick and probing connections inside we found that the joystick movement are communicated as serial data @19200BAUD, 8 databits and even parity. Apart from the driving data the joystick unit also emit an additional, and completely different, data stream for controlling various lights and actuators on the chair.
The physical connection is using a propitiatory 6 way connector.

I turns out that the joystick sends drive data packets with checksum roughly every 10mS. Immediately after the data line changes direction and the motor controller returns a packet of data, again with checksum.
Simultaneously but not in sync another data signal is sent to control lights and actuators.

The data format seem to be completely non-standard but relatively simple to encode.

Probably for safety reasons the system does not tolerate any signals being missing or corrupted without shutting down so a fair bit of probing and fiddling went in to eliminating the joystick and replacing it with an arduino.
Here is a rough cut first Arduino sketch that allowed us to drive the wheelchair motors actuators and lights.
Quick shaky video of it running.

We plan to turn out a easy-to-use Arduino library for controlling the PG Pilot Plus soon.


26 Nisan 2014 Cumartesi

The_synth Arduino library got an upgrade

A while ago I released a Arduino synthesizer library. A new and improved version is now available github:

https://github.com/dzlonline/the_synth

I was asked to play a small concert at my friends PhD defense using an Arduino running this library.

Listen to the result here:

https://dl.dropboxusercontent.com/u/2248531/the_synth_concert.mp3

The music was sequenced using Ableton Live and sent to the Arduino via. MIDI @ 31250 BAUD serial data. The output from the Arduino was a 8 bit PWM signal that was subsequently lowpass filtered using a simple LC filter.
Part of the low pass filtered audio signal was sent back through a echo effect processor (inside Ableton) to add a bit of flavor and make it tolerable to regular people :)



1 Mart 2014 Cumartesi

Lamming Guard Chasseurs a Pied




Lamming didn't list any Chasseurs so these will be Grenadiers with a slightly different paint job. The pioneer/sapper is an S Range figure.

These figures came together with the SEGOM Dutch Grenadiers which can be seen here.

24 Şubat 2014 Pazartesi

Easy to use Arduino wireless library



When working on the HCD project it came apparent that the small radio chips used could be used for general purpose wireless communication.
The BK2421 based radio turns out to be compatible with a lot of other devices like the RFM70  or the nRF24L01 from Sparkfun.
I have made a simple to use library for Arduino that uses the HCD or similar radio for simple character driven communication.
In addition to communicating between Arduinos it can be used to connect to the HCD or similar handsets so they may be used for controlling your own stuff.
See the library examples for basic functionality.

Check out the Arduino library.

15 Şubat 2014 Cumartesi

More Lamming SYW

I recently bought a mixed ebay lot of some very heavily playworn S Range Jacobite Rebellion figures and some very nasty recasts of Lamming SYW figures.

I'm not complaining about this, as it was clear from the photograph, and they didn't cost much. but they did help with identification. The lot contained one Lamming SYW figure I had never seen before and another I have had examples of for a while, but hadn't realised was Lamming.





This means we can add to the Lamming SYW listing:

Highland officer
Highland grenadier
Highlander (I don't know enough about the period, but perhaps the shield slung on his back indicates Jacobite rather than Government Highlander?)

Minifigs 20mm Colonial Cavalry




Another ebay find has been these Miniature Figurines 20mm colonial cavalry. There are already some photos of these two figures elsewhere on this blog - BCC 3 17th Lancer charging and CC 1 Bengal Lancer - but as these ones are painted in a pleasing glossy style and the Bengal Lancers have their original lances I thought it was worth putting them up here (and adding them to the previous posts).

More Kirk cavalry

Another recent purchase from ebay. They are not pretty but reasonably effective. Hussars and Cuirassiers.



1 Şubat 2014 Cumartesi

More Lamming SYW French Light Infantry

Like buses...

having spent at least ten years with no Lamming SYW figures in sight, soon after buying Bill Lamming's display models for this range at auction in Driffield I bought two units of S range SYW French light infantry on ebay. The second unit, identified as a Croat Infantry battalion, included around 15 Lamming kneeling SYW figures. I think they work well together, as skirmishers and a formed company with command on which to rally.

Possible Lamming SYW Highlander


The quality of the casting and the shininess of the metal suggests this is not an original figure, but its similarity to some of the Lamming SYW figures leads me to think this may be a Lamming SYW Highlander grenadier. As I have never seen a list of the Lamming SYW range this suspicion is almost impossible to confirm - unless you know different, of course.

Unit Pictures - Douglas Napoleonic Spanish battalion


using NP1 and NP3 figures

10 Ocak 2014 Cuma

Fun with thermopile generator


Got a bag of Peltier cooling elements (thanks Dan) and experimented with using them as thermoelectric generators. These devices will generate an electric current when subjected to a temperature difference.
When placed on a hot oven they will generate about 1,8V and 650mA for a few seconds and then fade out due to heat conducting through the element and cancelling out the temperature difference.
I found a really fancy heat sink from an old server. By placing the heat sink on top of the element I was able to sustain generation for a much longer time.
Even the heat sink eventually gets hot causing the power output to decrease. Sitting on top of the oven in a column of warm air it is not able to dissipate heat well.
I found that blowing cold(er) air from the surroundings onto the heat sink increased the efficiency dramatically.
As a small cooling fan I used a motor/prop assembly from one of the HCD's, powered directly from the Peltier element. This allows sustained power generation.
Just for fun I connected a color changing LED (Thanks Jim), powered by modified Joule Thief circuit:



Video of the thing going.

Update: Picked up the cold generator and held it in my hand. After a few seconds the fan started just from the heat of my hand!