Spisu treści:

Boe-Bot z detektorami podczerwieni: 12 kroków (ze zdjęciami)
Boe-Bot z detektorami podczerwieni: 12 kroków (ze zdjęciami)

Wideo: Boe-Bot z detektorami podczerwieni: 12 kroków (ze zdjęciami)

Wideo: Boe-Bot z detektorami podczerwieni: 12 kroków (ze zdjęciami)
Wideo: Pełna recenzja Club Hotel Phaselis Rose 5* Tekirova Türkiye 2024, Lipiec
Anonim
Boe-Bot z detektorami podczerwieni
Boe-Bot z detektorami podczerwieni

Ta instrukcja pokaże, jak zbudować i zakodować Boe-Bota, który może poruszać się po labiryncie za pomocą detektorów podczerwieni, aby omijać przeszkody. Jest to łatwy do naśladowania przewodnik, który pozwala na łatwe modyfikacje dostosowane do Twoich potrzeb. Wymaga to podstawowej wiedzy na temat obwodów i programowania. Do tego projektu potrzebne będzie oprogramowanie BASIC Stamp IDE. Bezpłatnie do pobrania tutaj. Jak również robot Boe-Bot

Krok 1: Zasoby

Części elektroniczne

Boe-Bot z kablem połączeniowym Parallax Store - BoeBot Kit

5 Parallax Store LED na podczerwień - zestaw montażowy nadajnika IR

5 zestawów osłon na podczerwień

5 detektorów podczerwieni Parallax Store - BoeBot IR Receiver

Rezystory

  • (2) 4,7 kΩ Elektronika ABRA - 4,7 kΩ
  • (5) 220 Ω Elektronika ABRA - 220 Ω
  • (2) 1 kΩ Elektronika ABRA - 1 kΩ
  • (5) Elektronika 2 k ABRA - 2 kΩ

Różne okablowanie ABRA Electronics - przewód o przekroju 22

Elektronika ABRA 3 LED - 5mm czerwona dioda LED

Wsparcie

Komputer

BASIC Edytor stempli - (Darmowy)

Narzędzia

Przecinak do drutu ABRA Electronics - przecinak do drutu (opcja)

Ściągacz izolacji ABRA Electronics - Ściągacz izolacji

Różne

Ściany (do budowy labiryntu)

Krok 2: Zrozumienie, jak działa wykrywanie podczerwieni (opcjonalnie)

Zrozumienie, jak działa wykrywanie w podczerwieni (opcjonalnie)
Zrozumienie, jak działa wykrywanie w podczerwieni (opcjonalnie)

Reflektory na podczerwień

System wykrywania obiektów na podczerwień, który zbudujemy na Boe-Bocie, pod wieloma względami przypomina reflektory samochodu. Kiedy światło reflektorów samochodu odbija się od przeszkód, twoje oczy wykrywają przeszkody, a mózg je przetwarza i sprawia, że twoje ciało odpowiednio prowadzi samochód. Boe-Bot użyje diod LED na podczerwień do reflektorów. Emitują podczerwień, a w niektórych przypadkach podczerwień odbija się od obiektów i odbija z powrotem w kierunku Boe-Bota. Oczy Boe-Bota to detektory podczerwieni. Detektory podczerwieni wysyłają sygnały wskazujące, czy wykrywają podczerwień odbitą od obiektu. Mózg Boe-Bota, BASIC Stamp, podejmuje decyzje i obsługuje serwomotory w oparciu o dane wejściowe czujnika. Rysunek 7-1 Wykrywanie obiektów za pomocą reflektorów IR Detektory IR mają wbudowane filtry optyczne, które przepuszczają bardzo mało światła, z wyjątkiem podczerwieni 980 nm, którą chcemy wykryć za pomocą wewnętrznego czujnika fotodiodowego. Detektor podczerwieni ma również filtr elektroniczny, który przepuszcza tylko sygnały o częstotliwości około 38,5 kHz. Innymi słowy, wykrywacz szuka tylko podczerwieni, która włącza się i wyłącza 38 500 razy na sekundę. Zapobiega to zakłóceniom podczerwieni z popularnych źródeł, takich jak światło słoneczne i oświetlenie wewnętrzne. Światło słoneczne to interferencja prądu stałego (0 Hz), a oświetlenie wewnętrzne ma tendencję do włączania i wyłączania z częstotliwością 100 lub 120 Hz, w zależności od głównego źródła zasilania w regionie. Ponieważ 120 Hz znajduje się poza częstotliwością przepustową filtra elektronicznego 38,5 kHz, jest całkowicie ignorowane przez detektory IR.

-Przewodnik dla studentów Paralax

Krok 3: Montaż diod LED IR

Montaż diod LED IR
Montaż diod LED IR

Włóż diodę IR do większej części obudowy

Zamknąć przezroczystą część diody LED mniejszą częścią obudowy

Krok 4: Testowanie par podczerwieni - obwód

Testowanie par podczerwieni - obwód
Testowanie par podczerwieni - obwód
Testowanie par podczerwieni - obwód
Testowanie par podczerwieni - obwód

Zanim zagłębimy się w cokolwiek, przetestujemy, aby upewnić się, że para podczerwieni działa (jedna dioda podczerwieni i jeden detektor podczerwieni).

Zacznij od zbudowania powyższego obwodu na płytce stykowej zamontowanej na górze Boe-Bota

Krok 5: Testowanie par podczerwieni - kod podstawowy

Oczywiście będziemy musieli napisać kod, aby nasze pary IR działały

W tym celu użyje polecenia FREQOUT. To polecenie zostało zaprojektowane dla tonów audio, jednak może być użyte do wytwarzania częstotliwości w zakresie podczerwieni. Do tego testu użyjemy polecenia:

CZĘSTOTLIWOŚĆ 8, 1, 38500

to wyśle do P8 częstotliwość 38,5 kHz, która trwa 1 ms. Obwód diody podczerwieni podłączony do P8 będzie nadawał tę częstotliwość. Jeśli światło podczerwone zostanie odbite z powrotem do Boe-Bota przez obiekt na jego drodze, detektor podczerwieni wyśle sygnał BASIC Stamp, aby poinformować go, że odbite światło podczerwone zostało wykryte.

Kluczem do działania pary IR jest wysłanie 1 ms częstotliwości 38,5 kHz FREQOUT i natychmiastowe zapisanie wyjścia detektora IR w zmiennej.

Ten przykład pokazuje przechowywanie wartości detektora IR w zmiennej bitowej o nazwie irDectectLeft

CZĘSTOTLIWOŚĆ 8, 1, 38500

irDetectLeft = IN9

Stan wyjścia detektora podczerwieni, gdy nie widzi sygnału podczerwieni, jest wysoki. Gdy detektor podczerwieni widzi harmoniczną 38500 Hz odbitą przez obiekt, jego moc wyjściowa jest niska. Sygnał wyjściowy detektora IR pozostaje niski tylko przez ułamek milisekundy po zakończeniu polecenia FREQOUT, wysyłając harmoniczną, dlatego ważne jest, aby zapisać sygnał wyjściowy detektora IR w zmiennej natychmiast po wysłaniu polecenia FREQOUT. Wartość przechowywana przez zmienną może być następnie wyświetlana w terminalu debugowania lub wykorzystywana do decyzji nawigacyjnych przez Boe-Bota.

Krok 6: Testowanie par podczerwieni - sprzęt + oprogramowanie

Testowanie par podczerwieni - sprzęt + oprogramowanie
Testowanie par podczerwieni - sprzęt + oprogramowanie

Teraz, gdy znasz już podstawy, możemy połączyć sprzęt i oprogramowanie, aby przetestować parę razem i uzyskać informacje zwrotne w czasie rzeczywistym na temat tego, co wykrywa para podczerwieni

Możesz spróbować zrobić kod samodzielnie lub skorzystać z poniższego kodu

' {$STAMP BS2}

' {$PBASIC 2.5} irDetectLeft Bit VAR DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft = ", BIN1 irDetectLeft PAUZA 100 PĘTLA

  1. Pozostaw Boe-Bot podłączony do kabla szeregowego, ponieważ będziesz używać terminala DEBUG do testowania pary IR.
  2. Umieść przedmiot, taki jak dłoń lub kartka papieru, około cala od lewej pary podczerwieni
  3. Sprawdź, czy po umieszczeniu obiektu przed parą podczerwieni terminal debugowania wyświetla 0, a po usunięciu obiektu przed parą podczerwieni wyświetla 1.
  4. Jeśli terminal debugowania nie wyświetla oczekiwanych wartości, wypróbuj kroki opisane w kroku Rozwiązywanie problemów.

Krok 7: Rozwiązywanie problemów (w przypadku problemów z ostatnim krokiem)

DEBUG Terminal wyświetla nieoczekiwane wartości

Sprawdź obwód pod kątem zwarć, zagubionych lub brakujących złączy, uszkodzonych komponentów, nieprawidłowych rezystorów lub innych widocznych problemów

Sprawdź program pod kątem błędów logicznych lub składniowych - Jeśli w ostatnim kroku użyłeś własnego kodu, rozważ użycie dostarczonego kodu

Zawsze otrzymuje 0, nawet jeśli przed Boe-Botem nie ma żadnych przedmiotów

Sprawdź, czy w pobliżu znajdują się jakieś obiekty, które odbijają sygnał podczerwony. Przyczyną mógł być stół przed Boe-Botem. Przenieś Boe-Bota na otwartą przestrzeń, aby dioda podczerwieni i detektor nie odbijały się od pobliskich obiektów.

Odczyt wynosi 1 w większości przypadków, gdy przed Boe-botem nie ma żadnego obiektu, ale czasami miga do 0

Mogą występować zakłócenia pochodzące z pobliskiego światła fluorescencyjnego; Wyłącz wszystkie znajdujące się w pobliżu lampy fluorescencyjne i powtórz testy. Jeśli problem będzie się powtarzał, krok 9 może go ujawnić

Krok 8: Druga para IR

Druga para IR
Druga para IR

Teraz, gdy masz już program dla lewego IR, twoja kolej, aby utworzyć obwód i zaprogramować prawą parę IR

  1. Zmień deklarację DEBUG, tytuł i komentarze, aby odnosiły się do właściwej pary IR.
  2. Zmień nazwę zmiennej z irDetectLeft na irDetectRight. Musisz to zrobić w czterech miejscach programu.
  3. Zmień argument Pin polecenia FREQOUT z 8 na 2.
  4. Zmień rejestr wejściowy monitorowany przez zmienną irDetectRight z IN9 na IN0.
  5. Powtórz kroki testowe w tym ćwiczeniu dla właściwej pary IR; z obwodem diody IR podłączonym do P2 i czujką podłączoną do P0.

Krok 9: Wykrywanie zakłóceń podczerwieni (opcjonalnie)

Wykrywanie zakłóceń podczerwieni (opcjonalnie)
Wykrywanie zakłóceń podczerwieni (opcjonalnie)

Niezależnie od tego, czy masz problemy z wykrywaniem sygnałów, które nie powinny być wykrywane, czy też planujesz zademonstrować wykrywanie podczerwienią w innej lokalizacji, możesz chcieć przetestować pod kątem zakłóceń.

Koncepcja tego programu testującego jest dość prosta, wykrywasz sygnały w podczerwieni bez wysyłania ich.

Możesz użyć dokładnie tego samego obwodu, ale będziesz musiał zmienić kod. możesz napisać własny kod, ale możesz użyć kodu podanego poniżej:

' {$STAMP BS2}

' {$PBASIC 2.5} Bit VAR irDetectLeft DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 LUB IN0 = 0 TO DEBUG „Wykryto zakłócenia” PRZERWA 100 PĘTLA

Jeśli wystąpią zakłócenia, określ prawdopodobne źródło i wyłącz je/usuń lub przenieś miejsce, w którym obsługujesz Boe-Bota.

Krok 10: Dodawanie większej liczby par IR

Dodawanie większej liczby par IR
Dodawanie większej liczby par IR

Jeśli potrzebujesz większej dokładności ruchu Boe-Bota, możesz dodać więcej par IR. 3 Znacznie poprawia wydajność w porównaniu do dwóch; możesz użyć pary środkowej, aby wyszukać bezpośrednią przeszkodę i użyć dwóch bocznych czujników podczerwieni, aby określić, o ile skręcić. Jednak wadą konstrukcji 3 par podczerwieni jest to, że możesz wiedzieć, kiedy ślizgasz się po ścianie, ponieważ środkowa para podczerwieni służy do wykrywania przeszkód. Aby rozwiązać ten problem, możesz dodać parę IR z każdej strony o wysokiej wartości rezystancji - dlatego sygnał podczerwieni zostanie wykryty tylko wtedy, gdy Boe-Bot znajduje się blisko boku lub ściany pod łagodnym kątem.

Krok 11: Pięć par IR - obwód

Pięć par IR - obwód
Pięć par IR - obwód

Zachowaj ostrożność, kierując dwie diody podczerwieni na bok, ponieważ ich skręcenie może spowodować zetknięcie się przewodów i zwarcie.

Krok 12: Pięć par IR - kod

Pięć par IR - kod
Pięć par IR - kod

Możesz spróbować zaprogramować Boe-Bota przed użyciem tego kodu:

' {$STAMP BS2}' {$PBASIC 2.5} 'Kod wykrywania pięciu par IR 'Matthew Shaw '8 maja 2019 (wersja 7) 'Wykrywanie obiektów i podstawowe przetwarzanie logiczne w celu rozwiązania labiryntów

irDetectLeft VAR Bit „Zmienna dla lewej”

irDetectCentre VAR Bit 'Zmienna dla środka irDetectRight Bit VAR 'Zmienna dla prawej strony irDetectLSide VAR Bit 'Zmienna dla lewej strony irDetectRSide VAR Bit 'Zmienna dla prawej strony irDetectLSideFar Bit 'Zmienna dla lewej strony niska rezystancja irDetectRSideFar VAR dla prawej strony 'Zmienna

mLoop VAR słowo

Lmotor PIN 15 „Lewy silnik jest podłączony do pinu 14, impulsy przechodzą tutaj”

Rmotor PIN 14 'prawo = 15

'prędkości są -> 650-750-850

LFast CON 850 „Stała dla lewego silnika przy pełnej prędkości RFast CON 650 „Stała dla prawego silnika przy pełnej prędkości

LStop CON 750 „Stała dla lewego silnika przy pełnej prędkości”

RSstop CON 650 „Stała dla prawego silnika przy pełnej prędkości”

LMid CON 830 „Stała dla lewego silnika przy średniej prędkości”

RMid CON 700 „Stała dla prawego silnika przy średniej prędkości”

LSlow CON 770 'Stała dla lewego silnika przy minimalnej prędkości

RSlow CON 730 „Stała dla prawego silnika przy minimalnej prędkości”

LRev CON 650 „Stała dla lewego silnika przy pełnej prędkości na biegu wstecznym”

RRev CON 850 „Stała dla lewego silnika przy pełnej prędkości na biegu wstecznym”

FREQOUT 7, 1, 38500 „lewa strona”

irDetectLeft = IN8

FREQOUT 6, 1, 38500 „centrum”

irDetectCentre = IN5

FREQOUT 3, 1, 38500 „prawa strona”

irDetectPrawo = IN2

FREQOUT 10, 1, 38500 „Zamknij w lewo”

irDetectLSside = IN11

FREQOUT 1, 1, 38500 „prawo Zamknij”

irDetectRSside = IN0

CZĘSTOTLIWOŚĆ 9, 1, 38500

irDetectLSsideFar = IN11

FREQOUT 4, 1, 38500 „prawa strona”

irDetectRSsideFar = IN0

JEŚLI irDetectLSide = 0 AND irDetectRSide = 0 TO główne POLECENIE URUCHAMIANIA machnij rękami obok dwóch bocznych detektorów, aby uruchomić program

Główny:

WSTRZYMAJ 1000 ZROBIĆ

PULSOUT Lmotor, LFast „lewy silnik pracuje z pełną prędkością”

Silnik PULSOUT, RFast „Prawy silnik pracuje z pełną prędkością”

FREQOUT 6, 1, 38500 „centrum”

irDetectCentre = IN5

FREQOUT 10, 1, 38500 „Zamknij w lewo”

irDetectLSside = IN11

FREQOUT 1, 1, 38500 „prawa strona”

irDetectRSside = IN0

JEŚLI irDetectLSide = 0 ORAZ irDetectRSide = 1 TO

DO PULSOUT Lsilnik, LFast

FREQOUT 6, 1, 38500 „centrum”

irDetectCentre = IN5 JEŻELI irDetectCentre = 0 TO cent

FREQOUT 10, 1, 38500 „Zamknij w lewo”

irDetectLSside = IN11

FREQOUT 3, 1, 38500 „prawa strona”

irDetectPrawo = IN2

PĘTLA DO irDetectLSide = 1 LUB irDetectRSide = 0

ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 THEN

DO Rmotor PULSOUT, RFast

FREQOUT 6, 1, 38500 „centrum”

irDetectCentre = IN5 JEŻELI irDetectCentre = 0 TO cent

FREQOUT 10, 1, 38500 „Zamknij w lewo”

irDetectLSside = IN11

FREQOUT 3, 1, 38500 „prawa strona”

irDetectPrawo = IN2

PĘTLA DO irDetectLSide = 0 LUB irDetectRSide = 1

„ENDIF”

JEŚLI irDetectCentre = 0 TO 'START

FREQOUT 7, 1, 38500 „lewa strona irDetectLeft = IN8”

FREQOUT 6, 1, 38500 „centrum”

irDetectCentre = IN5

CZĘSTOTLIWOŚĆ 3, 1, 38500

irDetectPrawo = IN2

PAUZA 1000 „pauza, aby pokazać wykryty sygnał”

IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'ocenić czas trwania

GOSUB skręt w lewo

ELSEIF (irDetectLeft = 0 ORAZ irDetectRight = 1) THEN

GOSUB skręt w prawo

ELSEIF (irDetectLeft = 1 ORAZ irDetectRight = 1) THEN

GOSUB turnZdecyduj

W PRZECIWNYM RAZIE

GOSUB turnReverse

ENDIF

ENDIF 'END

PĘTLA

KOŃCZYĆ SIĘ

Skręć w lewo:

DO PULSOUT Lmotor, LRev CZĘSTOTLIWOŚĆ 8, 1, 38500 irDetectLeft = IN9 CZĘSTOTLIWOŚĆ 5, 1, 38500 irDetectCentre = IN4 CZĘSTOTLIWOŚĆ 2, 1, 38500 irDetectRight = IN0 PĘTLA DO IN0 = 1 POWRÓT

Skręć w prawo:

DO PULSOUT Rmotor, RRev CZĘSTOTLIWOŚĆ 8, 1, 38500 irDetectLeft = WE9 CZĘSTOTLIWOŚĆ 5, 1, 38500 irDetectCentre = WE4 CZĘSTOTLIWOŚĆ 2, 1, 38500 irDetectRight = WE0 PĘTLA DO WE9 = 1

POWRÓT

TurnReverse:

FOR mLoop = 0 do 50 PULSOUT Rmotor, RRev PULSOUT Lmotor, LRev PAUSE 20 PULSOUT Lmotor, LRev PAUSE 20 NEXT DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = PĘTLA IN0 DO IN9 = 1

POWRÓT

turnDecide: 'wykorzystuje mniejszy opór, aby widzieć dalej

CZĘSTOTLIWOŚĆ 9, 1, 38500

irDetectLSsideFar = IN11

FREQOUT 4, 1, 38500 „prawa strona”

irDetectRSsideFar = IN0

IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN ' ocenia czas trwania

GOSUB skręt w lewo

ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) THEN

GOSUB skręt w prawo

ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) THEN

GOSUB skręt w lewo

W PRZECIWNYM RAZIE

GOSUB turnReverse

ENDIF

POWRÓT

Zalecana: