Building computer controlled automation systems is a lot of fun. There are a lot of new and inexpensive devices coming onto the market all the time. Many of those devices can be connected to a computer via an RS-232, a USB, or a firewire port. These are my thoughts on building some learning tools and accompanying documentation to teach homeschool kids and others about how to design and build a computer controlled automation system based on those kinds of devices.

Automation Controller: After purchasing a 3-axis stepper motor controller and accompanying stepper motors yesterday, I got to thinking how I might effectively teach Christian how to design them into a computer controlled automation system. Generally, stepper motors are insufficient by themselves for making something useful or even interesting. In thinking about the other things we might need to do something very interesting, it dawned on me that with just six different types of serial port controlled devices, I could build a plethora of systems capable of performing a very wide range of tasks. The following is a table of the devices and a brief list of the kinds of things they might be used to control:

Serial Device Things they can control
Motor Controllers XY Tables, robot arms, telescope positioners
Digital Inputs Through beams, contact switches, proximity switches
Digital Outputs Solenoids, lights, fountain pumps
Analog to Digital Convertor Temperature sensors, velocity sensors, light sensors
Digital to Analog Convertor Speed controller, temperature controller, light controller
Cameras Robot guidance, motion detection, measurement

If I want to be able to teach students how to program these devices easily, I need a programming environment that allows the student to engage directly with the equipment via typed commands. In looking around, I found an interpreted cross platform programming language called Python that might be just perfect for what I want to accomplish.

As you have seen from above, I have started a new category called Automation Controller. I will write my continuing thoughts on this project under that category. This is a big project, so I am not expecting to finish it quickly. If I have the time and it is successful, it might even deserve a webpage of its own.