Sunteți pe pagina 1din 5

Textul si imaginile din acest document sunt licentiate

Attribution-NonCommercial-NoDerivs
CC BY-NC-ND
Codul sursa din acest document este licentiat
Public-Domain
Esti liber sa distribui acest document prin orice mijloace consideri (email publicare pe !ebsite "
blog printare sau orice alt mijloc# atat timp cat nu aduci nici un $el de modi$icari acestuia% Codul
sursa din acest document poate $i utili&at in orice $el de scop de natura comerciala sau nu $ara
nici un $el de limitari%
http://www.robofun.ro/forum
Arduino Leonardo, accelerometru si Google Earth

Arduino 3.3 V MMA8452Q 3.3V
Arduino GND MMA8452Q GND
Arduino SDA MMA8452Q SDA
Arduino SCL MMA8452Q SCL
'olosind $aptul ca Arduino (eonardo poate simula un mouse virtual si
$aptul ca un accelerometru este capabil de a detecta acceleratia gravitationala
(adica directia verticala# poti utili&a Arduino (eonardo si accelerometrul
))A*+,-. pentru a simula &borul in aplicatia /oogle Eart0
(0ttp1""!!!%google%com"eart0"index%0tml#%
Principiul de $unctionare al acestei aplicatii este extrem de simplu%
Arduino preia datele de la accelerometru prin inter$ata 2-C iar apoi se comporta
ca un mouse ce iti permite sa &bori in /oogle Eart0 'lig0t 3imulator% Diagrama
http://www.robofun.ro/forum
de conectare a sen&orului este cea din tabel si deoarece consumul este redus
plat$orma si sen&orul se vor alimenta din portul 43B%
Codul sursa.
#include <I2C.h>
#include <MMA8453n!"#.h>
MMA8453n!"# $ccel%
in& '()%
*oid +e&u,-. /
$ccel.+e&I2CAddr-!'#D.% 00ch$n1e )our de*ice $ddre++ i2
00nece++$r)( de2$ul& i+ !'#C
$ccel.d$&$Mode-&rue( 2.% 00en$3le hi1h4e+ #!3i&( 21
00r$n1e521(41(816
Mou+e.3e1in-.%
7
*oid loo,-. /
$ccel.u,d$&e-.%
'8$ccel.'-.%
)8$ccel.)-.%

'8"$,-'(92!!(2!!(9#!(#!.%
)8"$,-)(92!!(2!!(9#!(#!.%
Mou+e."o*e-)('(!.%
del$)-#!.%
7
Primele doua linii sunt directivele preprocesor pentru ca te vei utili&a de
magistrala 2-C si de sen&orul ))A*+,-.% (ibrariile acestea le vei avea in
directorul libraries din arduino alt$el aplicatia nu se va compila cu succes%
Prin linia nr%5 se creea&a obiectul accel apoi se initiali&ea&a doua variabile
x si 6%
7utina setup initiali&ea&a accelerometrul(adresa re&olutie inalta
domeniul -g#% Prin linia )ouse%begin(# Arduino va emula mouse-ul conectat la
calculator%
7utina loop1 se obtin datele de la accelerometru si sunt impinse in doua
variabile x si 6%
Domeniul variabilelor x si 6 este sc0imbat prin $unctia map% 8alorile --99
si -99 repre&inta limitele in$erioare si superioare date de accelerometru%
8alorile -:9 si :9 repre&inta domeniul modi$icat pe ba&a valorilor precedente%
http://www.robofun.ro/forum
Daca nu se apelea&a cele doua $unctii map vei observa ca mouse-ul va sta
intotdeauna catre marginea monitorului si va $i incontrolabil%
'unctia )ouse%move(6x9# transmite coordonatele x si 6 iar cursorul
mouse-ului de pe monitor isi modi$ica po&itia% Al treilea termen(&ero in ca&ul
acesta# repre&inta valoarea rotitei scroll%
Cum functioneaza?
2nstalea&a /oogle Eart0 (0ttp1""!!!%google%com"eart0"index%0tml# si
desc0ide simulatorul de &bor din Tools-Enter Flight Simulator% Alege un
avion ':; daca vrei sa &bori la vite&a mare o locatie anume si intra in &bor%
Decolarea de pe aeroport o $aci cu Pg 4p si cele doua sageti% Cand ai
ajuns in aer po&itionea&a mouse-ul(undeva in $ereastra de &bor# si da-i un clic<%
Conectea&a plat$orma Arduino la portul 43B si asteapta cateva momente pana
cand mouse-ul devine activ pe monitor% Din acest moment &borul este controlat
de Arduino (eonardo%
Experimentea&a misca accelerometrul in aer pe toate cele trei directii si
urmareste cum se misca mouse-ul pe ecran%
http://www.robofun.ro/forum

S-ar putea să vă placă și