Sisukord:

Kokkupõrke vältimine- Powered by Pi: 6 sammu
Kokkupõrke vältimine- Powered by Pi: 6 sammu

Video: Kokkupõrke vältimine- Powered by Pi: 6 sammu

Video: Kokkupõrke vältimine- Powered by Pi: 6 sammu
Video: This is how Rome became a major power ⚔ Third Samnite War (ALL PARTS) ⚔ FULL 1 HOUR DOCUMENTARY 2024, Juuli
Anonim
Kokkupõrke ennetamine- Powered by Pi
Kokkupõrke ennetamine- Powered by Pi

See juhend annab teile samm-sammult juhise kokkupõrke vältimise süsteemi ehitamiseks. Alustamiseks peate hankima järgmise materjalide loendi:

Vaarika PI 3 (toite- ja Etherneti akordidega), 1 GPIO pikendusplaat ja lintkaabel (GPIO), 1 suur leivalaud koos skeemiga, 2 väikest leivalauda diagrammiga, 14 hüppakaablit, 3220 oomi takisti, 1 RGB LED, 3 nupulülitit, 1HB-SR04 ultraheli andur

Samm: GPIO laiend

GPIO laiendus
GPIO laiendus
GPIO laiendus
GPIO laiendus

Ühendage GPIO pikendusplaat suure leivaplaadiga. GPIO peaks olema leivalauaga vertikaalselt suunatud. Määrake GPIO vasak pool leivaplaadi portidele D1-D20, kasutades kaasasolevat skeemi. Parem pool ühendaks siis H1-H20. Ühendage lintkaabel nii Raspberry Pi 3 kui ka GPIO pikendusplaadiga. Kogu seda komponenti nimetatakse nüüd GPIO -plaadiks (GPIO)

Samm: ultraheli andur

Ultraheli andur
Ultraheli andur
Ultraheli andur
Ultraheli andur

Kasutades teist väiksemat leivaplaati, ühendage ultraheliandur HR-SR04 väiksemate leivaplaadi portidega A2-5, kasutades kaasasolevat skeemi. Ühendage hüppajakaabel väiksema leivalauaga (BB) E2, sisestage teine ots GPIO pikendusplaadi porti J1. Samamoodi ühendage veel kolm džemprit järgmiselt. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Samm: LED ja takistid

LED ja takistid
LED ja takistid
LED ja takistid
LED ja takistid
LED ja takistid
LED ja takistid

Ühendage eelmisel juhisel kasutatud väikese leivaplaadiga kolm 220 oomi takistit järgmiselt. (E10, H10) (E12, H12) (E14, H14) Seejärel ühendage hüppaja samalt leivaplaadilt E13 GPIO -plaadi maandusjuhtmega. Ühendage LED -i neli haru väiksemate leivaplaadi portidega (B13) (D14) (D12) (D10). Seejärel ühendage kolm džemprit väiksemalt leivaplaadilt GPIO plaadiga määratud viisil. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). See leivalaud on nüüd valmis.

4. samm: jahvatage

Maa
Maa

Ühendage GPIO -plaat J7 maapealse toitekaabliga teise hüppajaga.

5. samm: nupud

Nupud
Nupud

Teise leivalaua abil asetage nuppude E1 ja D1 nuppude ülemine osa, teine koht E5 ja D5 ning kolmas kohtade E9 ja D9 juurde. Ühendage kolm džemprit GPIO -plaadi positiivse toitekaabli abil järgmiste leivaplaadi portidega (D3) (D7) (D11). Ühendage veel kolme hüppajakaabli abil leivalaud GPIO pikendusplaadiga järgmises mõisas: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Lõpuks ühendage viimane hüppajakaabel GPIO A1 positiivse toitekaabliga. Füüsiline seadistus on nüüd lõpule viidud.

6. samm: kood

Kood
Kood
Kood
Kood

Ühendage Etherneti kaabel ja toitekaabel Pi -ga ja nende vastavatesse kohtadesse. Avage MATLAB ja käivitage mikrokontrolleri lähtestamiseks järgmine skript:

rpi = raspi ('169.254.0.2', 'pi', 'vaarikas');

Seejärel kopeerige ja kleepige kokkupõrke vältimise süsteemi käivitamiseks järgmine skript Ping.

funktsioon dist = ping () trig = 19; kaja = 13; test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');

disp ("Kauguse mõõtmine pooleli");

samas kui true writeDigitalPin (rpi, trig, 0); disp ("Anduri settimine"); paus (2);

writeDigitalPin (rpi, trig, 1); paus (0,002); writeDigitalPin (rpi, trig, 0);

samas readDigitalPin (rpi, echo) == 0 tic end

samas readDigitalPin (rpi, echo) == 1 T = toc; lõpp

pulse_duration = T; kaugus = impulsi kestus * 17150;

avatud = "Kaugus ="; sulge = "cm"; string = [avatud, kaugus, sulg]; disp (string); dist = kaugus; lõpp lõpp

Käivitage uues skriptis järgmine kood nimega olek:

configurePin (rpi, 21, 'DigitalInput'); configurePin (rpi, 16, 'DigitalInput'); configurePin (rpi, 12, 'DigitalInput');

staatus = 2; d = 10; %Olek: 0-punane/seiskamine 1-sinine/aeglane 2-roheline/jooksmine = tõene; töötamise ajal %d = ping (); kui lugedaDigitalPin (rpi, 21) == 1 olek = 0; elseif readDigitalPin (rpi, 16) == 1 olek = 1; elseif readDigitalPin (rpi, 12) == 1 olek = 2; muidu d

Soovitan: