bigtrak Modifications Log
This is just a log of the modifications I was able to make to my toy. It might give you some great ideas for a college or school project.
Mobile Phone Remote control - B4
Necessity is the mother of invention, and I suppose poverty is the father: It all began when I was given a kitten to look after. She requires regular feeding at 6.00 in the evening. Unfortunately, sometimes I am held back at work and unable to reach home in time. It occurred to me, that it would be nice if I could program this toy to take the food to her exactly on time. I figured it would be a simple job, of interfacing a clock timer to the toy so that it would automatically switch ON at 6.00 p.m. Once ON, it could then bring the food, which would be in the trailer part that this toy would be pulling.
Unfortunately, this toy forgets the commands if you switch OFF the power. Hence, I fitted it with a barrel socket and left it switched ON drawing power from an adapter. The "GO" button press required simulation for the program to execute. It then moves forward, and pulls out of the barrel socket. From that point onwards, it draws power from the internal batteries for a preset time of twenty minutes.
Instead of making my own timer, which would cost a fortune to make these days, I decided to buy an LCD clock with an alarm function. Pound stores have loads of alarm clocks, and I bought one and modified it so that instead of making a sound through the internal speaker, it would trigger a latch circuit, that would simulate the pressing of the GO button.
It occurred to me that it would be nice if I could remotely control this toy from work. I was thinking of using a Raspberry Pi, however I decided not to as I cannot afford to dedicate one to a project. Besides, I need a transmitter / receiver of a mobile phone as well for remote control.
Making my mobile phone truly mobile: When I got my Galaxy Mega Smartphone, I decided to put my old SIM card and phone to some good use. Like most people, I have a few of old mobile phones not doing anything, and I thought it would be nice to make use of one to remotely control the bigtrak, and also use the built-in camera to look around the house whilst I was away. With Skype capability, it is feasible to see what my kitten was up to, whilst I was at work.
Searching on Google and MSN, I discovered that there was nobody doing anything like this. Most of the projects were by so-called 'experts' who butchered their toy by stripping off the chips and components from it.
I wanted to do something more intelligent. In my modification, I wanted to leave the original circuits intact because these circuits could be useful as a backup. I liked the idea of this, as this is how the human brain is designed. Hence, I have decided to call the original functions, the low-level functions. After studying the PCB, I discovered that there was no reason to remove the original circuit, and it is perfectly feasible to interface another circuit to the existing one. All I had to do was to figure out the places to inject a signal to actuate the motors. Or hacking the circuit as it is called.
I decided to use an ATMega32 for the brains because it has an analogue-to-digital converter with multiple channels. This would be useful for measuring light, sound, and temperature levels. This chip consumes very little power, which makes it ideal for battery-powered applications. I could further reduce its power consumption by running it at the slowest default clock speed.
I could program various subroutines in C++ that would kick-in depending upon the sensor readings, bit like the Mars Rover Curiosity. The ATMega32 can process the servo algorithm, and provide communication output through beeps similar to R2D2. Most of the basic groundwork is already there in my Atmega32 Development System. I also liked the idea of upgrading the programming through an ISP port, because it is light and requires minimum components.
Mobile Phone Remote Control: Therefore, the question then becomes how to use a mobile phone to control the bigtrak remotely. One method of sending data through a phone line is by using the old DTMF system. Those are the tones one can hear when dialling a number. These tones are universally compatible across almost all networks and almost all mobiles have the capability of generating them and sending them. The MT8870 chip decodes those tones. Hence, I figured that, that was going to be part of the solution. This chip can recognise 16 possible tones; however, the output is through a 4-bit binary bus.
How could I use that chip to control six or more individual digital circuit lines? I needed to send, forward, reverse, left, right, commands as well as a few more for remotely controlling the circuitry. At first I decided to use the ATMega32 to decode the 4-bits to 16 lines, I could easily write the code in C++ for it, however, dedicating a microcontroller just for this one purpose would be overkill; the microcontroller would have to remain powered all the time, consuming power. This is a job for a combinational logic circuit. It would be completely independent and one of its control lines could switch ON or OFF the ATMega32. This way the ATMega32, the more powerful brains, could switch ON for performing various complex tasks, and then switch OFF afterwards to conserve power. In addition, the MT8870 circuitry itself powers-up only when there is an incoming call. This conserves power even further. Hence, the sequence of events would be like this: I dial-in to my mobile phone that is in the bigtrak. The phone auto accepts the call and takes it off the hook. The MT8870 circuitry powers up. Then I can send tones from my phone to the phone in the bigtrak in order to remotely control it. At this point, I would also have the option to remotely enable the ATMega32 circuitry, or leave it switched off and directly control the motors of the toy manually using the remote tones.
Enabling the ATMega32 circuit provides access to the servo algorithm, and the control would be more fine and precise. There would also be other options to enable various circuits, such as the PA amplifier. Keeping the power consumption as low as possible is vital if the project is to be of any practical use. Hence, I needed a solution that would use the absolute minimum number of gates. My digital electronics has always been very good -- I had a great teacher who taught the digital electronics side -- so I set out to design a combinational circuit. However, what I came up with already existed on a chip!
Of course, the solution is a 4-line to 16-line decoder. I remember reading about this in a telecoms magazine once. The ancient 74HC4514 is the solution. I feed in the 4-bit binary number at one end and it lights up one of the 16 lines at the other! It is simple actually. The modern incarnation of this chip is the HCT4514 by the Philips Corporation. The H represents High Speed, C represents CMOS, and T for TTL compatibility. This is just what I need!
If memory serves, the 4514 provides active high outputs, whilst the 4515 provides active low outputs. Just to keep the circuit and logic simple for beginners -- in case I decide to publish -- I decided to go for the 4514 version. After 5 minutes of thinking, whilst waiting for the bus, I already had the solution in my head. All I needed to do now was to manifest it on paper, and bring it into reality, in the way existentialists do. Make it so...
The type of phone to use: One main hurdle was to determine which type of phone to use. I needed a phone that would automatically accept the incoming call and take it off hook. An auto-accept call feature is hard to come by these days, however I remember making the SpyPhone Mod for the Nokia 3310, which does exactly that. However, the Nokia 3310 does not have a camera otherwise; it would be perfect for the job. However, I managed to write a hack that would do this for any phone that has the capability of running a java game.
Conclusion: This project was a huge success. I am now able to remotely control the bigtrak using my mobile phone. I can also get a live audio and video feed, phone-to-phone using Skype. I was surprised to find that most of the time my kitten is sleeping under my bed. She has found a nice quiet spot there. Even amazingly, she loves the bigtrak! I suppose this is probably because it brings food to her every day. Once she has eaten the food, she sits on the back trailer as the toy makes its way back to its home location.
The remote control modification proved to be the most useful, and I gave the phone number of the toy to my family and they are now able to dial in to it and remotely control it. They can see who is in and who is out. Sometimes I see the toy moving around and wonder who is controlling it. It appears to have a mind of its own.
Mod Log
A hot glue gun is vital for fixing all the LEDs and wires. It is a light and tough material to use thus minimising metal screws, which would add to the weight.
Watchdog Mode
The second upgrade I designed was a sound sensor. I was at the pound store and found a tiny spy amplifier that operates on a 1.5 V button cell. I decided to modify that so that whenever there was the slightest of sounds, the circuit switches on the ATMega32 and invokes the Watchdog routine. It first goes to the centre of the room and turns a full circle videoing around itself, and sends that to me on the mobile phone.
If the sound is continuous, then it tracks the sound following it wherever it goes. The algorithm for this alone took months of development work in my spare time. I got the idea from Star Wars, where R2D2 keeps a watch over the princess whilst she was sleeping, except the bigtrak keeps a watch over my princess...
Snoop Stealth Mode
I have just written a sub-routine for the snoop mode. In this mode, I can dial-in to the toy, and listen-in on any conversation around the house without anyone being aware.
The toy has a high-gain amplifier, and the audio signal from that provides a cue to the servos when to move. In Snoop Stealth mode, the servos control the motor making very small precise movements to reduce their noise. I call it my Ninja Algorithm. When there is a low-level noise below the preset threshold value, it means that there might be people in the room and the bigtrak moves very slowly and quietly. When the sound level is above the threshold value, the servos go into mask mode. In mask mode, the higher ambient noise in the surroundings will mask the sound of the motor, and the toy will move faster.
There is also a routine, which follows the source of the sound quietly. It works rather well, because one day I was working, and it had managed to move quietly to where I was working, and was waiting behind me!
This Article Continues...
bigtrakbigtrak Commands
Opening the bigtrak
bigtrak Gearbox
bigtrak Motor
bigtrak Circuit Board
bigtrak Encoder
bigtrak Power Switch
bigtrak Removing the Wheels
bigtrak Facelift - The bigBrit Mod
bigtrak Facelift Modification
bigtrak Circuit Diagram - H Bridge Motor Driver
bigtrak Circuit Diagram - Encoder Servo
bigtrak Circuit Hack
bigtrak Speaker - Battery - LED - Wiring
bigtrak Ribbon Cable
bigtrak With Raspberry Pi
bigtrak Battery Cover and Compartment
bigtrak Front Suspension Mod
bigtrak Modifications Log
bigtrak Painting Wheel Rim Modification
Buying a bigtrak