title title title title

Robotics Introduction Class

Penasquitos Library - July 2013


Arduino Uno

July Robotic and Arduino Introduction Meetings

Arduino Basic Course: PowerPoint Slides

Using a Class Library: PowerPoint Slides

DC Motor Control: PowerPoint Slides

DTMF Phone Switches: PowerPoint Slides

This course was presented at the Penasquitos Library - July 2013

Here are the videos:
Morse Code Demo
Ardupilot Demo
Slidebar Demo

Here are some websites to visit:
Arduino Tutorial Page
Jeremy Blum's Tutorials
SparkFun Tutorials
AdaFruit Arduino Tutorials


The first meeting of the Arduino Robotics Course took place on Monday, 1 July at the Penasquitos Library. The next meeting will be on 8 July at 3:30pm to 5:00pm, same location.

The Second meeting was Monday, 8 July. I talked about how a typical library that is many times associated with a board or sensor you buy or an extended functionality of your code is composed of C++ classes. I went through how a class is structured and demo'd an example of the Telegraph Class.

The third meeting was Monday, 15 July. I talked about how to control a DC motor in general and then used a car on a sliding rail to show how a linear track situation could be controlled by the Arduino. An optical interrupter or slot sensor was used at one end of the slider to establish a starting reference. The sketch intialized the car to that end of the track, reversed direction, and moved to the other end. Another sensor was place at this end to stop the car and to reverse it again. Thus, the car moved back and forth between the senors. Each of the various DC motors demo'd was controlled through a motor controller board that had an H-brdge circuit to control the direction and a PWM speed control. Therefore, the Arduino only needed three signals to control the motor. One for speed and the other two to set the modes of CW, CCW, or stop.

For our final meeting, I brought in a project based on the ATT telephone Dual Tone dialing system to be used to call in and send a code from a remote phone to operate a set of 8 switches that can be used to turn on appliances, etc. the use 120VAC. The project uses several technologies to accomplish and therefore provides a great software challenge. During the demo of the circuit, I have an issue when trying to select odd numbered switches to turn on. I'd seen this crop up before but didn't know what caused it, since it would go away after exercising the system for a while. The lesson to take from this is software doesn't do things on its own. Something was causing this. I racked my brain think "Why only odd numbers?" Looking at the code closely, I noticed that all odd numbers in binary (up to 8) have bit one in common (0001, 0011, 0101, 0111) the least significant bit. Looking at the code that reads the 4-bit code from the decoder board. I added a time delay, making the assumsion the read function didn't have enough time to complete and only read 3-bits would cause the hang up seen. This small change solved the problem. So in troubleshooting a code problem the best way to start is to comment out all operations except for one and work your way back up adding functions until the problem comes back. Then isolate the function and check out all possible combinations to find the bad code or in this case a needed time delay.

I want to thanks the folks that came to the class and I hope it motivated you to continue your pursuit of electronics and the art and science of physical computing.

Return to: Electronics Page