Home

LOGO program interpreter

Last updated: 28 Jan 2012 - 19:49

A snippet of logo code

I was wandering how to store and represent the programs for the BigTrak. I wanted to stick to the original spirit of the toy and make it programmable via the web so I naturally got to thinking of LOGO commands. Most of my experience with the language was in a program called "WinLogo" ironically running on an Acorn Archimedes not Windows at all.

Section:
Projects
Tags:
Python,
programming,
serial,
BeagleBone,
hardware

Opto encoded motors with the ChipKit Uno

Last updated: 28 Jan 2012 - 17:14

Overview of the BigTrak project with the upper hull removed

Having replaced the electronics in a BigTrak junior, I needed some way to control it from my BeagleBone. Initial experiments with driving the L293D directly from GPIO pins were quite successful but I quickly discovered the opto-encoders on the toy were extremely high resolution and needed some proper real-time interrupt based handling. Doing this from the high-level Linux based environment on the BeagleBone just sounded too much trouble to me so I looked around for something a bit lower level to handle the opto-encoder tick counting. I was torn between an Arduino Uno and the ChipKit Uno. In the end I went for the ChipKit for two reasons, the BeagleBone I/O is only 3.3V and not 5V tolerant at all. This would have meant level translators were required on any interface between the Arduino and BeagleBone, but the ChipKit is already 3.3V. The other reason was at full speed the motor encoder ticks come through about 1200 times a second, with two that means about 2500 interrupts a second. I've got no idea how big the interrupt overhead is for the Arduino but I thought if I handle 16 or 32 bit tick counters in the interrupt with that frequency it is going to get a bit close to the limits of available CPU cycles, the ChipKit is 32bit and has an 80MHz clock so plenty of time to do all I needed. The features I've used are all available on the Arduino, due to some pin function constraints you'll need to swap around the pin order a bit but the code should work okay on an Uno (provided it can keep up).

Section:
Projects
Tags:
ChipKit,
arduino,
robotics,
motor control,
opto encoder,
dead reckoning

Replacing the BigTrak Electronics

Last updated: 28 Jan 2012 - 17:00

Not a lot to see, this is a cheap PCB with an epoxy coated silicon-on-board processor.

Underneath the Original BigTrak PCB: Not a lot to see, this is a cheap PCB with an epoxy coated silicon-on-board processor.

Internally the BigTrak is a fairly typical modern toy, the circuit board in it with an epoxy covered ASIC in the middle looks like the main circuit board in any cheap radio controlled car. The motor driver H-bridges are built out of discreet transistors, but as the motors only draw about 25mA running current the transistors are nothing remarkable. Quite possibly the most expensive part is the 0.1" header that the keypad plugs into.

Section:
Projects
Tags:
electronics,
robotics,
H-Bridge,
Toy hack,
power supply

Hardware Interfacing on the BeagleBone

Last updated: 27 Jan 2012 - 20:28

The all new smaller BeagleBone ARM based dev-board is a step up in features from the Beagle Board and a step down in price.

BeagleBone: The all new smaller BeagleBone ARM based dev-board is a step up in features from the Beagle Board and a step down in price.

The BeagleBone is an ARM applications processing platform that runs Angstrom Linux and provides a lot of 3.3V I/O connections, for more background see my unboxing and getting started article. In the unboxing review I ran a bit of bundled java-script that flashed a light on and off, but there's much more to using I/O on this powerful processor. Like with most embeded controllers these days half the effort is in getting the right function selected and enabling the pin drivers. There are several steps and modes of operation which I'll go through separately. I'll discuss command line tools and python control here, but there is a pre-written javascript library called bonescript.js that comes pre-loaded on the board that provides an Arduino-like syntax and runs on the node.js javascript interpreter, I'm not going to discuss that here as it is under heavy development and has only very rudimentary features at the moment. I'd recommend having a look through the code if you have a BeagleBone, it's accessible from Cloud9 IDE on port 3000 via a web browser.

Section:
Projects
Tags:
linux,
programming,
serial,
BeagleBone,
hardware,
GPIO

H-Bridge Tutorial

Last updated: 25 Jan 2012 - 20:21

Typical transistor based H-Bridge circuit.

The H-bridge is a circuit used in electronic control of high current devices, particularly where the device polarity may be reversed, e.g. DC motors. The name comes from the fact that the circuit typically looks like a letter "H".

Section:
Tutorials
Tags:
electronics,
robotics,
H-Bridge,
motors,
tutorial,
design,
IC

How not to build a RepRap

Last updated: 24 Dec 2011 - 16:03

A fairly standard basic RepRap

Actually I have a working RepRap now so it isn't all bad, but there are plenty (too many?) guides about what to do to make a RepRap, I thought I'd just point out the problems and mistakes I made building mine.

Section:
Tutorials
Tags:
electronics,
Open Hardware,
RepRap,
3D printing

BeagleBone un-boxing and hands-on review

Last updated: 11 Dec 2011 - 00:27

The all new smaller BeagleBone ARM based dev-board is a step up in features from the Beagle Board and a step down in price.

BeagleBone: The all new smaller BeagleBone ARM based dev-board is a step up in features from the Beagle Board and a step down in price.

The new BeagleBone from Texas Instruments is here! Farnell sent me a review copy this week, and are taking orders. I've prepared a video intro about getting up and running with the new board which is really easy. A few of the highlights are in the review below.

Section:
Reviews
Tags:
linux,
BeagleBone,
ARM,
Development board

ChipKIT: Conway's Game of Life on VGA, now with more colours

Last updated: 04 Nov 2011 - 20:46

The classic Conway's Game of Life with different colour pixels indicating time since birth/death.

Life With More Colours: The classic Conway's Game of Life with different colour pixels indicating time since birth/death.

If you haven't already, check out my ChipKIT implementation of Conway's Game of Life because I'm not explaining all that again! In this version there are some subtle changes to it that make it more pretty to watch, although arguably more confusing to see what's going on.

Section:
Projects
Tags:
ChipKit,
VGA,
Open Hardware,
Game of Life

ChipKIT: Conway's Game of Life on VGA

Last updated: 03 Nov 2011 - 22:08

Classic version of Conway's Game of Life using a chipKIT UNO32.

Life: Classic version of Conway's Game of Life using a chipKIT UNO32.

After the success of the ChipKIT pong demo I started to think about the ways to improve the graphics output and came up with the idea of a coarse pixel display. This is a more traditional pixel based display where a rigid grid is displayed on the screen rather than the more vector based display that I had used previously. This demands more of the CPU time because it has to copy the pixels to the display manually as there is no DMA on the UNO32, rather than only having to display the colour for a tiny fraction of each display line like the pong game did.

Section:
Projects
Tags:
PIC,
ChipKit,
arduino,
VGA,
Open Hardware

OggCamp 11: Open Source Hardware - Beyond the Arduino

Last updated: 23 Jul 2011 - 21:34

I'm going to be at OggCamp again this year. I'm planning a talk for the barcamp on open source hardware, particularly hardware more powerful or less well known than the Arduino. The ChipKIT will feature in the talk and hopefully the Pong game will be there for you to play. I'm also going to be bringing a ChipKIT MAX32 for the raffle courtesy of Farnell, so for your chance to win this awesome board, you need to come along.

Section:
Projects
Tags:
Open Source,
OggCamp,
ChipKit,
barcamp

Contact

Email: nathan@nathandumont.com

Twitter: @hairymnstr

Links