SlideShare a Scribd company logo
Grenoble | images | parole | signal | automatique | laboratoire
UMR 5216
Anton Andreev
07/05/2020
INTRODUCTION TO
ARDUINO
Contents
INTRODUCTION TO ARDUINO
1. General information
- Specification
- Drivers and Shields
- GPIO
- Compilers and IDEs
- Hardware protocols: I2C, SPI, UART
2. Examples
- DC Motor control
- Stepper motor control
- Reading analog data ADC
- What is DMA optimization?
- Equalizer in software and hardware
In a nutshell
INTRODUCTION TO ARDUINO
Arduino is:
• Board + Microcontroller unit (MCU)
• A standard (Arduino comtible/clone)
Arduino’s features:
- 8 bit 32 registers RISC processor, AVR family
- Produced by Atmel (acquired by Microchip Technology)
- In-system programmer
- Bootloader
- Analog to Digital Converter (ADC)
- 10-bit ADC with 1,024 (2^10) discrete analog levels
- 14 input/output pins
- Comes with IDE (Integrated Development Environment)
- Many libraries, examples and documentation
Specification
INTRODUCTION TO ARDUINO
- 8 bit AVR CPU
- Flash Memory is 32 KB
- SRAM is 2 KB (RAM)
- EEPROM is 1 KB
- CLK Speed is 16-20 MHz
- Some versions have DMA
- 32bit ARM CPU
- Flash Memory is 512 KB
- SRAM is 96 KB
- EEPROM is 1 KB
- CLK Speed is 74-80 MHz
- Has RTC
- Has DMA
Arduino Arduino clone STM32 Nucleo
Many clones of Arduino exist often with better hardware parameters,
Bluetooth and WIFI modules built-in
Arduino also has several versions: UNO, Leonardo, Mega, Ethernet
Drivers and Shields
INTRODUCTION TO ARDUINO
Example: the L298N first as a driver
and then a shield
Difference:
- A motor driver is a chip that drives motors. A motor shield is a circuit
board with connections on it that contains a motor driver chip that
drives motors. A shield is convenient since you can just plug it in to your
Arduino and wire the motors direct to it, but it lacks the flexibility of a
raw driver chip which you can wire up precisely as your project
demands.
Other popular shields for Arduino: ethernet, WIFI, RGB LCD
Arduino vs Raspberry Pi Short Comparison
INTRODUCTION TO ARDUINO
Pi is more powerful, like a normal computer
Raspberry Pi is:
- Multicore ARM 1.2Ghz,integrated GPU, RAM 1GB
- Has GPIO 40 pins compared to Arduino’s 20
- 8 channel 17 bit ADC
Usage:
- For higher level tasks
- Machine Learning (any ML library that compiles on
Linux OpenCV included), Image Processing
- Multimedia
- Small factor computers
- Surveillance systems
- Draws more energy than Arduino
- More expensive
- Has no storage by default
Arduino can be used as a
slave for Raspberry Pi
Compilers
INTRODUCTION TO ARDUINO
Arduino
program/sketch
Small modifications to
produce standard C code
Every manufacturer has its own software
development toolchain
Avr-g++ compiler is part of Atmel AVR GNU
Toolchain. It is based on GNU GCC and
tools created by AVR
Code for STM32 is pure C/C++ with libraries
from ST. The compiler is part of the
STM32Cube Ecosystem. The compiler is
called GNU Tools for STM32 and it based
on a patched version GNU Arm Embedded
Toolchain avr-g++
compiler
CircuitPython
INTRODUCTION TO ARDUINO
- Fork of MicroPython
- Targets: low memory and performance boards
- 32 bit ARM (such as STM32 or ESP8266)
- But not the original Arduino with 8 bit AVR CPU
- Python 3 compiler and Virtual Machine are on the board
- REPL on the USB through serial
- Controller’s flash memory is exposed as USB thumb drive
- .py files can be copied onto the board and executed
- main.py or code.py are executed automatically on restart
- Can restart automatically when .py file has changed
- Result of “print” command is visible in the Serial Monitor
- Can have only the VM and bytecode compiled program on the board
IDEs
INTRODUCTION TO ARDUINO
- Arduino IDE
- Programs are called sketches
- Easy program upload
- Easy configuration
- Serial Port
- Arduino type or clone
- Atom IDE + Platformio plugin
- Visual Studio with Arduino add-on
- Paid
- Integrated debugging
- Eclipse for Arduino
- SMT32 System Workbench (only for STM32)
- STM32CubeIDE (only for STM32)
Arduino GPIO
INTRODUCTION TO ARDUINO
General-Purpose Input Output (GPIO)
14 digital and 6 analog pins ca be used
for both input and output
pinMode (3, OUTPUT) //set as output
digitalWrite (3, HIGH) //set 3,3V value
digitalRead(pin) //read state
digitalRead(pin) // ADC 5v -> [0..1023]
Arduino PINS
INTRODUCTION TO ARDUINO
Digital Input with Pull-up
Resistor
INTRODUCTION TO ARDUINO
Problem:
Sometimes switching between one state
to another or pins configured as input with
nothing connected to them may arise
situation of High-impedance state i.e.
floating state. This state may report
random changes in pin state
Solution:
Adding pull-up (to +5V) or pull-down (to
Gnd) resistor which helps to set the input
to a known state
pinMode (3, INPUT_PULLUP)
Pull Down resistor
SPI and I2C
INTRODUCTION TO ARDUINO
When we connect a microcontroller to a
sensor, display, or other module these
device needs to communicate
Two popular hardware communication
protocols:
- SPI is used for SD cards, RFID card
readers …
- I2C is used for OLED displays,
barometric pressure sensors, or
gyroscope/accelerometer …
- Both use clocks, are serial and async
- 2 (I2C) or 4 (SPI) wires
- One or multiple masters (I2C)
- One or multiple slaves (both)
- I2C uses messages with addresses to
communicate with salves, SPI use selects
to which slave to speak
- Speed of transfer (SPI is faster)
I2C message
I2C: SDA (Serial Data) and SDL (Serial Clock)
I2C OLED example
INTRODUCTION TO ARDUINO
#include <Arduino.h>
#include <U8g2lib.h> //library for control of the OLED screen
#include <SPI.h>
#include <Wire.h>
U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0);
void setup(void)
{
u8g2.begin();
}
void loop(void)
{
u8g2.clearBuffer(); //clear the internal memory
u8g2.setFont(u8g2_font_logisoso28_tr);
u8g2.drawStr(8,29,“GIPSALAB"); //write something to the internal
memory
u8g2.sendBuffer();//transfer internal memory to the display
}
On the Arduino:
Pin 19 blue line is SCL
Pin 18 purple is SCA
UART
INTRODUCTION TO ARDUINO
UART is used over a computer or peripheral
device serial port (COM1,COM2…) through a
UART chip
Characteristics:
- Well documented and widely used
- Two wires
- 9 bit packet (0 or 1 parity bits)
- Serial
- No clock
- Has a parity bit to allow for error checking
- No multiple slaves, only one on one
PWM (1)
INTRODUCTION TO ARDUINO
PWM is a technique to
use digital values and
delays to emulate
analog values
DC motor control With Arduino (1)
INTRODUCTION TO ARDUINO
In red the L298N
motor driver
DC motor control With Arduino (2)
INTRODUCTION TO ARDUINO
L298N H-bridge can used for two motors and to change in which direction
the motor spins
DC motor control with Arduino (3)
INTRODUCTION TO ARDUINO
We use PWM in the
range of [0 255]. So if
want 3V out of 12V
maximum then we
need to send the
value of 255/4 on the
control pin
255 corresponds to 12 volts
DC motor control with Arduino (4)
INTRODUCTION TO ARDUINO
int rotDirection = 0;
int pressed = false;
#define button 4
void loop()
{
// Read potentiometer value
int potValue = analogRead(A0);
// Map the potentiometer value from 0 to 255
int pwmOutput = map(potValue, 0, 1023, 0 , 255);
// Send PWM signal to L298N Enable pin
analogWrite(enA, pwmOutput);
// Read button
if (digitalRead(button) == true)
{
pressed = !pressed;
}
//wait until button is released on a single push
while (digitalRead(button) == true);
delay(20);
//If button is pressed - change rotation direction
if (pressed == true & rotDirection == 0)
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
rotDirection = 1;
delay(20);
}
// If button is pressed - change rotation direction
if (pressed == false & rotDirection == 1)
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
rotDirection = 0;
delay(20);
}
} //end of loop()
Stepper motor control with Arduino (1)
INTRODUCTION TO ARDUINO
Stepper motors can be:
• unipolar -> U2004 Darlington Array
• Bipolar -> SN754410ne H-Bridge
Also the wiring is different for Darlington Array and the H-Bridge
Stepper motor control with Arduino (2)
INTRODUCTION TO ARDUINO
Code is the same for unipolar and bipolar motors.
#include <Stepper.h>
const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution
// for your motor
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);
int stepCount = 0; // number of steps the motor has taken
void setup() { // nothing to do inside the setup}
void loop()
{ // read the sensor value: int sensorReading = analogRead(A0);
// map it to a range from 0 to 100:
int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // set the motor speed:
if (motorSpeed > 0)
{
myStepper.setSpeed(motorSpeed); // how many RPMs per minute
myStepper.step(stepsPerRevolution / 100); //2 steps
}
}
Reading analog data example
INTRODUCTION TO ARDUINO
// the setup routine runs once when you press reset:
void setup()
{
// initialize serial communication at 9600 bits per second:
Serial.begin(9600);
}
// the loop routine runs over and over again forever:
void loop()
{ // read the input on analog pin 0:
int sensorValue = analogRead(A0);
// print out the value you read:
Serial.println(sensorValue); //data is send over UART
delay(1); // delay in between reads for stability
}
Reads an analog input on pin 0, prints the result to the Serial Monitor
DMA – Direct Memory Access
INTRODUCTION TO ARDUINO
If we need Audio processing, oscilloscope or EEG device
Arduino Zero or STM32 have built-in DMA controllers
Optimization with DMA
INTRODUCTION TO ARDUINO
Processing (ADC + data forwarding to UART) takes 9.6 μs
(microsecond) without DMA and 2 μs with DMA. That makes 4
times the difference.
Signal Processing on Arduino
INTRODUCTION TO ARDUINO
- Do we need to do it in real-time?
- Are there space and energy constraints (flying air sensor)?
- Is the ADC in Arduino good enough?
- 10 bit ADC => 1,024 (2^10) discrete analog levels
- ~1 KHz real world sampling / 9.6 KHz theoretical
- RAM limit (2KB – 96 KB)
- Is there enough libraries?
- FIR: https://www.arduinolibraries.info/libraries/fir-filter
- FFT: https://www.arduinolibraries.info/libraries/arduino-fft
- Can we augment the Arduino to do better DSP?
7 bin Equalizer (1)
INTRODUCTION TO ARDUINO
Source: https://github.com/debsahu/ESP32_FFT_Audio_LEDs
Using an Arduino clone such as: ESP32 or Lolin D32
7 bin Equalizer (2)
INTRODUCTION TO ARDUINO
Using software implemented FFT
- We can choose each bin frequency
- FFT https://github.com/kosme/arduinoFFT
- Bins to LED conversion:
https://github.com/G6EJD/ESP32-8266-Audio-Spectrum-Display
7 bin Equalizer (3)
INTRODUCTION TO ARDUINO
- Using hardware FFT IC MSGEQ7
- Predefined bins
- The Arduino microcontroller is relieved (FFT very CPU intensive)
Refernces
INTRODUCTION TO ARDUINO
NUCLEO DMA:
https://www.digikey.fr/en/maker/projects/getting-started-with-stm32-
working-with-adc-and-dma/f5009db3a3ed4370acaf545a3370c30c
https://www.youtube.com/watch?v=EsZLgqhqfO0
Arduino ZERO DMA:
https://github.com/manitou48/ZERO
DC motor control:
https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor-
control-tutorial-l298n-pwm-h-bridge/
Stepper motor control:
https://www.arduino.cc/en/tutorial/stepperSpeedControl
Support for STM32 in Arduino:
https://github.com/rogerclarkmelbourne/Arduino_STM32
Ad

More Related Content

Similar to How to use an Arduino (20)

4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
Jayanthi Kannan MK
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Amarjeetsingh Thakur
 
Introduction to Arduino
Introduction to ArduinoIntroduction to Arduino
Introduction to Arduino
Amarjeetsingh Thakur
 
Basics of open source embedded development board (
Basics of open source embedded development board (Basics of open source embedded development board (
Basics of open source embedded development board (
Dhruwank Vankawala
 
Basics of open source embedded development board (
Basics of open source embedded development board (Basics of open source embedded development board (
Basics of open source embedded development board (
Dhruwank Vankawala
 
Introduction to arduino ppt main
Introduction to  arduino ppt mainIntroduction to  arduino ppt main
Introduction to arduino ppt main
eddy royappa
 
Aurdino presentation
Aurdino presentationAurdino presentation
Aurdino presentation
C.Vamsi Krishna
 
Arduino
ArduinoArduino
Arduino
Jerin John
 
Iot Workshop NITT 2015
Iot Workshop NITT 2015Iot Workshop NITT 2015
Iot Workshop NITT 2015
Srivignessh Pss
 
INTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNO
INTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNOINTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNO
INTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNO
vasankarponnapalli2
 
Intel galileo gen 2
Intel galileo gen 2Intel galileo gen 2
Intel galileo gen 2
srknec
 
Presentation of online Internship Program on Arduino completed at INTERNSHALA
Presentation of online Internship Program on Arduino completed at INTERNSHALAPresentation of online Internship Program on Arduino completed at INTERNSHALA
Presentation of online Internship Program on Arduino completed at INTERNSHALA
AviPatel16612
 
arduino and its introduction deep dive ppt.pptx
arduino and its introduction deep dive ppt.pptxarduino and its introduction deep dive ppt.pptx
arduino and its introduction deep dive ppt.pptx
SruSru1
 
VERY NICE FOR CSE 3RD YEAR AND IOT STUDENTS
VERY NICE FOR CSE 3RD YEAR AND IOT STUDENTSVERY NICE FOR CSE 3RD YEAR AND IOT STUDENTS
VERY NICE FOR CSE 3RD YEAR AND IOT STUDENTS
neelamsanjeevkumar
 
Arduino cic3
Arduino cic3Arduino cic3
Arduino cic3
Jeni Shah
 
Introduction to Arduino - Basics programming
Introduction to Arduino - Basics programmingIntroduction to Arduino - Basics programming
Introduction to Arduino - Basics programming
KishoreKumarKAsstPro
 
Cassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshopCassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshop
tomtobback
 
IoT Basics with few Embedded System Connections for sensors
IoT Basics with few Embedded System Connections for sensorsIoT Basics with few Embedded System Connections for sensors
IoT Basics with few Embedded System Connections for sensors
saritasapkal
 
Arduino windows remote control
Arduino windows remote controlArduino windows remote control
Arduino windows remote control
VilayatAli5
 
Syed IoT - module 5
Syed  IoT - module 5Syed  IoT - module 5
Syed IoT - module 5
Syed Mustafa
 
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf4 IOT 18ISDE712  MODULE 4 IoT Physical Devices and End Point-Aurdino  Uno.pdf
4 IOT 18ISDE712 MODULE 4 IoT Physical Devices and End Point-Aurdino Uno.pdf
Jayanthi Kannan MK
 
Basics of open source embedded development board (
Basics of open source embedded development board (Basics of open source embedded development board (
Basics of open source embedded development board (
Dhruwank Vankawala
 
Basics of open source embedded development board (
Basics of open source embedded development board (Basics of open source embedded development board (
Basics of open source embedded development board (
Dhruwank Vankawala
 
Introduction to arduino ppt main
Introduction to  arduino ppt mainIntroduction to  arduino ppt main
Introduction to arduino ppt main
eddy royappa
 
INTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNO
INTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNOINTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNO
INTODUCTION OF IOT AND INTERFACING WITH ARDUINO UNO
vasankarponnapalli2
 
Intel galileo gen 2
Intel galileo gen 2Intel galileo gen 2
Intel galileo gen 2
srknec
 
Presentation of online Internship Program on Arduino completed at INTERNSHALA
Presentation of online Internship Program on Arduino completed at INTERNSHALAPresentation of online Internship Program on Arduino completed at INTERNSHALA
Presentation of online Internship Program on Arduino completed at INTERNSHALA
AviPatel16612
 
arduino and its introduction deep dive ppt.pptx
arduino and its introduction deep dive ppt.pptxarduino and its introduction deep dive ppt.pptx
arduino and its introduction deep dive ppt.pptx
SruSru1
 
VERY NICE FOR CSE 3RD YEAR AND IOT STUDENTS
VERY NICE FOR CSE 3RD YEAR AND IOT STUDENTSVERY NICE FOR CSE 3RD YEAR AND IOT STUDENTS
VERY NICE FOR CSE 3RD YEAR AND IOT STUDENTS
neelamsanjeevkumar
 
Arduino cic3
Arduino cic3Arduino cic3
Arduino cic3
Jeni Shah
 
Introduction to Arduino - Basics programming
Introduction to Arduino - Basics programmingIntroduction to Arduino - Basics programming
Introduction to Arduino - Basics programming
KishoreKumarKAsstPro
 
Cassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshopCassiopeia Ltd - standard Arduino workshop
Cassiopeia Ltd - standard Arduino workshop
tomtobback
 
IoT Basics with few Embedded System Connections for sensors
IoT Basics with few Embedded System Connections for sensorsIoT Basics with few Embedded System Connections for sensors
IoT Basics with few Embedded System Connections for sensors
saritasapkal
 
Arduino windows remote control
Arduino windows remote controlArduino windows remote control
Arduino windows remote control
VilayatAli5
 
Syed IoT - module 5
Syed  IoT - module 5Syed  IoT - module 5
Syed IoT - module 5
Syed Mustafa
 

Recently uploaded (20)

Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
Taqyea
 
Level 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical SafetyLevel 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical Safety
JoseAlbertoCariasDel
 
Data Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptxData Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptx
RushaliDeshmukh2
 
DSP and MV the Color image processing.ppt
DSP and MV the  Color image processing.pptDSP and MV the  Color image processing.ppt
DSP and MV the Color image processing.ppt
HafizAhamed8
 
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxbMain cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
SunilSingh610661
 
Introduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptxIntroduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptx
AS1920
 
Dynamics of Structures with Uncertain Properties.pptx
Dynamics of Structures with Uncertain Properties.pptxDynamics of Structures with Uncertain Properties.pptx
Dynamics of Structures with Uncertain Properties.pptx
University of Glasgow
 
Routing Riverdale - A New Bus Connection
Routing Riverdale - A New Bus ConnectionRouting Riverdale - A New Bus Connection
Routing Riverdale - A New Bus Connection
jzb7232
 
Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...
Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...
Process Parameter Optimization for Minimizing Springback in Cold Drawing Proc...
Journal of Soft Computing in Civil Engineering
 
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfRICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
MohamedAbdelkader115
 
Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...
Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...
Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...
SiddhiKulkarni18
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
Data Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptxData Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptx
RushaliDeshmukh2
 
Compiler Design_Lexical Analysis phase.pptx
Compiler Design_Lexical Analysis phase.pptxCompiler Design_Lexical Analysis phase.pptx
Compiler Design_Lexical Analysis phase.pptx
RushaliDeshmukh2
 
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxLidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
RishavKumar530754
 
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E..."Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...
Infopitaara
 
AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)
Vəhid Gəruslu
 
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ijscai
 
PRIZ Academy - Functional Modeling In Action with PRIZ.pdf
PRIZ Academy - Functional Modeling In Action with PRIZ.pdfPRIZ Academy - Functional Modeling In Action with PRIZ.pdf
PRIZ Academy - Functional Modeling In Action with PRIZ.pdf
PRIZ Guru
 
Artificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptxArtificial Intelligence (AI) basics.pptx
Artificial Intelligence (AI) basics.pptx
aditichinar
 
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
最新版加拿大魁北克大学蒙特利尔分校毕业证(UQAM毕业证书)原版定制
Taqyea
 
Level 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical SafetyLevel 1-Safety.pptx Presentation of Electrical Safety
Level 1-Safety.pptx Presentation of Electrical Safety
JoseAlbertoCariasDel
 
Data Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptxData Structures_Linear data structures Linked Lists.pptx
Data Structures_Linear data structures Linked Lists.pptx
RushaliDeshmukh2
 
DSP and MV the Color image processing.ppt
DSP and MV the  Color image processing.pptDSP and MV the  Color image processing.ppt
DSP and MV the Color image processing.ppt
HafizAhamed8
 
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxbMain cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
Main cotrol jdbjbdcnxbjbjzjjjcjicbjxbcjcxbjcxb
SunilSingh610661
 
Introduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptxIntroduction to Zoomlion Earthmoving.pptx
Introduction to Zoomlion Earthmoving.pptx
AS1920
 
Dynamics of Structures with Uncertain Properties.pptx
Dynamics of Structures with Uncertain Properties.pptxDynamics of Structures with Uncertain Properties.pptx
Dynamics of Structures with Uncertain Properties.pptx
University of Glasgow
 
Routing Riverdale - A New Bus Connection
Routing Riverdale - A New Bus ConnectionRouting Riverdale - A New Bus Connection
Routing Riverdale - A New Bus Connection
jzb7232
 
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdfRICS Membership-(The Royal Institution of Chartered Surveyors).pdf
RICS Membership-(The Royal Institution of Chartered Surveyors).pdf
MohamedAbdelkader115
 
Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...
Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...
Comparing Emerging Cloud Platforms –like AWS, Azure, Google Cloud, Cloud Stac...
SiddhiKulkarni18
 
Value Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous SecurityValue Stream Mapping Worskshops for Intelligent Continuous Security
Value Stream Mapping Worskshops for Intelligent Continuous Security
Marc Hornbeek
 
Data Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptxData Structures_Searching and Sorting.pptx
Data Structures_Searching and Sorting.pptx
RushaliDeshmukh2
 
Compiler Design_Lexical Analysis phase.pptx
Compiler Design_Lexical Analysis phase.pptxCompiler Design_Lexical Analysis phase.pptx
Compiler Design_Lexical Analysis phase.pptx
RushaliDeshmukh2
 
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptxLidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
Lidar for Autonomous Driving, LiDAR Mapping for Driverless Cars.pptx
RishavKumar530754
 
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E..."Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...
"Boiler Feed Pump (BFP): Working, Applications, Advantages, and Limitations E...
Infopitaara
 
AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)AI-assisted Software Testing (3-hours tutorial)
AI-assisted Software Testing (3-hours tutorial)
Vəhid Gəruslu
 
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITYADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ADVXAI IN MALWARE ANALYSIS FRAMEWORK: BALANCING EXPLAINABILITY WITH SECURITY
ijscai
 
PRIZ Academy - Functional Modeling In Action with PRIZ.pdf
PRIZ Academy - Functional Modeling In Action with PRIZ.pdfPRIZ Academy - Functional Modeling In Action with PRIZ.pdf
PRIZ Academy - Functional Modeling In Action with PRIZ.pdf
PRIZ Guru
 
Ad

How to use an Arduino

  • 1. Grenoble | images | parole | signal | automatique | laboratoire UMR 5216 Anton Andreev 07/05/2020 INTRODUCTION TO ARDUINO
  • 2. Contents INTRODUCTION TO ARDUINO 1. General information - Specification - Drivers and Shields - GPIO - Compilers and IDEs - Hardware protocols: I2C, SPI, UART 2. Examples - DC Motor control - Stepper motor control - Reading analog data ADC - What is DMA optimization? - Equalizer in software and hardware
  • 3. In a nutshell INTRODUCTION TO ARDUINO Arduino is: • Board + Microcontroller unit (MCU) • A standard (Arduino comtible/clone) Arduino’s features: - 8 bit 32 registers RISC processor, AVR family - Produced by Atmel (acquired by Microchip Technology) - In-system programmer - Bootloader - Analog to Digital Converter (ADC) - 10-bit ADC with 1,024 (2^10) discrete analog levels - 14 input/output pins - Comes with IDE (Integrated Development Environment) - Many libraries, examples and documentation
  • 4. Specification INTRODUCTION TO ARDUINO - 8 bit AVR CPU - Flash Memory is 32 KB - SRAM is 2 KB (RAM) - EEPROM is 1 KB - CLK Speed is 16-20 MHz - Some versions have DMA - 32bit ARM CPU - Flash Memory is 512 KB - SRAM is 96 KB - EEPROM is 1 KB - CLK Speed is 74-80 MHz - Has RTC - Has DMA Arduino Arduino clone STM32 Nucleo Many clones of Arduino exist often with better hardware parameters, Bluetooth and WIFI modules built-in Arduino also has several versions: UNO, Leonardo, Mega, Ethernet
  • 5. Drivers and Shields INTRODUCTION TO ARDUINO Example: the L298N first as a driver and then a shield Difference: - A motor driver is a chip that drives motors. A motor shield is a circuit board with connections on it that contains a motor driver chip that drives motors. A shield is convenient since you can just plug it in to your Arduino and wire the motors direct to it, but it lacks the flexibility of a raw driver chip which you can wire up precisely as your project demands. Other popular shields for Arduino: ethernet, WIFI, RGB LCD
  • 6. Arduino vs Raspberry Pi Short Comparison INTRODUCTION TO ARDUINO Pi is more powerful, like a normal computer Raspberry Pi is: - Multicore ARM 1.2Ghz,integrated GPU, RAM 1GB - Has GPIO 40 pins compared to Arduino’s 20 - 8 channel 17 bit ADC Usage: - For higher level tasks - Machine Learning (any ML library that compiles on Linux OpenCV included), Image Processing - Multimedia - Small factor computers - Surveillance systems - Draws more energy than Arduino - More expensive - Has no storage by default Arduino can be used as a slave for Raspberry Pi
  • 7. Compilers INTRODUCTION TO ARDUINO Arduino program/sketch Small modifications to produce standard C code Every manufacturer has its own software development toolchain Avr-g++ compiler is part of Atmel AVR GNU Toolchain. It is based on GNU GCC and tools created by AVR Code for STM32 is pure C/C++ with libraries from ST. The compiler is part of the STM32Cube Ecosystem. The compiler is called GNU Tools for STM32 and it based on a patched version GNU Arm Embedded Toolchain avr-g++ compiler
  • 8. CircuitPython INTRODUCTION TO ARDUINO - Fork of MicroPython - Targets: low memory and performance boards - 32 bit ARM (such as STM32 or ESP8266) - But not the original Arduino with 8 bit AVR CPU - Python 3 compiler and Virtual Machine are on the board - REPL on the USB through serial - Controller’s flash memory is exposed as USB thumb drive - .py files can be copied onto the board and executed - main.py or code.py are executed automatically on restart - Can restart automatically when .py file has changed - Result of “print” command is visible in the Serial Monitor - Can have only the VM and bytecode compiled program on the board
  • 9. IDEs INTRODUCTION TO ARDUINO - Arduino IDE - Programs are called sketches - Easy program upload - Easy configuration - Serial Port - Arduino type or clone - Atom IDE + Platformio plugin - Visual Studio with Arduino add-on - Paid - Integrated debugging - Eclipse for Arduino - SMT32 System Workbench (only for STM32) - STM32CubeIDE (only for STM32)
  • 10. Arduino GPIO INTRODUCTION TO ARDUINO General-Purpose Input Output (GPIO) 14 digital and 6 analog pins ca be used for both input and output pinMode (3, OUTPUT) //set as output digitalWrite (3, HIGH) //set 3,3V value digitalRead(pin) //read state digitalRead(pin) // ADC 5v -> [0..1023]
  • 12. Digital Input with Pull-up Resistor INTRODUCTION TO ARDUINO Problem: Sometimes switching between one state to another or pins configured as input with nothing connected to them may arise situation of High-impedance state i.e. floating state. This state may report random changes in pin state Solution: Adding pull-up (to +5V) or pull-down (to Gnd) resistor which helps to set the input to a known state pinMode (3, INPUT_PULLUP) Pull Down resistor
  • 13. SPI and I2C INTRODUCTION TO ARDUINO When we connect a microcontroller to a sensor, display, or other module these device needs to communicate Two popular hardware communication protocols: - SPI is used for SD cards, RFID card readers … - I2C is used for OLED displays, barometric pressure sensors, or gyroscope/accelerometer … - Both use clocks, are serial and async - 2 (I2C) or 4 (SPI) wires - One or multiple masters (I2C) - One or multiple slaves (both) - I2C uses messages with addresses to communicate with salves, SPI use selects to which slave to speak - Speed of transfer (SPI is faster) I2C message I2C: SDA (Serial Data) and SDL (Serial Clock)
  • 14. I2C OLED example INTRODUCTION TO ARDUINO #include <Arduino.h> #include <U8g2lib.h> //library for control of the OLED screen #include <SPI.h> #include <Wire.h> U8G2_SSD1306_128X32_UNIVISION_F_HW_I2C u8g2(U8G2_R0); void setup(void) { u8g2.begin(); } void loop(void) { u8g2.clearBuffer(); //clear the internal memory u8g2.setFont(u8g2_font_logisoso28_tr); u8g2.drawStr(8,29,“GIPSALAB"); //write something to the internal memory u8g2.sendBuffer();//transfer internal memory to the display } On the Arduino: Pin 19 blue line is SCL Pin 18 purple is SCA
  • 15. UART INTRODUCTION TO ARDUINO UART is used over a computer or peripheral device serial port (COM1,COM2…) through a UART chip Characteristics: - Well documented and widely used - Two wires - 9 bit packet (0 or 1 parity bits) - Serial - No clock - Has a parity bit to allow for error checking - No multiple slaves, only one on one
  • 16. PWM (1) INTRODUCTION TO ARDUINO PWM is a technique to use digital values and delays to emulate analog values
  • 17. DC motor control With Arduino (1) INTRODUCTION TO ARDUINO In red the L298N motor driver
  • 18. DC motor control With Arduino (2) INTRODUCTION TO ARDUINO L298N H-bridge can used for two motors and to change in which direction the motor spins
  • 19. DC motor control with Arduino (3) INTRODUCTION TO ARDUINO We use PWM in the range of [0 255]. So if want 3V out of 12V maximum then we need to send the value of 255/4 on the control pin 255 corresponds to 12 volts
  • 20. DC motor control with Arduino (4) INTRODUCTION TO ARDUINO int rotDirection = 0; int pressed = false; #define button 4 void loop() { // Read potentiometer value int potValue = analogRead(A0); // Map the potentiometer value from 0 to 255 int pwmOutput = map(potValue, 0, 1023, 0 , 255); // Send PWM signal to L298N Enable pin analogWrite(enA, pwmOutput); // Read button if (digitalRead(button) == true) { pressed = !pressed; } //wait until button is released on a single push while (digitalRead(button) == true); delay(20); //If button is pressed - change rotation direction if (pressed == true & rotDirection == 0) { digitalWrite(in1, HIGH); digitalWrite(in2, LOW); rotDirection = 1; delay(20); } // If button is pressed - change rotation direction if (pressed == false & rotDirection == 1) { digitalWrite(in1, LOW); digitalWrite(in2, HIGH); rotDirection = 0; delay(20); } } //end of loop()
  • 21. Stepper motor control with Arduino (1) INTRODUCTION TO ARDUINO Stepper motors can be: • unipolar -> U2004 Darlington Array • Bipolar -> SN754410ne H-Bridge Also the wiring is different for Darlington Array and the H-Bridge
  • 22. Stepper motor control with Arduino (2) INTRODUCTION TO ARDUINO Code is the same for unipolar and bipolar motors. #include <Stepper.h> const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution // for your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11); int stepCount = 0; // number of steps the motor has taken void setup() { // nothing to do inside the setup} void loop() { // read the sensor value: int sensorReading = analogRead(A0); // map it to a range from 0 to 100: int motorSpeed = map(sensorReading, 0, 1023, 0, 100); // set the motor speed: if (motorSpeed > 0) { myStepper.setSpeed(motorSpeed); // how many RPMs per minute myStepper.step(stepsPerRevolution / 100); //2 steps } }
  • 23. Reading analog data example INTRODUCTION TO ARDUINO // the setup routine runs once when you press reset: void setup() { // initialize serial communication at 9600 bits per second: Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // read the input on analog pin 0: int sensorValue = analogRead(A0); // print out the value you read: Serial.println(sensorValue); //data is send over UART delay(1); // delay in between reads for stability } Reads an analog input on pin 0, prints the result to the Serial Monitor
  • 24. DMA – Direct Memory Access INTRODUCTION TO ARDUINO If we need Audio processing, oscilloscope or EEG device Arduino Zero or STM32 have built-in DMA controllers
  • 25. Optimization with DMA INTRODUCTION TO ARDUINO Processing (ADC + data forwarding to UART) takes 9.6 μs (microsecond) without DMA and 2 μs with DMA. That makes 4 times the difference.
  • 26. Signal Processing on Arduino INTRODUCTION TO ARDUINO - Do we need to do it in real-time? - Are there space and energy constraints (flying air sensor)? - Is the ADC in Arduino good enough? - 10 bit ADC => 1,024 (2^10) discrete analog levels - ~1 KHz real world sampling / 9.6 KHz theoretical - RAM limit (2KB – 96 KB) - Is there enough libraries? - FIR: https://www.arduinolibraries.info/libraries/fir-filter - FFT: https://www.arduinolibraries.info/libraries/arduino-fft - Can we augment the Arduino to do better DSP?
  • 27. 7 bin Equalizer (1) INTRODUCTION TO ARDUINO Source: https://github.com/debsahu/ESP32_FFT_Audio_LEDs Using an Arduino clone such as: ESP32 or Lolin D32
  • 28. 7 bin Equalizer (2) INTRODUCTION TO ARDUINO Using software implemented FFT - We can choose each bin frequency - FFT https://github.com/kosme/arduinoFFT - Bins to LED conversion: https://github.com/G6EJD/ESP32-8266-Audio-Spectrum-Display
  • 29. 7 bin Equalizer (3) INTRODUCTION TO ARDUINO - Using hardware FFT IC MSGEQ7 - Predefined bins - The Arduino microcontroller is relieved (FFT very CPU intensive)
  • 30. Refernces INTRODUCTION TO ARDUINO NUCLEO DMA: https://www.digikey.fr/en/maker/projects/getting-started-with-stm32- working-with-adc-and-dma/f5009db3a3ed4370acaf545a3370c30c https://www.youtube.com/watch?v=EsZLgqhqfO0 Arduino ZERO DMA: https://github.com/manitou48/ZERO DC motor control: https://howtomechatronics.com/tutorials/arduino/arduino-dc-motor- control-tutorial-l298n-pwm-h-bridge/ Stepper motor control: https://www.arduino.cc/en/tutorial/stepperSpeedControl Support for STM32 in Arduino: https://github.com/rogerclarkmelbourne/Arduino_STM32

Editor's Notes

  • #3: A standard means that clones can be produced.
  • #4: A standard means that clones can be produced. In-system programmer = we do not need to remove MCU from the board own bootloader =  MCU what to load or do next. The bootloader also aids communication between the Arduino IDE and Arduino Board using USB.  The bootloader is responsible for writing code on the chip as it arrives from the Arduino IDE.
  • #5: Why 8 bit processor ? SRAM is RAM for program execution EEPROM is persistent memory. It can be used for storing small amounts of information e.x. configuration settings, passwords. Using the EEPROM is easy with a built-in library: https://www.arduino.cc/en/Reference/EEPROM
  • #6: Some Arduino clones require a driver for USB connectivity such as: CH340
  • #7: https://www.electronicshub.org/raspberry-pi-vs-arduino/
  • #9: MicroPython is a full Python compiler and runtime that runs on the micro-controller hardware. The user is presented with an interactive prompt (the REPL) to execute supported commands immediately. Included are a selection of core Python libraries; MicroPython includes modules which give the programmer access to low-level hardware. Circuit Python https://learn.adafruit.com/welcome-to-circuitpython/what-is-circuitpython https://www.youtube.com/watch?v=rN7kvWuAt7k
  • #10: STM32 in Arduino IDE: https://github.com/stm32duino
  • #11: https://www.electronicwings.com/arduino/digital-gpio-of-arduino Arduino pin are set as digital input (default). 
  • #12: GPIO 20 (6 analog + 16 There are only two external interrupt pins on the ATmega168/328 (ie, in the Arduino Uno/Nano/Duemilanove), INT0 and INT1, and they are mapped to Arduino pins 2 and 3. These interrupts can be set to trigger on RISING or FALLING signal edges
  • #13: https://www.electronicwings.com/arduino/digital-gpio-of-arduino Arduino pin are set as digital input (default). 
  • #14: I²C (Inter-Integrated Circuit), pronounced I-squared-C https://www.circuitbasics.com/basics-of-the-i2c-communication-protocol/ https://www.circuitbasics.com/basics-of-the-spi-communication-protocol SPI, I2C, and UART are quite a bit slower than protocols like USB, ethernet, Bluetooth, and WiFi, but they’re a lot more simple and use less hardware and system resources. SPI, I2C, and UART are ideal for communication between microcontrollers and between microcontrollers and sensors where large amounts of high speed data don’t need to be transferred.
  • #15: https://www.instructables.com/id/Tutorial-to-Interface-OLED-091inch-128x32-With-Ard/
  • #18: It can be difficult to choose between servo motors and stepper motors as there are so many considerations: cost, torque, efficiency, speed, circuitry and more. Let’s take the a simple DC motor.
  • #19: The L298N main function is to change direction of current, so that we can change the direction of rotation of the motor or simply said if we are going forward or backward. It supports two motors.
  • #21: if (digitalRead(button) == true) checks if the button is pressed while (digitalRead(button) == true); waits until the button is released “Pressed” is not if the button is currently pressed, but it the requested direction. Pressed = requested direction 1 Not pressed == requested direction 0
  • #23: We need to know the number of steps per revolution. We need how many steps of the motor to perform how fast each step is performed. We always advance 2 steps. We control the speed in RPMs. Higher RPMS means that it takes less time a single step to be performed. After each two steps we check if there is a request to increase the speed per step.
  • #26: A microsecond is equal to 1000 nanoseconds or ​1⁄1,000 of a millisecond.
  • #27: For a 16 MHz Arduino the ADC clock is set to 16 MHz/128 = 125 KHz. Each conversion in AVR takes 13 ADC clocks so 125 KHz /13 = 9615 Hz. 9615 Hz is the theoretical maximum. Source: https://arduino.stackexchange.com/questions/699/how-do-i-know-the-sampling-frequency ADCs can vary greatly between microcontroller. The ADC on the Arduino is a 10-bit ADC meaning it has the ability to detect 1,024 (2^10) discrete analog levels. Some microcontrollers have 8-bit ADCs (2^8 = 256 discrete levels) and some have 16-bit ADCs (2^16 = 65,536 discrete levels). Source: https://learn.sparkfun.com/tutorials/analog-to-digital-conversion/all
  • #28: https://www.youtube.com/watch?v=8YaeUYZ_Ex8 Note on Arduino clones: Both chips have a 32-bit processor. The ESP32 is dual core 160MHz to 240MHz CPU whereas the ESP8266 is a single core processor that runs at 80MHz. The ESP32 is the ESP8266 successor. It adds an extra CPU core, faster Wi-Fi, more GPIOs, and supports Bluetooth 4.2 and Bluetooth low energy. Additionally, the ESP32 comes with touch sensitive pins that can be used to wake up the ESP32 from deep sleep, a built-in hall effect sensor and a built-in temperature sensor. Spécifications de la Wemos Lolin D32 Pro based on ESP32 requires driver CH340 for USB connectivity SoC : ESP32-WROVER @ 240MHz avec 4Mo de mémoire 4 Mo et 4Mo de PSRAM Connectivités WiFi 802.11 b/g/n Bluetooth 4.1 LE Stockage : emplacement pour carte micro SD prenant en charge le mode SPI. La capacité maximale n’est pas précisée Connecteurs 1x JST SH 1.0mm 10 broches pour écran TFT