My wife Heather and I (mostly Heather) homeschool our 5 kids. This lets each of them decide what their interests are and lets us focus their studies on those interests. Since we started homeschooling our oldest over 8 years ago, I knew I wanted to teach him basic computer programming. I struggled for years trying to figure out how to teach something like that to kids.
I tried starting with Visual Basic. It was my first programming language so I thought it would be a good start. Showing Mike around forms and controls was easy enough. He could see things like a button and move it around the form. He knew what a button was and that clicking on a button did “stuff”. That is where the problems started. Once you have a button on the form, you have to write code to make it do that magical stuff. Writing code is hard to explain to an adult, I found it even harder to explain to a kid who just learned how to read.
Talking about things he could not touch, let alone see just went right over his head. He got frustrated and I got discouraged, so we stopped trying. Years later it hit me, lets make a robot. He could see the product of that and hopefully learn some programming along the way. My problem was that I knew nothing about robots.
I started searching the Internet for everything I could learn about robots and how to build them. I look first at robotic kits and robotic toys, but it seemed like cheating. Boy, if i knew then what I know now I would defiantly have started with a kit. Something like Lego Mindstorm is exactly what we needed. Anyway, I started looking at microcontrollers. These are the tiny little brains that make robots more than a pile of plastic and metal that just sits like a statue.
I found Basic Stamps from Parallax. They have kits and sensors and motors and controllers and everything I could possibly need. The best part is that you program them in a version of Basic. I at the time had been writing Visual Basic for 8 years, so it was a perfect fit. I bought a Board or Education kit which came with a great book with sample projects, all kinds of sensors, led lights, servos and more. The whole kit was designed for educators to teach with. It really was perfect.
I worked on all kinds of sample projects trying to learn enough to teach the kids. I still struggled with showing them the actual source code because they just did not understand variables and loops and all those boring things that go into writing code. I then moved to the next phase, forget about code lets learn electricity.
I took them outside and we tore apart an old Power Wheels car that they never used. I got to the drive motors, stripped back the wires and brought out a car battery. I quickly explained the basics of electricity: Power, Load and Ground. Then I put the wires from the motor on the battery terminals and the wheel started spinning. They were having so much fun. Each took turns putting the ground wire on and taking it off.
I then had to research how you go from a microcontroller and board that use a 9 volt battery to a 12 volt motor. I found that motor-controllers are the answer. They take a small voltage single from the microcontroller and using a secondary power source (in my case a car battery) send the higher 12v power to the motor. The really cool thing is that a motor-controller can also send the voltage the other direction. Power to the ground side and ground to the power side and move the motor backwards.
My next step was buying a HB-25 motor controller from Parallax and writing code so the microcontroller would spin the motor forward for a few seconds, slow to a stop, spin the motor backwards a few second and stop.
We then put the car battery, motor controller and microcontroller setup in the car. I turned put the battery in the board and off went the car. Forward, backward and stop. We had done it, we made a real robot. Granted all it did was go forwar, backward and stop but it was real. Give it power and it did what we had told it to do.
The boys came up with all kinds of ideas for it, but other things took priority and we never continued on the project. It has been a few years, but the desire is back in all of us. We have some new ideas for new projects and have found all kinds of new components. Stay tuned for all the excitement.
I think I finally have Mikey interested in learning to program C#. We sat together for about 2 hours and he wrote his first application. All it did was add 2 numbers and write it to the screen. I was so proud of him, but it really excited me a few hours later when his friend came over. He was explaining to her what he learned, and then he changed the code to add numbers with decimals instead of the whole numbers that it was doing.