Documente Academic
Documente Profesional
Documente Cultură
Attribution-NonCommercial-NoDerivs CC BY-NC-ND
Esti liber sa distribui acest document prin orice mijloace consideri (email, publicare pe website / blog, printare, sau orice alt mijloc), atat timp cat nu aduci nici un fel de modificari acestuia. Codul sursa din acest document poate fi utilizat in orice fel de scop, de natura comerciala sau nu, fara nici un fel de limitari.
In acest tutorial vei descoperi ce este un senzor flex, cum se conecteaza la placa Raspberry PI prin SensorShield si cum se poate realiza o aplicatie in Python cu acest tip de senzor. Raspberry PI nu este echipat cu un convertor analog digital !"#C$ iar din aceasta cauza nu poate citi senzori analogici. SensorShield aduce o noua functionalitate placii Raspberry si anume, ii ofera posibilitatea de a citi senzori analogici. SensorShield este capabil sa alimenteze mai multi senzori deodata datorita celor % pini de tip mama dintre care, & pentru alimentare cu '.' (, & pentru alimentare cu )( si & pentru *nd. #aca vrei sa alimentezi mai multi senzori, iti recomand un breadboard. Raspberry PI poate citi simultan, prin acest shield, cel mult + senzori prin intrarile marcate cu ", - "..
http://www.robofun.ro/forum
Tabelul conexiunilor.
Sensor Shield 3.3V Sensor Shield 5V Sensor Shield Gnd Sensor Shield IN1 Sensor Shield IN2 Sensor Shield IN3 Sensor Shield IN4 Senzor fle Senzor fle Senzor fle bri!" V## bri!" GN' bri!" O() Raspberry PI 3.3V Raspberry PI 5V Raspberry PI Gnd Raspberry PI GPIO18 Raspberry PI GPIO23 Raspberry PI GPIO24 Raspberry PI GPIO25 SensorShield 5V Po$er%Sensors& SensorShield GN' Po$er%Sensors& SensorShield *+
#upa realizarea tuturor conexiunilor vei obtine ceva similar cu imaginea urmatoare.
http://www.robofun.ro/forum
&. '.
Imediat cum ai pornit aplicatia in executie, in terminal se vor printa valorile analogice ale senzorului flex. "cum poti indoi senzorul in ambele directii si vei observa cum variaza fiecare citire.
http://www.robofun.ro/forum
Codul sursa/
/01,sr1bin1en2 py.hon i3por. .i3e i3por. os i3por. RPi.GPIO as GPIO GPIO.se.3ode%GPIO.4#5& def readad!%ad!n,36 !lo!"pin6 3osipin6 3isopin6 !spin&7 if %%ad!n,3 8 9& or %ad!n,3 : +&&7 re.,rn ;1 GPIO.o,.p,.%!spin6 )r,e& GPIO.o,.p,.%!lo!"pin6 -alse& GPIO.o,.p,.%!spin6 -alse& !o33ando,. < ad!n,3 !o33ando,. =< + 18 !o33ando,. ::< 3 for i in ran>e%5&7 if %!o33ando,. ? + 8+&7 GPIO.o,.p,.%3osipin6 )r,e& else7 GPIO.o,.p,.%3osipin6 -alse& !o33ando,. ::< 1 GPIO.o,.p,.%!lo!"pin6 )r,e& GPIO.o,.p,.%!lo!"pin6 -alse&
http://www.robofun.ro/forum
ad!o,. < + for i in ran>e%12&7 GPIO.o,.p,.%!lo!"pin6 )r,e& GPIO.o,.p,.%!lo!"pin6 -alse& ad!o,. ::< 1 if %GPIO.inp,.%3isopin&&7 ad!o,. =< + 1 GPIO.o,.p,.%!spin6 )r,e& ad!o,. 88< 1 re.,rn ad!o,. SPI#@A < 18 SPI5ISO < 23 SPI5OSI < 24 SPI#S < 25 GPIO.se.,p%SPI5OSI6 GPIO.O()& GPIO.se.,p%SPI5ISO6 GPIO.IN& GPIO.se.,p%SPI#@A6 GPIO.O()& GPIO.se.,p%SPI#S6 GPIO.O()& $hile )r,e7 2al,e < readad!%+6 SPI#@A6 SPI5OSI6 SPI5ISO6 SPI#S& prin. BValoarea analo>i!a7 B C s.r%2al,e& .i3e.sleep%+.5&
&.
'.
http://www.robofun.ro/forum
:.
).
http://www.robofun.ro/forum