Përmbajtje:
2025 Autor: John Day | [email protected]. E modifikuara e fundit: 2025-01-13 06:58
Ky udhëzues do t'ju japë një udhëzues hap pas hapi për ndërtimin e Sistemit të Parandalimit të Përplasjeve. Për të filluar, duhet të merrni listën e mëposhtme të materialeve:
Raspberry PI 3 (me akorde të energjisë dhe Ethernet), 1 GPIO Extension Board and Ribbon Cable (GPIO), 1 Breadboard e madhe me diagram, 2 panela të vogla me diagram, 14 kabllo kërcyes, 3 rezistencë 220 Ohms, 1 RGB LED, 3 çelsin e butonave, 1HB-SR04 Sensor tejzanor
Hapi 1: Zgjatja GPIO
Lidhni bordin e zgjerimit GPIO me tabelën e madhe të bukës. GPIO duhet të jetë përballë vertikalit ashtu siç është bordi i bukës. Caktoni anën e majtë të GPIO në portat e dërrasës D1-D20 duke përdorur diagramin e dhënë. Ana e djathtë atëherë do të lidhej me H1-H20. Lidhni kabllon me shirit si në Raspberry Pi 3 ashtu edhe në bordin e zgjerimit GPIO. I gjithë ky komponent tani do të quhet bordi GPIO (GPIO)
Hapi 2: Sensori tejzanor
Duke përdorur një tabelë tjetër më të vogël, lidhni sensorin tejzanor HR-SR04 me portat më të vegjël të pllakës së bukës A2-5 duke përdorur diagramin e dhënë. Lidhni një kabllo kërcyesi në tabelën më të vogël të bukës (BB) E2, futni skajin tjetër në portën e bordit të zgjerimit GPIO J1. Në të njëjtën mënyrë, lidhni tre kërcyes të tjerë në mënyrën e mëposhtme. (BB E3, GPIO B17) (BB E4, GPIO B18) (BB E5, GPIO B20)
Hapi 3: LED dhe Rezistorët
Në të njëjtën tabelë të vogël buke të përdorur në udhëzimin e mëparshëm, lidhni tre rezistorë 220 ohm në mënyrën e mëposhtme. (E10, H10) (E12, H12) (E14, H14) Pastaj lidhni një kërcyes nga e njëjta dërrasë buke E13 në shinën e energjisë tokësore në bordin GPIO. Lidhni katër prizat e ZHEL në portet më të vogla të bukës (B13) (D14) (D12) (D10). Pastaj lidhni tre kërcyes nga paneli më i vogël në tabelën GPIO sipas mënyrës së caktuar. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Kjo tabelë buke tani është e plotë.
Hapi 4: Tokë
Përdorni një bluzë tjetër për të lidhur bordin GPIO J7 me shinën e energjisë tokësore.
Hapi 5: Butonat
Duke përdorur tabelën e dytë të bukës vendosni pjesën e sipërme të një çelësi butoni në portën E1 dhe D1, vendosni një tjetër në E5 dhe D5 dhe një të tretë në E9 dhe D9. Lidhni tre kërcyes nga hekurudha e fuqisë pozitive në tabelën GPIO me portat e mëposhtme të bukës (D3) (D7) (D11). Duke përdorur tre kabllo të tjerë bluzë, lidhni tabelën e bukës me tabelën e zgjerimit GPIO në manorin e mëposhtëm: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Së fundi, duke përdorur kabllon e fundit të kërcyesit, lidhni GPIO A1 me shinën e fuqisë pozitive. Konfigurimi fizik tani ka përfunduar.
Hapi 6: Kodi
Lidhni kabllon Ethernet dhe kabllon e energjisë me Pi dhe në pozicionet e tyre përkatëse. Hapni MATLAB dhe ekzekutoni skriptin e mëposhtëm për të inicuar mikrokontrolluesin:
rpi = raspi ('169.254.0.2', 'pi', 'mjedër');
Pastaj kopjoni dhe ngjisni sa vijon në një skenar të ri, të quajtur Ping, për të drejtuar sistemin e parandalimit të përplasjes:
funksioni dist = ping () trig = 19; jehonë = 13; test = 21; configurePin (rpi, trig, 'DigitalOutput'); configurePin (rpi, echo, 'DigitalInput'); configurePin (rpi, test, 'DigitalInput');
disp ("Matja e distancës në progres");
ndërsa e vërtetë writeDigitalPin (rpi, trig, 0); disp ("Lëreni që sensori të vendoset"); pauzë (2);
writeDigitalPin (rpi, trig, 1); pauzë (0.002); writeDigitalPin (rpi, trig, 0);
ndërsa readDigitalPin (rpi, echo) == 0 tic fund
ndërsa readDigitalPin (rpi, echo) == 1 T = toc; fund
kohëzgjatja e pulsit = T; distanca = kohëzgjatja e pulsit * 17150;
hapur = "Distanca ="; mbyll = "cm"; string = [hapur, distancë, mbyllje]; disp (varg); dist = distancë; fund fund
Në një skenar të ri, ekzekutoni kodin e mëposhtëm të quajtur status:
configurePin (rpi, 21, 'DigitalInput'); configurePin (rpi, 16, 'DigitalInput'); configurePin (rpi, 12, 'DigitalInput');
statusi = 2; d = 10; %Statusi: 0-E kuqe/Ndalesa 1-Blu/E ngadaltë 2-E gjelbër/Shko = e vërtetë; gjatë drejtimit të %d = ping (); nëse lexohetDigitalPin (rpi, 21) == 1 status = 0; elseif readDigitalPin (rpi, 16) == 1 status = 1; elseif readDigitalPin (rpi, 12) == 1 status = 2; elseif d