Cuprins:

Prevenirea coliziunilor - Realizat de Pi: 6 pași
Prevenirea coliziunilor - Realizat de Pi: 6 pași

Video: Prevenirea coliziunilor - Realizat de Pi: 6 pași

Video: Prevenirea coliziunilor - Realizat de Pi: 6 pași
Video: Refacerea gazonului infestat cu buruieni sau gazon rarit.Pasi pentru remediere.Erbicide.Prevenire. 2024, Iulie
Anonim
Prevenirea coliziunilor - Powered by Pi
Prevenirea coliziunilor - Powered by Pi

Acest instructable vă va oferi un ghid pas cu pas pentru construirea sistemului de prevenire a coliziunilor. Pentru a începe, trebuie să obțineți următoarea listă de materiale:

Raspberry PI 3 (cu acorduri de alimentare și Ethernet), 1 placă extensie GPIO și cablu ribbon (GPIO), 1 placă mare cu diagramă, 2 plăci mici cu diagramă, 14 cabluri jumper, 3 rezistențe de 220 Ohmi, 1 LED RGB, 3 butoane, 1HB-SR04 Senzor cu ultrasunete

Pasul 1: Extensie GPIO

Extensie GPIO
Extensie GPIO
Extensie GPIO
Extensie GPIO

Conectați placa de extensie GPIO la placa mare. GPIO ar trebui să fie orientat pe verticală, așa cum este placa de verificare. Atribuiți partea stângă a GPIO porturilor D1-D20 pentru panou de calcul folosind diagrama furnizată. Partea dreaptă se va conecta apoi la H1-H20. Conectați cablul ribbon atât la Raspberry Pi 3, cât și la placa de extensie GPIO. Întreaga componentă va fi denumită acum placa GPIO (GPIO)

Pasul 2: senzor cu ultrasunete

Senzor cu ultrasunete
Senzor cu ultrasunete
Senzor cu ultrasunete
Senzor cu ultrasunete

Utilizând o altă placă de panou mai mică, conectați senzorul ultrasonic HR-SR04 la porturile mai mici de panou de panouri A2-5 folosind diagrama furnizată. Conectați un cablu jumper la placa de măsurare mai mică (BB) E2, introduceți celălalt capăt în portul J1 al plăcii de extensie GPIO. În același mod, conectați încă trei jumperi în modul următor. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Pasul 3: LED-uri și rezistențe

LED-uri și rezistențe
LED-uri și rezistențe
LED-uri și rezistențe
LED-uri și rezistențe
LED-uri și rezistențe
LED-uri și rezistențe

Pe aceeași placă mică folosită în instrucțiunea anterioară, conectați trei rezistențe de 220 ohm în modul următor. (E10, H10) (E12, H12) (E14, H14) Apoi conectați un jumper de la aceeași placă E13 la șina de alimentare la sol de pe placa GPIO. Conectați cele patru vârfuri ale LED-urilor la porturile mai mici pentru panouri (B13) (D14) (D12) (D10). Apoi conectați trei jumperi de la placa de măsurare mai mică la placa GPIO în modul atribuit. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Această panou de testare este acum complet.

Pasul 4: împământare

Sol
Sol

Utilizați un alt jumper pentru a conecta placa GPIO J7 la șina de alimentare la sol.

Pasul 5: Butoane

Butoane
Butoane

Folosind cea de-a doua panou de plasare, plasați partea de sus a unui buton de comutare pe porturile E1 și D1, plasați altul la E5 și D5 și un al treilea la E9 și D9. Conectați trei jumperi de la șina de alimentare pozitivă de pe placa GPIO la următoarele porturi pentru panoul de măsurare (D3) (D7) (D11). Folosind încă trei cabluri jumper, conectați placa de rețea la placa de extensie GPIO în următorul conac: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). În cele din urmă, utilizând ultimul cablu jumper, conectați GPIO A1 la șina de alimentare pozitivă. Configurarea fizică este acum completă.

Pasul 6: Cod

Cod
Cod
Cod
Cod

Conectați cablul Ethernet și cablul de alimentare la Pi și în pozițiile lor respective. Deschideți MATLAB și rulați următorul script pentru a inițializa microcontrolerul:

rpi = raspi ('169.254.0.2', 'pi', 'zmeură');

Apoi copiați și lipiți următoarele într-un nou script, numit Ping, pentru a rula sistemul de prevenire a coliziunilor:

funcția dist = ping () trig = 19; ecou = 13; test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');

disp („Măsurarea distanței în curs”);

în timp ce true writeDigitalPin (rpi, trig, 0); disp ("Lăsarea senzorului să se stabilească"); pauză (2);

writeDigitalPin (rpi, trig, 1); pauză (0,002); writeDigitalPin (rpi, trig, 0);

în timp ce readDigitalPin (rpi, echo) == 0 tic end

în timp ce readDigitalPin (rpi, echo) == 1 T = toc; Sfârșit

puls_duration = T; distanță = impuls_duration * 17150;

deschis = "Distanță ="; close = "cm"; șir = [deschis, distanță, închidere]; disp (șir); dist = distanță; sfârșit sfârșit

Într-un nou script, rulați următorul cod denumit status:

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

status = 2; d = 10; % Stare: 0-Roșu / Stop 1-Albastru / Lent 2-Verde / Go running = true; în timpul rulării% d = ping (); if readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 status = 1; elseif readDigitalPin (rpi, 12) == 1 status = 2; elseif d

Recomandat: