Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Ta instrukcja zawiera przewodnik krok po kroku dotyczący budowy systemu zapobiegania kolizjom. Aby rozpocząć należy zaopatrzyć się w następującą listę materiałów:
Raspberry PI 3 (z akordami zasilania i Ethernet), 1 płytka rozszerzająca GPIO i kabel taśmowy (GPIO), 1 duża płytka stykowa ze schematem, 2 małe płytki stykowe ze schematem, 14 kabli połączeniowych, 3 rezystory 220 Ohm, 1 dioda LED RGB, 3 przyciski przełączników, Czujnik ultradźwiękowy 1HB-SR04
Krok 1: Rozszerzenie GPIO
Podłącz kartę rozszerzeń GPIO do dużej płytki stykowej. GPIO powinno być skierowane pionowo, tak jak płytka stykowa. Przypisz lewą stronę GPIO do portów płytki stykowej D1-D20, korzystając z dostarczonego schematu. Prawa strona połączyłaby się wtedy z H1-H20. Podłącz kabel taśmowy zarówno do Raspberry Pi 3, jak i do karty rozszerzeń GPIO. Cały ten komponent będzie teraz nazywany płytą GPIO (GPIO)
Krok 2: Czujnik ultradźwiękowy
Korzystając z innej mniejszej płytki stykowej, podłącz czujnik ultradźwiękowy HR-SR04 do mniejszych portów płytki stykowej A2-5, korzystając z dostarczonego schematu. Podłącz kabel połączeniowy do mniejszej płytki stykowej (BB) E2, włóż drugi koniec do portu J1 płyty rozszerzeń GPIO. W ten sam sposób połącz jeszcze trzy zworki w następujący sposób. (BB E3, GPIO B17) (BB E4, GPIO B18)(BB E5, GPIO B20)
Krok 3: LED i rezystory
Na tej samej małej płytce stykowej użytej w poprzedniej instrukcji podłącz trzy rezystory 220 omów w następujący sposób. (E10, H10)(E12, H12)(E14, H14) Następnie podłącz zworkę z tej samej płytki stykowej E13 do szyny uziemiającej na płycie GPIO. Podłącz cztery wtyki diody LED do mniejszych portów płytki stykowej (B13)(D14)(D12)(D10). Następnie połącz trzy zworki z mniejszej płytki stykowej do płytki GPIO w przypisany sposób. (BB J10, GPIO J9) (BB J12, GPIO J8) (BB J14, GPIO J6). Ta tablica prototypowa jest teraz gotowa.
Krok 4: Ziemia
Użyj innej zworki, aby podłączyć płytkę GPIO J7 do uziemionej szyny zasilającej.
Krok 5: Przyciski
Używając drugiej płytki stykowej umieść górną część przełącznika przyciskowego na portach E1 i D1, umieść kolejny na E5 i D5, a trzeci na E9 i D9. Podłącz trzy zworki z dodatniej szyny zasilania na płycie GPIO do następujących portów płytki stykowej (D3) (D7) (D11). Za pomocą trzech dodatkowych kabli połączeniowych podłącz płytkę stykową do płytki rozszerzeń GPIO w następującej rezydencji: (BB D1, GPIO J16) (BB D5, GPIO J18) (BB D9, GPIO J20). Na koniec, używając ostatniego kabla połączeniowego, podłącz GPIO A1 do dodatniej szyny zasilającej. Konfiguracja fizyczna została zakończona.
Krok 6: Kod
Podłącz kabel Ethernet i kabel zasilający do Pi i do odpowiednich pozycji. Otwórz MATLAB i uruchom następujący skrypt, aby zainicjować mikrokontroler:
rpi = raspi('169.254.0.2', 'pi', 'malina');
Następnie skopiuj i wklej następujące elementy do nowego skryptu o nazwie Ping, aby uruchomić system zapobiegania kolizjom:
funkcja dist = ping() trig = 19; echo = 13; test = 21; configurePin(rpi, trig, 'DigitalOutput'); configurePin(rpi, echo, 'DigitalInput'); configurePin(rpi, test, 'DigitalInput');
disp("Pomiar odległości w toku");
podczas gdy true writeDigitalPin(rpi, trig, 0); disp("Pozwalanie czujnikowi na ustabilizowanie się"); pauza(2);
writeDigitalPin(rpi, trig, 1); pauza (0,002); writeDigitalPin(rpi, trig, 0);
while readDigitalPin(rpi, echo) == 0 tic end
podczas gdy readDigitalPin(rpi, echo) == 1 T = toc; kończyć się
czas_impulsu = T; odległość = czas_impulsu * 17150;
open = "Odległość= "; zamknij = " cm"; string = [otwarty, odległość, zamknięty]; disp(ciąg); odległość = odległość; koniec koniec
W nowym skrypcie uruchom następujący kod o nazwie status:
configurePin(rpi, 21, 'DigitalInput');configurePin(rpi, 16, 'DigitalInput'); configurePin(rpi, 12, 'DigitalInput');
stan = 2; d = 10; %Stan: 0-Czerwony/Zatrzymaj 1-Niebieski/Wolny 2-Zielony/Rozpocznij bieg = prawda; podczas działania %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