Inhoudsopgave:

Botsingspreventie - mogelijk gemaakt door Pi - Ajarnpa
Botsingspreventie - mogelijk gemaakt door Pi - Ajarnpa

Video: Botsingspreventie - mogelijk gemaakt door Pi - Ajarnpa

Video: Botsingspreventie - mogelijk gemaakt door Pi - Ajarnpa
Video: Nienke test pepperspray! 2024, November
Anonim
Botsingspreventie - mogelijk gemaakt door Pi
Botsingspreventie - mogelijk gemaakt door Pi

Dit Instructable geeft u een stapsgewijze handleiding voor de bouw van het Collision Prevention System. Om te beginnen moet men de volgende lijst met materialen verkrijgen:

Raspberry PI 3 (met stroom- en Ethernet-akkoorden), 1 GPIO-uitbreidingskaart en lintkabel (GPIO), 1 groot breadboard met schema, 2 kleine breadboards met schema, 14 startkabels, 3 220 Ohm-weerstand, 1 RGB-led, 3 knopschakelaars, 1HB-SR04 Ultrasone sensor

Stap 1: GPIO-extensie

GPIO-extensie
GPIO-extensie
GPIO-extensie
GPIO-extensie

Sluit het GPIO-uitbreidingsbord aan op het grote breadboard. De GPIO moet verticaal zijn gericht, net als het breadboard. Wijs de linkerkant van de GPIO toe aan breadboard-poorten D1-D20 met behulp van het meegeleverde diagram. De rechterkant zou dan aansluiten op H1-H20. Sluit de lintkabel aan op zowel de Raspberry Pi 3 als de GPIO-uitbreidingskaart. Dit hele onderdeel wordt nu het GPIO-bord (GPIO) genoemd

Stap 2: Ultrasone sensor

Ultrasoon sensor
Ultrasoon sensor
Ultrasoon sensor
Ultrasoon sensor

Gebruik een ander kleiner breadboard en sluit de HR-SR04 ultrasone sensor aan op de kleinere breadboard-poorten A2-5 met behulp van het meegeleverde diagram. Sluit een jumperkabel aan op het kleinere breadboard (BB) E2, steek het andere uiteinde in de GPIO-uitbreidingskaartpoort J1. Sluit op dezelfde manier nog drie jumpers op de volgende manier aan. (BB E3, GPIO B17) (BB E4, GPIO B18)(BB E5, GPIO B20)

Stap 3: LED en weerstanden

LED en weerstanden
LED en weerstanden
LED en weerstanden
LED en weerstanden
LED en weerstanden
LED en weerstanden

Sluit op hetzelfde kleine breadboard als in de vorige instructie drie 220 ohm-weerstanden op de volgende manier aan. (E10, H10)(E12, H12)(E14, H14) Sluit vervolgens een jumper van hetzelfde breadboard E13 aan op de grondstroomrail op het GPIO-bord. Sluit de vier uitsteeksels van de LED aan op de kleinere breadboard-poorten (B13)(D14)(D12)(D10). Verbind vervolgens drie jumpers van het kleinere breadboard met het GPIO-bord op de toegewezen manier. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Dit breadboard is nu klaar.

Stap 4: Grond

Grond
Grond

Gebruik een andere jumper om GPIO-kaart J7 aan te sluiten op de grondstroomrail.

Stap 5: Knoppen

Toetsen
Toetsen

Gebruik het tweede breadboard en plaats de bovenkant van een knopschakelaar op poort E1 en D1, plaats een andere op E5 en D5 en een derde op E9 en D9. Sluit drie jumpers van de positieve voedingsrail op het GPIO-bord aan op de volgende breadboard-poorten (D3) (D7) (D11). Gebruik nog drie startkabels om het breadboard op de volgende manier aan te sluiten op de GPIO-uitbreidingskaart: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Sluit ten slotte GPIO A1 met de laatste startkabel aan op de positieve voedingsrail. De fysieke installatie is nu voltooid.

Stap 6: Coderen

Code
Code
Code
Code

Sluit de Ethernet-kabel en voedingskabel aan op de Pi en in hun respectievelijke posities. Open MATLAB en voer het volgende script uit om de microcontroller te initialiseren:

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

Kopieer en plak vervolgens het volgende in een nieuw script, Ping genaamd, om het systeem voor het voorkomen van botsingen uit te voeren:

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

disp("Afstandsmeting in uitvoering");

terwijl true writeDigitalPin(rpi, trig, 0); disp("Sensor laten bezinken"); pauze (2);

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

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

terwijl readDigitalPin (rpi, echo) == 1 T = toc; einde

pulse_duration = T; afstand = pulsduur * 17150;

open = "Afstand = "; sluiten = "cm"; string = [open, afstand, dichtbij]; disp(tekenreeks); afstand = afstand; einde einde

Voer in een nieuw script de volgende code met de naam status uit:

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

toestand = 2; d = 10; % Status: 0-Rood/Stop 1-Blauw/Langzaam 2-Groen/Ga hardlopen = waar; terwijl %d = ping(); if readDigitalPin(rpi, 21) == 1 status = 0; elseif readDigitalPin(rpi, 16) == 1 status = 1; elseif readDigitalPin(rpi, 12) == 1 status = 2; anders d

Aanbevolen: