Reconfigurable computing
Small Embedded Systems
Unit 1.4
Introduction to Arduino Hardware
The Arduino Project
Open source project to make embedded system programming accessible and standardised
Hardware boards and software development environment
Many companies produce clones of official Arduino boards
Also many other boards are produced that are compatible with Arduino software environment
Strong user community and ecosystem of equipment that can interface to the boards
Has inspired Arduino-like software for other platforms, e.g.
ChipKIT for PIC32 microcontroller boards
WiringPi for Raspberry Pi single board computers
Arduino Hardware Boards
Arduino Uno is the most well known board
ATmega 328P 8-bit microcontroller
Boot loader program pre-loaded into microcontroller
Board contains interface to enable USB to provide
Power
Programming
Serial communication to/from host computer
Arduino Hardware Boards
Ethernet
Relays
Motor control
Sensors
Board contains headers to make it easy to connect to
A wide range of daughterboards (called “shields”) is available that plug into headers
Arduino Hardware Boards
Large form factors are used mainly for prototyping
Smaller form factors are also available
Same microcontroller, but fewer features on board
On-campus labs will use Nano
Uno
Nano
Pro Mini
Arduino Simulator
TinkerCAD is free online simulator
Supports Arduino Uno and a wide range of components
Runs Arduino code (but not all libraries available)
Online-only labs will use Uno in TinkerCAD
tinkercad.com
Arduino Simulator
TinkerCAD is free online simulator
Supports Arduino Uno and a wide range of components
Runs Arduino code (but not all libraries available)
Online-only labs will use Uno in TinkerCAD
tinkercad.com
ATmega 328P
Member of the AVR family of microcontrollers
Developed by Atmel, now owned by Microchip
The Story of AVR: www.youtube.com/watch?v=HrydNwAxbcY
ATmega 328P
8-bit microcontroller
32 kByte flash memory
1 kByte EEProm
2 kByte RAM
3 timer/counters
Serial communications controllers:
USART
SPI
I2C
10-bit analog-digital converter
Multiplexed across 6 input channels
Pinout Diagrams
Diagram shows which resources are connected to which location on the headers
For example, we can connect to the ADC using any of the pins shown in green
www.pighixxx.com (https://creativecommons.org/licenses/by-sa/4.0)
Pinout Diagram for Nano
Nano pinout is almost identical to Uno
https://commons.wikimedia.org/wiki/File:Arduino-nano-pinout.png
Feather Development Boards
Range of Arduino-compatible development boards produced by Adafruit
Each is targeted at different application area
A range of daughterboards called “wings” is available
Ethernet
OLED display
Feather Huzzah
Feather development board targeted at Internet-of-Things
32-bit microcontroller ESP8266
Built-in WiFi (IEEE 802.11b/g/n)
4 Mbyte flash
32 kByte RAM
10-bit analog-digital-converter (single channel)
Serial communications controllers:
USART
SPI
I2C (software implementation)
Feather Huzzah Pinout
Diagram Shows what feature is available at what location
ADC is accessed on pin 17
LED is on pin 0
https://learn.adafruit.com/adafruit-feather-huzzah-esp8266/pinouts
Feather Huzzah Pinout
Numbers in purple/green are numbers used in software IDE
Numbers in grey are pin numbers on the chip – don’t use them
https://learn.adafruit.com/adafruit-feather-huzzah-esp8266/pinouts
Hardware discussed in this course
On-campus labs will use
Arduino Nano
Feather Huzzah (For Internet-of-Things capability)
Online-only labs will use
Arduino Uno
Discussion of internal operation of microcontrollers will focus mainly on ATmega328P
Simpler operation
Broader range of capabilities
Much better range of documentation available
Summary
Arduino ecosystem aims to make embedded programming accessible
Boards make it easy to flash application program into microcontroller and to communicate with host computer
Lavf57.71.100
/docProps/thumbnail.jpeg