Monday, March 29, 2010
Arduino Project Mission, Goal and Scope
Advanced Arduino
Mission Statement
The mission of the Breadboard Arduino Project is to provide hands-on training with the Arduino micro controller with widely available and generally affordable components in a breadboard prototyping environment. In other words, Learn Arduino, Have Fun, On the Cheap.
Course Goal
The goal of this course is to provide the student with a working knowledge of Arduino features that are beyond the introductory course. It is intended to be a stepping stone on the student’s path to Arduino enlightenment.
Course Intent
The intent of this class is to provide the student with a handful of tools that should be helpful in developing robotic platforms using the Arduino platform. It is not intended to be the definitive course on use of the Arduino and does not delve into the architecture of the chip. Indeed, this class does not really exploit any particular feature of the Arduino, but will leave the student with the knowledge of how to interface the Arduino with other components and assemblies.
In addition, the intent of this class is to let the student experience working with the Arduino at minimal cost. Students are encouraged to shop for lowest prices on components and buy in bulk when it makes sense. This course is specifically intended to keep costs as low as possible. Arduino has a development platform called the Duemilanove (extra credit for pronouncing it correctly). It’s a dandy platform, but at this writing, Sparkfun carries it for $29.95 + S&H. For our purposes, it doesn’t do anything better than what the student built in the introduction to Arduino class. In addition, for the exercises, one would still need a breadboard and all the additional components. Also, with the breadboard class, prototyping another chip means swapping out the Arduino with another chip and rewiring components. That activity may be performed for the cost of the new chip.
Overall, this class provides hands-on education at a low cost with a development platform and components that are reusable with other micro controllers. And it’s fun!
Course Scope
The scope of this class is limited to breadboard prototyping of different robotic functions including
• Indicator lights
• Switching
• Motor control
• Sensor input
• Position
• Motion
In addition, the coding is limited to the Arduino development platform and the Arduino interpretation of the “C” programming language. Even though the Arduino is an Atmel ATMega 328 chip, the specific Atmel and AVR functionality will not be specifically covered. Coding at the assembler level will not be covered. Should you wish to teach those classes, your involvement will be heartily welcomed.
The particular Arduino used in the Breadboard Arduino series is the Atmel ATMega 328 chip in the 28P3 28 pin PDIP (Plastic Dual Inline Pin) package. This is generally affordable, readily available, easily handled by hobbyists and lends itself well to breadboard prototyping. Outside of this class, you are welcome and encouraged to explore other chips and packages.
Intended Audience
The intended audience for this class is students that have participated in the Introduction to Breadboarding Arduino class as delivered by Dale Wheat. This prerequisite class defines the foundation for this class, familiarizes the student with the Arduino chip and the student will have already built the breadboarded Arduino that is used as the base for each of the sessions in this class.
Saturday, March 27, 2010
More Arduino Motor Control Powered Up
The down side to all this is that I am running the chassis on the bench. I need to solve several mobility issues. The breadboard is a collection of wires that will not tolerate a crash. The battery is too big for the chassis. It does make a good demonstration nonetheless.
I think that is enough fun for one day. Church in the morning.
Arduino Motor Control Powered Up
I wired up the Arduino motor control to the Tyco machine and the little 9-volt was wheezing to spin the motors. Being the chairatable and cautious type, I used the 12-volt battery that I had lying around. Even though it's not at the top of its game, the 12-volt unit had sufficient power to run the Arduino board and the motors.
Thursday, March 25, 2010
Arduino Project Status
The mission of the course is: Learn Ardunio, Have Fun, On the Cheap. As a result, the GPS module of the class may be stripped. $75.00 is cheap for GPS, but probably not really cheap for this class. I think it would be interesting for another class. The Arduino may not be able to handle it, but I think it is worth the attempt.
Tuesday was DPRG night and also a board meeting. Ed (our beloved DPRG President) is doing a fine job of leading us forward. That also meant that I had some work to do in the DPRG arena as well. Board meetings are such a thrill. I think we may turn to Robert's Rules of Order for some assistance in organizing our meetings and making them more efficient. We worked through a lot of material the other night, but it took awhile. The agenda was a page and a half long. If we are to get through the material, we need to do it quickly and efficiently.
In Scouts, I was able to organize the PLC meetings where the young men were able to conduct their meetings efficiently and actually get things done. I am confident that adults are able to learn the same tricks just as effectively. It would be to our benefit to do so.
Saturday, March 20, 2010
The Beginning of the Arduino Project
Perhaps where you're at right now, Arduino-wise, you could help me map out my "advanced" class. Controlling servos, H-bridges, relays, etc. is one path I would like to do. What say you?
How could I resist? In my usual reserved and cautious manner, I pretty much bulldozed the project and took it over. Dale really has enough to do. I outlined the course and sent that information to Dale for perusal. Since then, I have been fleshing out the course, writing the… I hate to say “lecture” … portion of the class, writing the programs and wiring up breadboards with the class examples. If you are not already familiar with breadboard prototyping, Wikipedia has a very good explanation at this link: http://en.wikipedia.org/wiki/Breadboard Two of their examples make my boards look absolutely pristine.
In the introductory class, students built a breadboarded circuit using the Arduino and built a few projects. This class builds on that same breadboarded Arduino and continues forward. Students will build multiple projects on this breadboard, disassembling the current circuit in favor of the new. As an instructional tool, the boards for teaching must already be assembled to demonstrate a working model and a physical example of what the board should look like when completed. Well, more or less, anyway.
So, for each session in the class, I have assembled a breadboard to demonstrate all the lessons covered in that session. For the first session, Flashy, Winky, Blinky, Traverse, Fader, Fading Traverse and Cylon are all programs to be demonstrated (I will define these programs in a later post). Fortunately, one row of six LEDs is sufficient. I did have to add a push button to demonstrate all these functions in one program. The push button is beyond the scope of the first session, so the result is that we have the instructor’s board that is similar to, but not quite identical to the student board.
The second session on switching was a bit more challenging in that four distinct and independent functions are demonstrated on the board, requiring independent hardware. Once again, the demonstration mode runs all the programs, but this time, there is just a pause between programs. The programs demonstrate Arduino switching in the following forms:
· using a PN 2222A transistor to switch
· using a PN 2222A with PWM
· using a PN2222A to switch a relay
· using a MosFET to switch
· using a MosFET with PWM
That is really only three distinct circuits, but there is the addition of a voltage regulator in that the MosFET is used to switch a heavier, non-USB-5-volt supplied source. When not hooked up to the USB to TTL converter, a 12-volt battery runs the entire circuit.
The third board is more coherent in that the Arduino control of a single H-bridge (SN754410 Quadruple Half-H Driver) is the only demonstration. There is more wiring due to the manner in which each communicates. Once again, the voltage regulator is present. There will also be two motors involved with this project. I have to figure out a good demonstration for the motors that fit within the mission of the Breadborad Arduino project (simply, commonly available to all the students and cheap).
Board five is already built- it is the one that got me into this. It is a demonstration of the PING ))) ® ultrasonic transducer with the Arduino. That board is already too crowded to incorporate another project, so session three will have two instructor boards- one for other input handling (board four) and one board for ultrasonic sonar.
Pieces that have not yet been worked into the class are that push button mentioned above- yes, it’s a simple piece of hardware, but it requires some specific handling in the software, the voltage regulator that keeps popping up and a serial LCD screen. The LCD screen is perhaps a little pricey for the class, but it would be fun. All programs currently use serial output to the computer to communicate text. This limits the portability of each example in that the board must be tethered to the computer with a USB cable.
More updates as they happen.
Friday, March 19, 2010
More Arduino Motor Control
1) run wiring to the motors
2) add protective diodes
3) add power
4) write the program
After that, the class needs to be written. Most of the work will be done by then.
Additional features of the board are:
1) LEDs to indicate the motor direction so one can see how the power is directed to the motors
2) LEDs to indicate pinMode LOW when the motor is disabled
3) actually running two motors at the same time
This class will have less demonstrations on the same breadboard, but several things come together in this class. The students will be using PWM to control the H-bridge. The H-bridge is a solid-state device built expressly for motor control but can be driven like a MosFET.
The entire breadboard can be mounted to a 2-motor differential drive unit for demonstration. It would be good to have a method of securing the breadboard to the chassis.
More news later.
Wednesday, March 17, 2010
Arduino Motor Control
For some great content, my friend Dale sent me a treatise on PWM that explains it in simple terms. It will make a great addition to Class-1.
The remaining Arduino received from Sparkfun does not have the red marking that the other Arduino chips have. To test, it will be inserted into a known working circuit and a program will be loaded. If it works, it is merely missing the red mark. If it does not work, then perhaps it is missing the Arduino boot loader. That's what testing is for.
That is enough for tonight.
Tuesday, March 16, 2010
RBNO
These assembled breadboards do not travel well. There must be a better way to carry them around. Granted, that's not something one usually does with a prototyping board, but that is the current plan.
Monday, March 15, 2010
Prelude to Arduino
In process right now is the development of class utilizing the Arduino microcontroller. Before anyone points it out, there are others that are developing classes utilizing this same chip. This class is being developed by a person that has been building projects with this chip for almost a year. It is an easy to use chip and it’s a lot of fun building the projects.
The intent behind this class is to share. There are those that may be experiencing some difficulty or just don’t know how to proceed. After taking the class, then someone working with small robotic projects will have a set of tools and solutions that can be easily applied in that field.
There are multiple microcontroller products with the name “Arduino.” In this class, the term “Arduino” will refer to the Atmel ATMega 328 chip with an Arduino boot loader. The chip itself is used on a prototyping breadboard and not on one of the development platforms sold by Arduino such as the Arduino Duemilanove. It’s easier to pronounce if you speak Italian.
Much information about the Arduino can be found on the web.
Arduino maintains this site:
Much more is available and easily found.
The Arduino chips for this class were purchased from Sparkfun Electronics
(http://www.sparkfun.com/)
and are modestly priced. Breadboards were purchased from Marlin P. Jones & Assoc. Inc. (http://www.mpja.com/);
Breadboards and other electronics were purchased from Tanner Electronics in Carrollton, Texas (http://www.tannerelectronics.com/).
The current USB to TTL serial adapter is the USB BUB board from Modern Device (http://www.moderndevice.com/)
and is the most expensive item on the basic Arduino breadboard setup. This product may be changed in the future.
In addition, this class is built as an extension to the “Breadboard Arduino” class developed by Dale Wheat (http://blog.dalewheat.com/tag/arduino).
Prerequisites to this class are all in his class. If you have attended the introductory Breadboard Arduino class, then you have the base hardware and training needed for this class.
So, as far as the class goes, updates have been posted to Facebook, but will now be posted in this blog. There will probably be some information fed into one or two posts that gets the information caught up.
Saturday, March 13, 2010
Genesis
Please bookmark Z Axis Zero and visit often. Content will change on a sporadic basis at the beginning and become more regular as the dust settles on this new site.
Thanks for visiting!
-Your Host