Indholdsfortegnelse:

Kollisionsforebyggelse- Drevet af Pi: 6 trin
Kollisionsforebyggelse- Drevet af Pi: 6 trin

Video: Kollisionsforebyggelse- Drevet af Pi: 6 trin

Video: Kollisionsforebyggelse- Drevet af Pi: 6 trin
Video: Какие в России есть речные круизные теплоходы? 2024, Juli
Anonim
Kollisionsforebyggelse- Drevet af Pi
Kollisionsforebyggelse- Drevet af Pi

Denne instruktionsbog giver dig en trin-for-trin guide til konstruktion af The Collision Prevention System. For at starte skal man få følgende materialeliste:

Raspberry PI 3 (med strøm- og Ethernet -akkorder), 1 GPIO forlængerkort og båndkabel (GPIO), 1 stort brødbræt med diagram, 2 små brødbrætter med diagram, 14 springkabler, 3220 Ohms modstand, 1 RGB LED, 3 knapkontakter, 1HB-SR04 Ultralydssensor

Trin 1: GPIO -udvidelse

GPIO -udvidelse
GPIO -udvidelse
GPIO -udvidelse
GPIO -udvidelse

Tilslut GPIO forlængerkortet til det store brødbræt. GPIO skal vende lodret ligesom brødbrættet er. Tildel venstre side af GPIO til breadboard-porte D1-D20 ved hjælp af det medfølgende diagram. Højre side ville derefter oprette forbindelse til H1-H20. Tilslut båndkablet til både Raspberry Pi 3 og GPIO forlængerkortet. Hele denne komponent vil nu blive omtalt som GPIO -kortet (GPIO)

Trin 2: Ultralydssensor

Ultralydssensor
Ultralydssensor
Ultralydssensor
Ultralydssensor

Brug et andet mindre brødbræt, tilslut HR-SR04 ultralydssensoren til de mindre brødbrætporte A2-5 ved hjælp af det medfølgende diagram. Tilslut et jumperkabel til det mindre brødbræt (BB) E2, indsæt den anden ende i GPIO forlængerkortets port J1. På samme måde tilsluttes yderligere tre jumpere på følgende måde. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)

Trin 3: LED og modstande

LED og modstande
LED og modstande
LED og modstande
LED og modstande
LED og modstande
LED og modstande

På det samme lille brødbræt, der blev brugt i den foregående instruktion, skal du tilslutte tre 220 ohm modstande på følgende måde. (E10, H10) (E12, H12) (E14, H14) Tilslut derefter en jumper fra det samme brødbræt E13 til jordstrømsskinnen på GPIO -kortet. Tilslut LED'ens fire stik til de mindre brødbrætsporte (B13) (D14) (D12) (D10). Tilslut derefter tre jumpere fra det mindre brødbræt til GPIO -kortet på den tildelte måde. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Dette brødbræt er nu færdigt.

Trin 4: Jord

Jord
Jord

Brug en anden jumper til at forbinde GPIO -kort J7 til jordstrømsskinnen.

Trin 5: Knapper

Knapper
Knapper

Brug det andet brødbræt til at placere toppen af en knapkontakt på port E1 og D1, placer en anden ved E5 og D5 og en tredje ved E9 og D9. Tilslut tre jumpere fra den positive power rail på GPIO -kortet til følgende breadboard -porte (D3) (D7) (D11). Brug yderligere tre jumperkabler til at slutte brødbrættet til GPIO -forlængerkortet i følgende herregård: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Til sidst, ved hjælp af det sidste jumperkabel, tilsluttes GPIO A1 til den positive strømskinne. Den fysiske opsætning er nu fuldført.

Trin 6: Kode

Kode
Kode
Kode
Kode

Tilslut Ethernet -kablet og strømkablet til Pi og til deres respektive positioner. Åbn MATLAB, og kør følgende script for at initialisere mikrokontrolleren:

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

Kopier og indsæt derefter følgende i et nyt script, kaldet Ping, for at køre kollisionsforebyggelsessystemet:

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

disp ("Afstandsmåling i gang");

mens true writeDigitalPin (rpi, trig, 0); disp ("Lad sensoren sætte sig"); pause (2);

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

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

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

pulse_duration = T; afstand = puls_varighed * 17150;

open = "Distance ="; luk = "cm"; string = [åben, afstand, luk]; disp (streng); dist = distance; ende ende

I et nyt script skal du køre 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/Stop 1-Blå/Langsom 2-Grøn/Kør = sand; mens du kører %d = ping (); hvis readDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 status = 1; elseif readDigitalPin (rpi, 12) == 1 status = 2; ellers d

Anbefalede: