Innholdsfortegnelse:

Kollisjonsforebygging- Drevet av Pi: 6 trinn
Kollisjonsforebygging- Drevet av Pi: 6 trinn

Video: Kollisjonsforebygging- Drevet av Pi: 6 trinn

Video: Kollisjonsforebygging- Drevet av Pi: 6 trinn
Video: Самомассаж ног. Как делать массаж стоп, голени в домашних условиях. 2024, Juli
Anonim
Kollisjonsforebygging- Drevet av Pi
Kollisjonsforebygging- Drevet av Pi

Denne instruksen vil gi deg en trinnvis veiledning for konstruksjonen av The Collision Prevention System. For å starte må man skaffe følgende materialeliste:

Raspberry PI 3 (med strøm- og Ethernet -akkorder), 1 GPIO forlengelseskort og båndkabel (GPIO), 1 stort brødbrett med diagram, 2 små brødbrett med diagram, 14 hoppekabler, 3220 Ohm motstand, 1 RGB LED, 3 knappebrytere, 1HB-SR04 Ultralydsensor

Trinn 1: GPIO -utvidelse

GPIO -utvidelse
GPIO -utvidelse
GPIO -utvidelse
GPIO -utvidelse

Koble GPIO -forlengelseskortet til det store brødbrettet. GPIO skal vende loddrett akkurat som brødbrettet. Tilordne venstre side av GPIO til brødbrettportene D1-D20 ved hjelp av diagrammet. Høyre side vil deretter koble til H1-H20. Koble båndkabelen til både Raspberry Pi 3 og GPIO -forlengelseskortet. Hele denne komponenten vil nå bli referert til som GPIO -kortet (GPIO)

Trinn 2: Ultralydsensor

Ultralydsensor
Ultralydsensor
Ultralydsensor
Ultralydsensor

Ved å bruke et annet mindre brødbrett, kobler du ultralydsensoren HR-SR04 til de mindre brødbrettportene A2-5 ved hjelp av det medfølgende diagrammet. Koble en startkabel til det mindre brødbrettet (BB) E2, sett den andre enden inn i GPIO forlengelseskortport J1. På samme måte kan du koble til ytterligere tre hoppere på følgende måte. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Trinn 3: LED og motstander

LED og motstander
LED og motstander
LED og motstander
LED og motstander
LED og motstander
LED og motstander

På samme lille brødbrett som ble brukt i forrige instruksjon, kobler du til tre 220 ohm motstander på følgende måte. (E10, H10) (E12, H12) (E14, H14) Koble deretter en jumper fra samme brødbrett E13 til bakkenergiskinnen på GPIO -kortet. Koble de fire pinnene på LED -en til de mindre brødbrettportene (B13) (D14) (D12) (D10). Koble deretter tre hoppere fra det mindre brødbrettet til GPIO -brettet på den tildelte måten. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Dette brødbrettet er nå komplett.

Trinn 4: Bakken

Bakke
Bakke

Bruk en annen jumper til å koble GPIO -kortet J7 til bakkenergiskinnen.

Trinn 5: Knapper

Knapper
Knapper

Ved å bruke det andre brødbrettet plasserer du toppen av en knappbryter på port E1 og D1, plasserer en annen ved E5 og D5, og en tredje ved E9 og D9. Koble tre hoppere fra den positive kraftskinnen på GPIO -kortet til følgende brødbrettsporter (D3) (D7) (D11). Bruk ytterligere tre startkabler til å koble brødbrettet til forlengelseskortet GPIO i følgende herregård: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Til slutt, ved hjelp av den siste startkabelen, kobler du GPIO A1 til den positive strømskinnen. Det fysiske oppsettet er nå fullført.

Trinn 6: Kode

Kode
Kode
Kode
Kode

Koble Ethernet -kabelen og strømkabelen til Pi og til hver sin posisjon. Åpne MATLAB og kjør følgende skript for å initialisere mikrokontrolleren:

rpi = raspi ('169.254.0.2', 'pi', 'bringebær');

Kopier deretter og lim inn følgende i et nytt skript, kalt Ping, for å kjøre kollisjonsforebyggende system:

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

disp ("Avstandsmåling pågår");

mens true writeDigitalPin (rpi, trig, 0); disp ("La sensoren sette seg"); pause (2);

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

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

mens readDigitalPin (rpi, ekko) == 1 T = toc; slutt

pulse_duration = T; avstand = puls_varighet * 17150;

åpen = "Avstand ="; lukk = "cm"; streng = [åpen, avstand, lukk]; disp (streng); dist = distanse; ende ende

I et nytt skript, kjør følgende kode med navnet status:

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

status = 2; d = 10; %Status: 0-Rød/Stopp 1-Blå/Sakte 2-Grønn/Gå i gang = sant; mens du kjører %d = ping (); hvis readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 status = 1; elseif readDigitalPin (rpi, 12) == 1 status = 2; annet hvis d

Anbefalt: