Arduino® Robotics Workshop 1 - Basic Input/Output & Control
Arduino is a fantastic platform for students to get started quickly in learning about programming, electronics, sensing and actuation. Unfortunately, the platform abstractions hide a lot of “know-how”, which is useful when you are creating/debugging your own circuits and code.
This course will de-mystify the Arduino platform, giving you an insight into the basics of the microcontroller unit ("MCU") used on the UNO board. You will also learn the basics of software design for embedded applications and how to write fast embedded control loops.
In embedded control applications, computers interact with input/output circuits, so we will cover the basics of digital and analog inputs and outputs, with a focus on the sensors and actuators used in a simple line-following robot application.
The concepts will be reinforced via the construction and programming of an Arduino-compatible line-following robot circuit using discrete components. This platform can be easily reused for your own investigations in electronics, sensing or actuation.
Chassis fabrication is not covered in this workshop.
Arduino-Compatible Line-Following Robot
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 used in the UNO, and how to wire it up.
- Be able to fabricate a simple control application, using sensors and actuators.
- 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 to round out your coding skills: 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 the "full" course registration fee): Coolduino UNO 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.5 (Windows) or (MAC OS/X)
- Adobe Acrobat Reader
- FTDI Cable Drivers