Upload
phamdan
View
219
Download
0
Embed Size (px)
Citation preview
Microcontrollers and Interfacing
Week 01
Introduction and course overview
College of Information Science and Engineering
Ritsumeikan University1
useful information
Course title: Topics in IT 4 — Microcontrollers andEmbedded System Interfacing for the IoT
Course language: EnglishCourse web site: www.ritsumei.ac.jp/~piumarta/topics4
Instructor’s name: (Prof. | Dr.) PIUMARTA (ピュマータ)Instructor’s e-mail: [email protected]
Instructor’s office: CC301Office hours:
Friday 13:00–14:00others send e-mail
2
course relevance: the Internet of Things
academic challenges and opportunities:embedded languages & group distributed big HCI autonomous on-demand physicalhardware middleware communication algorithms data models collaboration manufacturing design
3
course relevance: the Internet of Things
4
course objectives
understand the architecture of microcontrollers and embedded systems
learn how to interface these devices to the physical world
• software techiques
• several different types of hardware device
review some basic electronics techniques relevant to interfacing
• voltage, current, resistance, Ohm’s law
• simple use of transistors and op-amps
have some fun!
5
this week
a brief history of microcontrollers: where they came from
software environment
• booting the laptop
• shutting down the OS
the Arduino development environment
• anatomy of arduino programs
• some simple programming exercises
• using the serial monitor
hardware environment
• digital output
6
some history
late 1970’s, early 1980’s
• 4- and then 8- bit microprocessors become popular and cheap
• complete system contains many discrete components:– microprocessor– memory: ROM and RAM– input/output: counter-timer, parallel I/O, serial I/O (UART)
7
some history
8
evolution: 1980s
single-board embedded systems rapidly outnumber desktop systems
• industrial control
• telephone switches
• household appliances
microcomputer systems evolve in several directions
• more powerful CPUs, for high performance– leading to Phenom II, Core i7, etc.
• more efficient CPUs, for low power– leading to ARM, Geode, etc.
• integration onto one die, for small footprint– serial/parallel input-output, RAM, ROM, timers, CPU– leading to microcontrollers and system-on-a-chip (SoC)– embedded/control systems can contain one chip + power!
9
modern microcontroller: AVR (ATmega)
• 8-bit RISC CPU, 16 MIPS
• 2k RAM
• 32k ROM (flash)
• 8- and 16-bit timer/counters
• 32 parallel/serial I/O lines
• eight 10-bit analogue inputs
• PWM analogue outputs
(red lines show functions inherited from1980s single-board microcomputers)
10
result of integration
architecture similar to 1980s, but very large scale integration (VLSI). . .
300×250 mm (12×10 in) board −→ 12×12 mm (0.5×0.5 in) chip11
popular AVR implementation: Arduino
open-source hardware and software
more than 500,000 sold, less than $30 (2500 JPY)
many add-on products available
Google’s ‘Android Open Accessories’ standard uses Arduino12
architecture
memory
31 8-bit registers
16-bit addresses
• three index registers
• pairs of 8-bit registers: r26:r27, r28:r29, r30:r31
13
tethered development environment
‘sketches’ written in simplified C++
libraries provide functions for configuring and reading/writing I/O pins
14
expansion
stackable ‘shields’over 500 available:
audiospeechcameravideodisplay (LED, LCD)SD cardjoystickaccelerometertemperature, pressureradiationinfrared I/OethernetWiFibluetoothRFIDFM radiocompass, GPSGSM, cellular modemetc...
15
shields: connectivity
ethernet ($55), SD card ($20), proto board ($12), LED array ($25)
16
shields: interfaces
simple LCD ($20), colour touchscreen ($60)
17
shields: robotics
stepper motor ($30), robot ($120), chassis ($50, $60)
18
course overview
arduino software and hardware environments
input and output (digital and analogue)
pulse-width modulation
amplifying input and output signals
digital-to-analogue and analogue-to-digital conversion
transducers for voltage, sound, visible and IR light, temperature, etc.
advanced hardware topics:
• asynchronous activities
• memory-mapped registers, timers, counters, interrupts
advanced software topics:
• serial communication, UART
• I2C and SPI busses: using a “real” D-to-A converter
project!19
environment
programming the microcontroller requires an IDE
• header files and libraries
• compiler and linker
• binary uploader– transfers the compiled program to the microcontroller
it is highly recommended that you
• install the IDE on your own laptop– it runs on Mac, Windows and Linux– download from: http://www.arduino.org
• remember to bring your laptop to this class every week
• make copies or back ups of your work frequently
if you do not want to do this, you can use a lab laptop...
20
environment
your hardware kit includes a bootable USB flash memory stick
• Linux operating system
• Arduino Integrated Developement Environment (IDE)
to boot from USB:
• insert the USB memory stick into a USB port
• turn the laptop on
• repeatedly press the F12 key until the machine beeps
• wait for the boot menu to appear
• use the cursor keys to select the third entry, something like3. USB media USB 3.0
• press Enter
• wait for the boot loader menu
• press Enter
• wait (about 30 seconds) for the Linux desktop to appear21
the IDE
double-click on the icon:
a window should appear:
22
the IDE buttons and panes
23
the hardware
in your hardware kit you should find
• an arduino board
• a USB cable
connect the board to the computer with the cable
verify that the hardware status at the bottom of the IDE window shows
• Arduino Uno on /dev/tty/ACM0
(or something similar)
24
first programming example: blinking LED
edit the initial (empty) sketch as follows:
void setup(){
// your configuration code goes here}
void loop(){
// your application code goes here}
useful functions:
pinMode(n, OUTPUT); // configure pin n as an outputdigitalWrite(n, LOW); // set pin n to 0 (low voltage)digitalWrite(n, HIGH); // set pin n to 1 (high voltage)delay(n); // pause execution for n milliseconds
when entered, select ‘upload’ from the ‘Sketch’ menu
(‘upload’ will first compile the sketch, then upload the binary to the hardware)
25
first programming exercise: blinking LED
we will learn what the various functions do next week
in the meantime, try this:
• modify the constant values (change the ‘200’s to something else)
• upload your sketch again and observe the behaviour
• try different constant values– large and small– either two of the same value, or two different values
26
shutting down the computer
never remove the USB stick while the computer is running!
• doing so may destroy your work
to turn off the computer:
• click this button in the top-right corner of the screen
• a window will open: confirm that you want to shut down the machine
• wait 20 seconds for the machine to shut down before removing the USB stick
27
about your hardware kits
each hardware kit has a number printed on the side of the box
• make a note of your kit’s number
• use the same kit every week
this is important for several reasons, including:
1. data (such as your sketches) are saved permanently on the USB stick
2. you might need to save your hardware ciruit for the following week
28
about the software environment
the Arduino IDE is free and runs on Linux, Mac and Windows:
http://www.arduino.org
the USB memory sticks we are using boot into a ‘portable’ version of the Linux OS
• ‘portable’ means that no changes are made to the host computer
• you can put the USB stick into almost any PC or Mac and boot into Linux
• your Linux files and other data will be preserved on the USB stick
so if you are
• new to Linux and want to practice with it, or
• in need of a persistent Linux OS that you can carry in your pocket
then you might like to install the same environment on your own USB stick:
http://www.porteus.org
29