Arduino® Robotics Workshop 1 - Basic Input/Output & Control
Arduino is a fantastic platform for students and makers to get started quickly in developing embedded applications. Unfortunately, the platform abstractions hide a lot of “know-how”, which is useful when you are creating/debugging your own custom design.
This course will de-mystify the Arduino platform, giving you an insight into the basics of the AVR® microcontroller (architecture, basic connections, peripherals, memories, fuses etc). The course will also introduce you to modeling an application as a state machine and encoding it in a fast embedded control loop.
The concepts will be reinforced via the construction and programming of an Arduino-compatible line-following robot circuit using discrete components (The "Coolduino UNO CETA Robot"). This robot is currently being used in several local high-school robotics competitions.
Chassis fabrication is not covered in this workshop.
After the workshop the attendee shall,
- Understand the fundamentals of the Arduino® Platform (hardware AND software).
- Be able to construct their own Arduino-compatible controller board using discrete components.
- Understand the basics of the AVR® microcontroller, and how to wire it up.
- Be able to fabricate the robot control platform used in the CETA competition.
- Be able to interface with the robot motors and sensors using standard Arduino libraries.
- Understand how to model basic robot behaviours using a state machine and implement it in a fast embedded control loop.
- Ideally, you have already been fooling around with an Arduino UNO!
- The following course is recommended: Beginning C Programming with Arduino®
PART 1. INTRODUCTION
- Review of Microcontrollers & Embedded Systems
- Basics of Programming
PART 2. ARDUINO HARDWARE
- Arduino UNO Hardware Architecture
- AVR® Microcontroller Architecture
- Microcontroller Wiring & Configuration
- What Are Peripherals?
- Key AVR Peripherals Used in the Robot
- LAB 1 - Blink
PART 3. ARDUINO PROGRAMMING CONCEPTS
- Programming Model
- Core Runtime Functions
- The Embedded Control Loop
- State Machine Basics
PART 4. ROBOT OUTPUTS
- Parallel Input/Output Ports
- Basics of Brushed DC Motors & Their Control
- Using Pulse-Width-Modulation (PWM) in Arduino
- LAB 2 - Controlling DC Motors
PART 5. ROBOT INPUTS
- What is a Sensor?
- Optical Sensors Used in Line Following Robots
- Processing Analog Signals on a Computer
- Using Analog Inputs in Arduino
- LAB 3 - Line Detection
Required Equipment & Components
The lab exercises are tested on a Windows 7 Professional (64-bit) platform, however, should also work on Linux and MAC OS/X platforms. Your PC should also have 1 available (free) USB port. The following equipment and software should be installed/available before attending the workshop:
- Component kit (included with full registration fee): Coolduino CETA Robot Kit (#18-00008A)
- Workshop Student Files (a download URL will be provided via email)
- Pliers & wire cutter/stripper (wire gauges used: 22AWG, 26AWG)
- Mini/Precision Screw-Driver Set
- Basic multi-meter (dc voltage/current + frequency counter function)
- (Recommended) Solder Station (suggest Hakko FX-888D)
- (Recommended) LED Magnifier Desk Lamp
- Arduino IDE v1.8.2 (Windows) or (MAC OS/X)
- Adobe Acrobat Reader
- FTDI Cable Drivers