1. arduino introducerewiring 3.0 –atmel atmega128 cosmin vârlan –facultatea de informatică...

94
1. Arduino Introducere The sad story of Hernando Barragán Facultatea de Informatică – Univ. “Al. I. CuzaIaşi

Upload: others

Post on 24-Dec-2019

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

1. Arduino – IntroducereThe sad story of Hernando Barragán

Facultatea de Informatică – Univ. “Al. I. Cuza” Iaşi

Page 2: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino / Wiring – scurtă istorie

Cosmin Vârlan – Facultatea de Informatică 2016

Hernando Barragán în 2003 a început un proiect

denumit Wiring ca şi disertaţie la IDII (Interaction

Design Institute Ivrea), în Italia sub coordonarea lui

Massimo Banzi şi a lui Casey Reas (Processing)

Scopul – de a simplifica viaţa celor ce doresc să o facă pe

electronişti şi nu au habar despre domeniu.

Lucrarea lui de disertaţie o găsiţi aici (chiar daţi click):

http://people.interactionivrea.org/h.barragan/thesis/thesis

_low_res.pdf

Dezvoltarea Wiring a continuat la Universidad de Los

Andes în Columbia unde a predat Interaction Design.

https://arduinohistory.github.io/

Page 3: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Wiring – elementele de bază

Cosmin Vârlan – Facultatea de Informatică 2016

Simple integrated development environment (IDE), based on the Processing.org IDE running on Microsoft Windows, Mac OS X, and Linux to create software programs or “sketches”1, with a simple editor

Simple “language” or programming “framework” for microcontrollers

Complete toolchain integration (transparent to user)

Bootloader for easy uploading of programs

Serial monitor to inspect and send data from/to the microcontroller

Open source software

Open source hardware designs based on an Atmel microcontroller

Comprehensive online reference for the commands and libraries, examples, tutorials, forum and a showcase of projects done using Wiring

Page 4: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Primul Wiring – Parallax Javelin Stamp

microcontroller

Cosmin Vârlan – Facultatea de Informatică 2016

Dar Parallax era tehnologie proprietară….

Page 5: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Wiring 2.0 – Atmel ARM AT91R40008

Cosmin Vârlan – Facultatea de Informatică 2016

procesor puternic, open source, dar prea complicat de programat…

Page 6: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Wiring 3.0 – Atmel Atmega128

Cosmin Vârlan – Facultatea de Informatică 2016

A utilizat doua placi de dezvoltare:

Atmel STK500 cu suport pentru Atmega128 respectiv MAVRIC de la BDMICRO

Pentru asta deja exista un uploader de programe uşor

de utilizat (dezvoltat de Brian Dean)

Page 7: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Wiring 3.0 – Atmel Atmega128

Cosmin Vârlan – Facultatea de Informatică 2016

Încă de la această versiune s-a testat varianta finala a

APIului şi a fost scris “Blink” – exemplu care este şi acum

în chitul Arduino.

Au fost facute exemple pentru LCDuri, comunicare

serială, servomotoare, etc.

În martie 2004 au fost fabricate 25 de PCBuri Wiring (de

catre SERP şi plătite de către IDII).

O aceeaşi persoană a lipit toate piesele pe cele 25 de

plăci.

Cam aşa arăta prima variantă Wiring:

Page 8: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

Page 9: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Continuarea…

Cosmin Vârlan – Facultatea de Informatică 2016

În 2004 Hernando Barragán s-a mutat în Columbia.

IDII au hotărât să mai producă 100 de plăci Wiring pentru

cursul de Physical Computing. 10 plăci au fost trimise

în Columbia.

În toamna 2004 a început primul curs, proiect coordonat

de 4 membri: Massimo Banzi, Heather Martin, Yaniv

Steiner, Reto Wettach.

16 Decembrie 2004, Bill Verplank a trimis un email către

Hernando Barragán în care scria:

Page 10: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

[The projects] were wonderful. Everyone had things working. Five of the projects had motors in them! The most advanced (from two MIT grads - architect and mathematician) allowed drawing a profile in Proce55ing and feeling it with a wheel/motor run by Wiring…

It is clear that one of the elements of success was [the] use of the Wiring board.

Le puteţi vedea şi voi la adresa: https://arduinohistory.github.io/

(…de unde am şi aceste informaţii).

Page 11: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Continuarea…

Cosmin Vârlan – Facultatea de Informatică 2016

În Mai 2005, Hernando Barragán a contactat Advanced

Circuits (USA) care i-au facut 200 de platforme Wiring.

Acestea au fost distribuite. La sfârşitul lui 2005 Wiring era

utilizat în majoritatea facultăţilor din lume pentru cursuri

similare (Physical Computing).

Totuşi … Wiring avea să moară din cauza costurilor mari

de producţie (~60$).

În 2005 Massimo Banzi, David Mellis (student la IDII) şi

David Cuartielles au construit o variantă ce avea un

microcontroller mai ieftin ATmega8. Atunci au făcut

“fork” (sau copiat) tot codul sursă Wiring şi l-au denumit

“Arduino”.

Page 12: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

Page 13: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

Page 14: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Hernando Barragán

Cosmin Vârlan – Facultatea de Informatică 2016

Page 15: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

https://arduinohistory.github.io/

Page 16: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Specificaţii Arduino

Procesorul funcţionează la 5V.

Limitele recomandate a voltajului pentru Arduino sunt de

7-12V dar poate opera până la 6-20V.

Curentul pentru pinii I/O: 20mA – 40mA

Curentul pentru 3.3V: 50mA

Memorie Flash – utilizată pentru a memora programul ce

trebuie rulat (între 32K – 256K)

Memorie SRAM – echivalentul RAM (2K – 8K)

Memorie EEPROM – pentru a reţine informaţii

(microHDD: 1K – 4K)

CosminVârlan – Facultatea de Informatică 2016

Page 17: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Variante de Arduino - UNO

CosminVârlan – Facultatea de Informatică 2016

Cel mai popular:

- CPU (ATmega328P): 16Mhz

- 32KB Flash (0.5KB bootloader)

- 2KB SRAM

- 1KB EEPROM

- 14 pini digitali, 6 PWM

- 6 pini pentru intrări analogice

Detalii complete la:

https://www.arduino.cc/en/Main/ArduinoBoardUno

Page 18: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Variante de Arduino – MEGA

Cosmin Vârlan – Facultatea de Informatică 2016

Un Arduino steroidizat:

- CPU (ATmega1280): 16Mhz

-128KB Flash (4KB bootloader)

- 8KB SRAM

- 4KB EEPROM

- 54 pini digitali, 15 PWM

- 16 pini pentru intrări analogice

Detalii la:

https://www.arduino.cc/en/Main/ArduinoBoardMega

Page 19: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Variante de Arduino - NANO

Cosmin Vârlan – Facultatea de Informatică 2016

Frăţiorul “mai mic” al familiei Arduino:

- CPU: ATmega168 sau Atmega328: 16Mhz

- 16 sau 32KB Flash (2KB bootloader)

- 1 sau 2KB SRAM

- 512B sau 1KB EEPROM

- 14 pini digitali, 6 PWM

- 8 pini pentru intrări analogice

Detalii la:

https://www.arduino.cc/en/Main/ArduinoBoardNano

Page 20: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Lilypad, Mini, Leonardo, YUN, Lilytiny

Cosmin Vârlan – Facultatea de Informatică 2016

Page 21: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Lylipad -

Cosmin Vârlan – Facultatea de Informatică 2016

Page 22: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino

Cosmin Vârlan – Facultatea de Informatică 2016

Pinii digitali sunt utilizaţi pentru a oferi un feedback în

lumea reală: aprinde un led, bec, învârti un motoraş, afişa

ceva pe un ecran etc.

Pinii digitali de tip PWM (pulse width modulation) sunt

utilizaţi pentru a emula un semnal analogic (nu insistăm,

vom avea un curs special pentru asta). Fără aşa ceva ledul

ar putea fi doar aprins/stins. Cu PWM putem să facem un

efect de “fade”.

Pinii analogici sunt utilizaţi pentru a prelua informaţie din

mediul înconjurător – dar discretizată (de exemplu, deşi

sunt o infinitate de niveluri de la lumină la întuneric,

Arduino vede doar 1024 – totuşi suficiente).

Page 23: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Fiind Open Source, puteţi să îl construţi

Cosmin Vârlan – Facultatea de Informatică 2016

Page 24: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

Page 25: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Pentru a interacţiona cu mediul fizic, are

nevoie de o serie de transducers…

Cosmin Vârlan – Facultatea de Informatică 2016

Page 26: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

2. Senzori

Facultatea de Informatică – Univ. “Al. I. Cuza” Iaşi

Page 27: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori (ce pot fi conectaţi la pinii analogici)

Cosmin Vârlan – Facultatea de Informatică 2016

Câteva exemple de senzori …

Temperatură, umiditate, barometrici (presiune

atmosferică), altitudine, ploaie

Lumină, culoare (RGB)

Sunet, vibraţii

Distanţă [ultrasonic, IR, laser]

Diverse tipuri de gaze

Page 28: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori (ce pot fi conectaţi la pinii analogici)

Cosmin Vârlan – Facultatea de Informatică 2016

Accelerometri, magnetism (polul nord)

Torsiune, greutate

Amprentă

Umezeală pământ (soil moisture)

Seismic (geophone)

RFID reader

Bătăile inimii

Prezenţă (PIR)

Recunoaştere comenzi vocale (voice recognition)

Page 29: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori: principiul de funcţionare

Cosmin Vârlan – Facultatea de Informatică 2016

Senzorii pasivi nu necesită alimentare cu energie

electrică deoarece, atunci când sunt excitaţi de un stimul

extern, produc singuri energie electrică. Prin masurarea

cantităţii de energie produsă se poate stabili puterea

stimulului aplicat (de exemplu o celulă fotovoltaică va

produce mai mult curent când e soare faţă de când e

înnourat).

Uneori, curentul produs este foarte mic si pentru a fi

amplificat, si acesti senzori vor fi alimentaţi (dar nu pentru

a funcţiona ci pentru a li se amplifica semnalul). (ex. IR).

Page 30: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori: principiul de funcţionare

Cosmin Vârlan – Facultatea de Informatică 2016

Senzorii activi necesită alimentare cu energie electrică

deoarece ei au proprietatea de a-şi mări sau micşora

rezistenţa atunci când stimulul extern este aplicat.

De exemplu, un fotoresistor, atunci când este luminat, îşi

poate scădea rezistenţa de la 10kΩ pana la 1kΩ. În funcţie

de cât de mare a fost căderea, se poate stabili cantitatea

de lumină ce cade pe suprafaţa senzorului. Dacă aveţi un

telefon care îşi măreşte luminozitatea în soare, cu

siguranţă utilizează un fotorezistor.

Page 31: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori - debouncing

Cosmin Vârlan – Facultatea de Informatică 2016

Unii senzori se autocalibrează la începutul utilizării (de exemplu pentru a detecta creşterea sau scăderea luminii, trebuie să măsor lumina iniţială şi să o consider dreptreper).

Alţi senzori au nevoie de “debouncing” deoarece se pot activa chiar şi cândstimulul nu este prezent: Dacă avemun senzor de înclinare într-o maşină cemerge pe un drum de ţară…

Pentru siguranţă senzorul este măsurat de mai multe orila anumite intervale de timp.

Page 32: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori - debouncing

Cosmin Vârlan – Facultatea de Informatică 2016

Aceeasi problema poate apare şi la apăsarea unei taste

mecanice (mechanical keyboard).

Ideea este că la apăsare, mecanismul nu face un singur

contact ci din cauza vibraţiilor produse, în timp de o

milisecundă contactul se închide/deschide de mai multe

ori.

Debouncing este mecanismul prin care un senzor este citit

pentru o perioadă mai îndelungată de timp (de exemplu

pt 2ms) şi la sfarşit se decide dacă este ON sau OFF.

De obicei apare la senzorii de tip ON/OFF.

Page 33: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Programarea

Cosmin Vârlan – Facultatea de Informatică 2016

Majoritatea senzorilor au deja biblioteci (eng. libraries)

construite de producătorii lor.

Nu ne interesează să programaţi senzorii de la 0. Puteţi

lua bibliotecile de oriunde doriţi. Singurul caz în care

probabil ar trebui să programaţi un senzor de la 0 ar fi

dacă inventaţi voi unul… [mamă ce mi-ar place aşa ceva]

Senzor simplu: sensorValue = analogRead(sensorPin);

În continuare vor fi enumeraţi o serie de senzori şi voi vă

gândiţi la eventuale proiecte în care ar putea fi utilizaţi

Page 34: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori ce măsoară distanţa

Cosmin Vârlan – Facultatea de Informatică 2016

Laser Fascicul lumină Fascicul IR

Sunet

Page 35: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor de tip cameră

Cosmin Vârlan – Facultatea de Informatică 2016

Page 36: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor de prezenţă Uşă deschisă

(debouncing)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 37: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori pentru mişcare

Cosmin Vârlan – Facultatea de Informatică 2016

Gyro / Accelerometru /

Magnetometru

Senzori gesturi

(pt obiecte la 25cm distanţă)

Page 38: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor pentru torsiune / forţă

Cosmin Vârlan – Facultatea de Informatică 2016

Page 39: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori contractere muşchi :D

Cosmin Vârlan – Facultatea de Informatică 2016

Page 40: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor puls – măsoară numărul bătăilor pe

minut

Cosmin Vârlan – Facultatea de Informatică 2016

…sigur cursul de DSFUM vă face inima să “alerge” ;)

Page 41: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Monitor Inimă (ECG - Electrocardiogramă)

Cosmin Vârlan – Facultatea de Informatică 2016

Se bazează pe sunetul creat de inimă. Poate izola şi alte

sunete.

PADs

Page 42: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor EEG (alfa waves, beta waves etc.)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 43: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Scannere de Potenţiometru

amprentă de tip touch

Cosmin Vârlan – Facultatea de Informatică 2016

Page 44: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Microfon, detector sunet,

recunoaştere vocală, knock

Cosmin Vârlan – Facultatea de Informatică 2016

Page 45: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

IR (telecomandă)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 46: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

RGB + Gesture

Cosmin Vârlan – Facultatea de Informatică 2016

Senzorul folosit de Samsung Galaxy S5 (recunoaşte

gesturi, culoarea (RGB), proximity, măsoară lumina

ambientală).

Page 47: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor de greutate

Cosmin Vârlan – Facultatea de Informatică 2016

Ca cel din cântarele de baie. [nu vă apucaţi să le

dezmembraţi după senzori – decât dacă aveţi ciudă pe

ele]

Page 48: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

Lumină, UV Temperaturi mari

Masoara temperaturi foarte mari

(-200, 700) cu precizie de 2 grade.

Page 49: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Temperatură, termometru infraroşu

Cosmin Vârlan – Facultatea de Informatică 2016

Page 50: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Umiditatea solului Cantitate lichid în vas

Cosmin Vârlan – Facultatea de Informatică 2016

Page 51: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Staţie meteo Shield “weather”

CosminVârlan – Facultatea de Informatică 2016

Umiditate

Temperatură

Presiune atmosferică

Lumină

Viteză, direcţie vânt,

Cantitate de ploaie

Page 52: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor de temperatură şi umiditate

Cosmin Vârlan – Facultatea de Informatică 2016

Page 53: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori presiune atmosferică (din nou)

Cosmin Vârlan – Facultatea de Informatică 2016

Poate măsura altitudinea (cu o precizie de 1m)

sau cât de tare poţi sufla într-o sticlă :D

Page 54: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor ploaie Activitate seismică

Cosmin Vârlan – Facultatea de Informatică 2016

…de fapt este un microfon

supersensibil care “ascultă” pământul.

Page 55: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Geiger Counter – măsoară radiaţiile

Cosmin Vârlan – Facultatea de Informatică 2016

Page 56: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor de curent (neinvaziv)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 57: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzori gaze

Cosmin Vârlan – Facultatea de Informatică 2016

Monoxid de carbon MQ3 – alcool în aer GAZ metan (MQ4)

Hidrogen (MQ8)

LPG (MQ6)

Page 58: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor optic pentru praf (lumină +

măsurătoare)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 59: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Întrerupător optic

Cosmin Vârlan – Facultatea de Informatică 2016

Page 60: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cititor cartele magnetice / RFID

Cosmin Vârlan – Facultatea de Informatică 2016

Page 61: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Scanner cod de bare GPS

Cosmin Vârlan – Facultatea de Informatică 2016

Page 62: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Senzor PH

Cosmin Vârlan – Facultatea de Informatică 2016

Page 63: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Oxigenul din lichide (măsuraţi dacă o să

moară sau nu peştişorul din acvariu)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 64: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Conductivitatea electrică a unei substanţe

Cosmin Vârlan – Facultatea de Informatică 2016

Page 65: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Touch Screen

Cosmin Vârlan – Facultatea de Informatică 2016

Page 66: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Deşi nu chiar “senzori”, se conectează la

pinii analogici şi:

Cosmin Vârlan – Facultatea de Informatică 2016

Page 67: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

RTC WII Nunchack

Cosmin Vârlan – Facultatea de Informatică 2016

Există biblioteci ce

facilitează

comunicarea

telecomenzilorWii

cu Arduino.

Page 68: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Tastaturi şi mouseuri

Cosmin Vârlan – Facultatea de Informatică 2016

Aici trebuie sa îl mai chinuim peVlad :D

Nu pun poze cu tastaturi şi mouşi că ştiţi cum arată.

Echipamentele pe PS2 sunt mai uşor de utilizat cu

Arduino (cele pe USB de obicei au moduri diferite de a

transmite informaţia şi aceasta este “tradusa” in windows

de către un driver specific tastaturii)

https://liudr.wordpress.com/libraries/phi_interfaces/

Pentru tastaturi PS2 aveţi o librarie deja construită:

http://playground.arduino.cc/Main/PS2Keyboard

Şi alt link interesant:

http://playground.arduino.cc/Main/InterfacingWithHardware

Din DEX !

Page 69: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

3. Actuatori

Facultatea de Informatică – Univ. “Al. I. Cuza” Iaşi

Page 70: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatori

Cosmin Vârlan – Facultatea de Informatică 2016

Pentru a oferi un feedback în lumea reală, Arduino va

putea comanda diverse echipamente (mai mult sau mai

puţin complexe). Să vedem câteva dintre acestea…

Page 71: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatori vizuali - Leduri

Cosmin Vârlan – Facultatea de Informatică 2016

Page 72: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatori vizuali – Leduri / VGA out

Cosmin Vârlan – Facultatea de Informatică 2016

Page 73: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatori vizuali - ecrane

Cosmin Vârlan – Facultatea de Informatică 2016

Page 74: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatoare – Audio (MP3 player)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 75: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatoare – Audio (Radio) / Buzzer

Cosmin Vârlan – Facultatea de Informatică 2016

Page 76: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatoare – Audio (sintetizator voce)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 77: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatoare – Reţea (Ethernet / WiFi)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 78: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatoare – Telefonie (GSM shield)

Cosmin Vârlan – Facultatea de Informatică 2016

Page 79: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatoare – mecanice (Imprimante 3D)

CosminVârlan – Facultatea de Informatică 2016

Page 80: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Actuatori – pentru putere mare - relee

Cosmin Vârlan – Facultatea de Informatică 2016

Page 81: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

4. IDE

Facultatea de Informatică – Univ. “Al. I. Cuza” Iaşi

Page 82: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Page 83: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Secţiune de configurări.

Acest cod va fi rulat o singură

dată, la început.

Page 84: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Codul din această secţiune

va fi rulat la nesfârşit sau

până când este oprită

alimentarea.

Page 85: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Când compilaţi, aici vă sunt

afişate erorile.

Page 86: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Tipul plăcii Arduino conectată

precum şi portul său serial.

Page 87: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Dacă nu a nimerit tipul plăcii,

puteţi să o schimbaţi din Tools -> Board

Page 88: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Dacă nu a nimerit portul, îl

puteţi schimba din Tools -> Port

Page 89: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino - IDE

Tipul programatorului (pentru Arduino

folosiţi AVRISP mkII sau BusPirate as ISP

Page 90: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Arduino trimitere date prin portul serial

Cosmin Vârlan

Baud

Page 91: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan

Deschide monitorul serial…

Adică ferastra asta.. :D

Acelasi Baud (9600)

Page 92: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan

Exemple…

Vă invităm pe voi să descoperiţi

ce fac restul meniurilor…

Page 93: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

Cosmin Vârlan – Facultatea de Informatică 2016

Arduino API:

https://www.arduino.cc/en/Reference/HomePage

Page 94: 1. Arduino IntroducereWiring 3.0 –Atmel Atmega128 Cosmin Vârlan –Facultatea de Informatică 2016 Încăde la aceastăversiune s-a testat varianta finala a APIului şi a fost scris“Blink”

CosminVârlan – Facultatea de Informatică 2016