An Arduino pimped Big Trak

I picked up a Big Trak programmable vehicle from a car boot sale a few years ago where it promptly got lost in my to be used in a cool project (aka junk) pile. The recent Dorkbot @ Newcastle project session saw me dig it out of my attic with the goal of swapping out the original controller board an replacing it with an Arduino.

To make this work I needed a motor controller circuit to drive the wheels of the Big Trak. There are a number of Arduino motor controller shields I could have used but I already had a couple of ST L6203 H-Bridge Driver chips left over from a previous project so I put together a quick dual motor controller design using these.

A pdf of the initial schmatic design is here

Big Trak


6 Responses to An Arduino pimped Big Trak

  1. Tom says:

    Got any more photos or updates for your project? I’ve got several L6203 I would like to have controlled by an Arduino. Your schematic show using the motor sense, very cool. Would a copy of your sketch file be too much to ask? Thanks for any details.

  2. Tom says:

    LOL! I hear ya, doing the same here but the motor controller is the side track. I did not understand how you were going to use motor sense, or current sense, on the L6203.
    This will be my first Arduino project so I don’t know if this will be of any help but here is what I’ve worked out for a 32KHz PWM. Still unfinished, needs forward and reverse added and some other stuff. Looking at the Wii Nunchuk for the PWM control, direction and buttons for control.

    /*Tom’s 32 KHz PWM DC motor controller for Basic Altitude and Azimuth Control
    int inputAltVariable = 0; // Alt Motor assigns value of 0
    int inputAzVariable = 0; // Az Motor assigns value of 0
    int pinA = 3; // pins 3 11 are PWM output
    int pinB = 11;

    void setup(){

    //__ set TIMER2 for PWM 32KHz
    byte mask = B11111000;
    TCCR2B &= mask;
    TCCR2B |= (0<<CS22) | (0<<CS21) | (1<<CS20); // same as TCCR2B |= B00000001; TCCR2B is now xxxxx001



    void loop(){

    inputAltVariable = analogRead(1); // set variable to value of analog pin 1
    inputAltVariable = map(inputAltVariable, 0, 1023, 0, 255); //map to value 0-255 to use for PWM
    analogWrite(pinA,inputAltVariable); // Alt PWM output

    inputAzVariable = analogRead(2); // set variable to value of //analog pin 2
    inputAzVariable = map(inputAzVariable, 0, 1023, 0, 255); //map to value 0-255 to use for PWM
    analogWrite(pinB,inputAzVariable); //Az PWM output


  3. Tom says:

    Credit for the 32KHz: Tom Pawlofsky
    Tom’s code is short and effective.

  4. Iskudo says:

    Here is an Arduino Shield that can be useful for Bigtrak development:

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: