Documente Academic
Documente Profesional
Documente Cultură
Sisteme Incorporate
ARDUINO LINE FOLLOWER
Robot construit pe platforma Arduino cu abilitatea de a urmri
un traseu n mod autonom
Bugariu Razvan
Tuduce Adela
An 3 CTI
An universitar 2014 - 2015
Componente:
Platforma de dezvoltare
Arduino este un microcontroler board, destinat s fac aplicarea de obiecte
interactive sau medii mai accesibile.
Hardware-ul const dintr-un open-source hardware board proiectat n jurul unor 8bit Atmel AVR microcontroller, sau de 32-bit Atmel ARM. Modelele actuale sunt
dotate cu o interfa USB, 6 pini de intrare analogice, precum i ace de 14 I/O
digitale, care permite utilizatorului s se ata eze mai multe placi de extensie.
Introdus n 2005, platforma Arduino a fost proiectat pentru a oferi un mod ieftin i
uor pentru pasionai, studeni i profesioniti pentru a crea dispozitive care
interacioneaz cu mediul lor folosind senzori i actuatori. Exemple comune pentru
amatori incepatori includ simple, roboi, termostate i senzori de micare. Arduino
UNO este o platforma de procesare open-source, bazata pe software si hardware
flexibil si simplu de folosit. Consta intr-o platforma de mici dimensiuni (6.8 cm /
5.3 cm in cea mai des intalnita varianta) construita in jurul unui procesor de
semnal si este capabila de a prelua date din mediul inconjurator printr-o serie de
senzori si de a efectua actiuni asupra mediului prin intermediul luminilor,
motoarelor, servomotoare, si alte tipuri de dispozitive mecanice. Procesorul este
capabil sa ruleze cod scris intr-un limbaj de programare care este foarte similar
cu limbajul C++.
Specificatii
Microcontroller: ATmega328
Tensiune de sistem: 5V
Digital I/O: 14
Intrari analogice: 6
PWM: 6
Microcontroller ATMega328
Atmega328 AVR 8-bit este un circuit integrat de nalt performan ce se
bazeaz pe un microcontroler RISC, combinnd 32 KB ISP flash o memorie cu
capacitatea de a citi-n-timp-ce-scrie, 1 KB de memorie EEPROM, 2 KB de SRAM,
23 linii E/S de uz general, 32 nregistrari procese generale, trei cronometre
flexibile/contoare n comparaie cu, ntreruperi intern i extern, programator de
tip USART, orientate interfa serial byte de 2 cabluri, SPI port serial, 6-canale 10bit Converter A/D (8-chanale n TQFP i QFN/MLF packages), "watchdog timer"
programabil cu oscilator intern, i cinci moduri de software-ul intern de economisire a
energiei selectabil. Dispozitivul funcioneaz 1,8-5,5 vol i.
Prin executarea instruciuni puternice ntr-un singur ciclu de ceas, aparatul realizeaz
un rspuns de 1 MIPS
Parametrii
Flash: 32Kbytes
RAM: 2Kbytes
Cantitate pini: 28
Intreruperile externe 24
Module folosite
Generare de semnale PWM in Arduino
PWM este o metoda de a obtine un semnal analogic prin intermediul unui
semnal digital generand tensiuni de 1 si 0 la anumite perioade de timp. Fractiunea de
perioada cat semnalul este activ (1 logic) se numeste factor de umplere, sau duty
cycle. In Arduino se poate folosi PWM in trei moduri, fie prin temporizatoare, fie
folosind functia analogWrite, sau variind manual durata cat un pin este activ (1 logic).
In aceast proiect vom folosi functia analogWrite(factor de umplere). Valorile
posibile pentru analogWrite sunt de la 255 care reprezinta 5V la 0.
Senzori Analogici
Microcontrollerele sunt capabile sa detecteze semnale binare, 0 sau 1, cum
este de exemplu starea unui buton (apasat sau ridicat). Aceste semnale se numesc
semnale digitale. Cand un microcontroller este alimentat de la 5 V el intelege
valoarea tensiunii de 5V ca si 1 logic si 0V ca si 0 logic. Cu toate acestea noi avem
nevoie sa masuram si altfel de semnale in lumea reala, semnale intermediare
valorilor extreme (de exemplu, 2.57 V). Aceste semnale contin informatie relevanta in
nivelul tensiunii lor, si poarta numele de semnale analogice. Un ADC (convertor
analog la digital) converteste un semnal analogic la un numar. Prin intermediul
acestui dispozitiv avem posibilitatea de a interfata tot felul de periferice la
microcontrollerul nostru si de a masura informatiile analogice din jurul nostru. Nu toti
pinii de pe arduino pot face astfel de conversii. Pinii care pot fi folositi impreuna cu
senzori analogici sunt pinii care au un A in fata numelui lor pe placa.
Senzori
Bara senzori linie analogic QTR-8A
Input date
Cei 8 senzori IR vor transmite semnale analogice n func ie de ce
Specificatii
Dimensiuni: 2.95 x 0.5 x 0.125
Tensiunea de operare: 3.3-5.0 V
Curentul : 100 mA
Formatul output-ului: 8 tensiuni analogice
Tesiunea de iesire : 0 V pana la tensiunea de alimentare
Distanta optima: 0.125 (3 mm)
Distanta maxima recomandata: 0.25 (6 mm)
Greutate: 0.11 oz (3.09 g)
Driver motor
Driver-ul de motoare L298 este utilizat pentru controlul motoarelor de curent
continuu folosind Arduino. Arduino este capabil sa scoata pe porturile lui o putere
foarte mica, total insuficienta pentru a invarti un motor. Daca vom conecta un motor
electric direct la un port Arduino, cel mai probabil vom obtine arderea procesorului
din placa Arduino.
Ca sa nu se intample acest lucru, avem nevoie de un amplificator de putere,
care sa ia putere din sursa de alimentare (baterie, de exemplu), si sa o transmita
6
motoarelor asa cum ii comanda Arduino. Acest amplificator poarta numele generic de
"driver de motoare".
Driver-ul este bazat pe integratul L298, fiind un driver de nivel mediu din punct
de vedere al puterii conduse. Poate controla motoare care necesita cel mult 2
Amperi. Driver-ul se conecteaza la platforma Arduino folosind 4 pini digitali (3, 5, 6 si
9) prin infigere directa in pinii placii Arduino.
Alimentarea shield-ului se face prin pinii cu surub VIN si GND. Shield-ul se
alimenteaza in functie de necesitatile motoarelor. Daca motoarele accepta o tensiune
de cel mult 6V atunci poti utiliza o cutie cu 4 baterii. Tensiunea totala a bateriilor este
de 6V dar driver-ul consuma intern intre 2.5 si 4.5V. In acest mod, pe motor, ajunge o
tensiune cuprinsa intre 4.5V si 6.5V, suficient cat sa isi indeplineasca functia fara sa il
arzi.