Sommario:
- Passaggio 1: risorse
- Passaggio 2: capire come funziona il rilevamento a infrarossi (opzionale)
- Passaggio 3: assemblaggio dei LED IR
- Passaggio 4: test delle coppie a infrarossi - Circuito
- Passaggio 5: test delle coppie di infrarossi - Codice di base
- Passaggio 6: test delle coppie di infrarossi - Hardware + Software
- Passaggio 7: risoluzione dei problemi (per problemi con l'ultimo passaggio)
- Passaggio 8: seconda coppia IR
- Passaggio 9: rilevamento dell'interferenza a infrarossi (opzionale)
- Passaggio 10: aggiunta di più coppie IR
- Passaggio 11: cinque coppie IR - Circuito
- Passaggio 12: cinque coppie IR - Codice
Video: Boe-Bot con rilevatori di infrarossi: 12 passaggi (con immagini)
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
Questo tutorial dimostrerà come costruire e codificare un Boe-Bot in grado di navigare in un labirinto utilizzando rilevatori a infrarossi per evitare gli ostacoli. Questa è una guida facile da seguire che consente facili modifiche in base alle proprie esigenze. Ciò richiede una conoscenza di base dei circuiti e della programmazione. Avrai bisogno del software BASIC Stamp IDE per questo progetto. Gratuito per il download qui. Così come il robot Boe-Bot
Passaggio 1: risorse
Componenti elettronici
Boe-Bot con cavo di connessione Parallax Store - BoeBot Kit
5 LED a infrarossi Parallax Store - Kit di montaggio del trasmettitore IR
5 gruppi di schermi a infrarossi
5 rilevatori a infrarossi Parallax Store - Ricevitore IR BoeBot
resistori
- (2) 4,7 kΩ Elettronica ABRA - 4,7 kΩ
- (5) 220 Elettronica ABRA - 220
- (2) 1 kΩ Elettronica ABRA - 1 kΩ
- (5) Elettronica ABRA 2k - 2kΩ
Cablaggi assortiti ABRA Electronics - Cavo calibro 22
3 LED ABRA Electronics - LED rosso da 5 mm
Supporto
Computer
Editor del BASIC Stamp - (gratuito)
Utensili
Tagliafili ABRA Electronics - Tagliafili (opzionale)
Spelafili ABRA Electronics - Spelafili
Varie
Muri (per costruire labirinto)
Passaggio 2: capire come funziona il rilevamento a infrarossi (opzionale)
Fari Infrarossi
Il sistema di rilevamento di oggetti a infrarossi che costruiremo sul Boe-Bot è come i fari di un'auto sotto diversi aspetti. Quando la luce dei fari di un'auto riflette gli ostacoli, i tuoi occhi rilevano gli ostacoli e il tuo cervello li elabora e fa in modo che il tuo corpo guidi l'auto di conseguenza. Il Boe-Bot utilizzerà LED a infrarossi per i fari. Emettono infrarossi e, in alcuni casi, gli infrarossi si riflettono sugli oggetti e rimbalzano indietro nella direzione del Boe-Bot. Gli occhi del Boe-Bot sono i rilevatori di infrarossi. I rilevatori a infrarossi inviano segnali che indicano se rilevano o meno gli infrarossi riflessi da un oggetto. Il cervello del Boe-Bot, il BASIC Stamp, prende decisioni e aziona i servomotori in base a questo ingresso del sensore. Figura 7-1 Rilevamento di oggetti con fari IR I rilevatori IR hanno filtri ottici incorporati che consentono pochissima luce tranne l'infrarosso a 980 nm che vogliamo rilevare con il suo sensore a fotodiodo interno. Il rilevatore a infrarossi dispone anche di un filtro elettronico che consente il passaggio solo di segnali intorno a 38,5 kHz. In altre parole, il rilevatore cerca solo gli infrarossi che si accendono e si spengono 38.500 volte al secondo. Ciò impedisce l'interferenza IR da fonti comuni come la luce solare e l'illuminazione interna. La luce solare è un'interferenza CC (0 Hz) e l'illuminazione interna tende a lampeggiare a 100 o 120 Hz, a seconda della fonte di alimentazione principale nella regione. Poiché 120 Hz è al di fuori della frequenza di banda passante di 38,5 kHz del filtro elettronico, viene completamente ignorato dai rilevatori IR.
-Guida dello studente Paralax
Passaggio 3: assemblaggio dei LED IR
Inserire il LED IR nella parte più grande dell'involucro
Racchiudere la parte trasparente del LED con la parte più piccola dell'involucro
Passaggio 4: test delle coppie a infrarossi - Circuito
Prima di approfondire qualsiasi cosa, testeremo per assicurarci che la coppia IR funzioni (un LED a infrarossi e un rilevatore a infrarossi).
Inizia costruendo il circuito sopra sulla breadboard montata sopra il tuo Boe-Bot
Passaggio 5: test delle coppie di infrarossi - Codice di base
Ovviamente, dovremo scrivere il codice per far funzionare le nostre coppie IR
Per fare ciò, utilizzerà il comando FREQOUT. Questo comando è stato progettato per i toni audio, tuttavia può essere utilizzato per produrre frequenze nella gamma dell'infrarosso. Per questo test utilizzeremo il comando:
FREQUENZA 8, 1, 38500
questo invierà una frequenza di 38,5 kHz che dura 1 ms a P8. Il circuito LED a infrarossi collegato a P8 trasmetterà questa frequenza. Se la luce infrarossa viene riflessa al Boe-Bot da un oggetto sul suo percorso, il rivelatore di infrarossi invierà al BASIC Stamp un segnale per fargli sapere che la luce infrarossa riflessa è stata rilevata.
La chiave per far funzionare una coppia IR è inviare 1 ms di FREQOUT a 38,5 kHz e memorizzare immediatamente l'uscita del rilevatore IR in una variabile.
Questo esempio mostra la memorizzazione del valore del rilevatore IR in una variabile di bit denominata irDectectLeft
FREQUENZA 8, 1, 38500
irDetectLeft = IN9
Lo stato di uscita del rilevatore IR quando non rileva alcun segnale IR è alto. Quando il rilevatore IR vede l'armonica a 38500 Hz riflessa da un oggetto, la sua uscita è bassa. L'uscita del rilevatore IR rimane bassa solo per una frazione di millisecondo dopo che il comando FREQOUT ha terminato di inviare l'armonica, quindi è essenziale memorizzare l'uscita del rilevatore IR in una variabile subito dopo aver inviato il comando FREQOUT. Il valore memorizzato dalla variabile può quindi essere visualizzato nel Terminale di Debug o utilizzato per le decisioni di navigazione dal Boe-Bot.
Passaggio 6: test delle coppie di infrarossi - Hardware + Software
Ora che conosci le basi, possiamo mettere insieme l'hardware e il software per testare una coppia e ottenere un feedback in tempo reale da ciò che sta rilevando la coppia IR
Puoi provare a creare il codice da solo o utilizzare il codice qui sotto
' {$STAMP BS2}
' {$PBASIC 2.5} irDetectLeft VAR Bit DO FREQOUT 8, 1, 38500 irDetectLeft = IN9 DEBUG HOME, "irDetectLeft = ", BIN1 irDetectLeft PAUSE 100 LOOP
- Lascia il Boe-Bot collegato al cavo seriale, perché utilizzerai il Terminale DEBUG per testare la tua coppia IR.
- Posiziona un oggetto, come la tua mano o un foglio di carta, a circa un pollice dalla coppia IR sinistra
- Verificare che quando si posiziona un oggetto davanti alla coppia IR, il terminale di debug visualizza uno 0 e quando si rimuove l'oggetto davanti alla coppia IR, viene visualizzato un 1.
- Se il terminale di debug non visualizza i valori previsti, provare i passaggi nella fase di risoluzione dei problemi.
Passaggio 7: risoluzione dei problemi (per problemi con l'ultimo passaggio)
Terminale di DEBUG che mostra valori imprevisti
Controllare il circuito per cortocircuiti, connettori fuori posto o mancanti, componenti danneggiati, resistori errati o qualsiasi altro problema visibile
Controlla il programma da errori logici o di sintassi - Se hai utilizzato il tuo codice per l'ultimo passaggio, considera l'utilizzo del codice fornito
Prendendo sempre 0, anche quando non ci sono oggetti viene piazzato davanti al Boe-Bot
Controllare se ci sono oggetti vicini che riflettono il segnale a infrarossi. Il tavolo davanti al Boe-Bot potrebbe essere la causa. Spostate il Boe-Bot in uno spazio aperto in modo che il LED IR e il rilevatore non possano riflettersi su alcun oggetto vicino.
La lettura è 1 la maggior parte delle volte quando non ci sono oggetti davanti al Boe-Bot, ma lampeggia a 0 occasionalmente
Potrebbero esserci interferenze da una luce fluorescente vicina; Spegni le luci fluorescenti nelle vicinanze e ripeti i test. Se il problema persiste, il passaggio 9 potrebbe rivelare il problema
Passaggio 8: seconda coppia IR
Ora che hai il programma per l'IR sinistro, tocca a te creare il circuito e programmare la coppia IR destra
- Modificare l'istruzione DEBUG, il titolo e i commenti per fare riferimento alla coppia IR corretta.
- Modificare il nome della variabile da irDetectLeft a irDetectRight. Dovrai farlo in quattro punti del programma.
- Modificare l'argomento Pin del comando FREQOUT da 8 a 2.
- Modificare il registro di ingresso monitorato dalla variabile irDetectRight da IN9 a IN0.
- Ripetere i passaggi di test in questa attività per la coppia IR corretta; con circuito LED IR collegato a P2 e rivelatore collegato a P0.
Passaggio 9: rilevamento dell'interferenza a infrarossi (opzionale)
Sia che tu stia riscontrando problemi con il rilevamento di segnali che non dovrebbero essere rilevati o che tu abbia intenzione di dimostrare il tuo rilevamento IR in una posizione alternativa, potresti voler testare l'interferenza.
Il concetto di questo programma di test è piuttosto semplice, si rilevano segnali a infrarossi senza inviarne alcuno.
Puoi usare lo stesso identico circuito ma dovrai modificare il codice. puoi scegliere di scrivere il tuo codice, ma puoi utilizzare il codice fornito di seguito:
' {$STAMP BS2}
' {$PBASIC 2.5} irDetectLeft VAR Bit DO irDetectLeft = IN9 irDetectRight = IN0 IF IN9 = 0 OR IN0 = 0 THEN DEBUG "Rilevata interferenza" PAUSE 100 LOOP
Se si verificano interferenze, determinare la probabile fonte e spegnerla/rimuoverla o riposizionarsi dove si utilizza il Boe-Bot.
Passaggio 10: aggiunta di più coppie IR
Se desiderate una maggiore precisione nel movimento del vostro Boe-Bot, potreste voler aggiungere più Coppie IR. 3 Migliora notevolmente le prestazioni rispetto a due; puoi usare una coppia centrale per cercare un ostacolo diretto e usare due IR laterali per determinare quanto girare. Tuttavia, l'inconveniente del design a 3 coppie IR è che potresti sapere quando stai scivolando contro un muro, perché la coppia IR centrale viene utilizzata per rilevare gli ostacoli. Per risolvere questo problema, potete aggiungere una coppia IR ad ogni lato con un alto valore di resistenza, quindi il segnale infrarosso sarà rilevato solo se il Boe-Bot è vicino al lato o ad una parete con un'angolazione dolce.
Passaggio 11: cinque coppie IR - Circuito
Fare attenzione quando si dirigono i due LED IR sul lato poiché torcendoli può causare il contatto dei cavi e causare un cortocircuito.
Passaggio 12: cinque coppie IR - Codice
Potresti provare a programmare il tuo Boe-Bot prima di usare questo codice:
' {$STAMP BS2}' {$PBASIC 2.5} 'Codice di rilevamento di cinque coppie IR 'Matthew Shaw '8 maggio 2019 (versione 7) 'Rilevamento di oggetti ed elaborazione logica di base per risolvere labirinti
irDetectLeft VAR Bit 'Variabile per sinistra
irDetectCentre VAR Bit 'Variabile per il centro irDetectRight VAR Bit' Variabile per il lato destro irDetectLSide VAR Bit' Variabile per il lato sinistro irDetectRSide VAR Bit' Variabile per il lato destro irDetectLSideFar VAR Bit' Variabile per il lato sinistro a bassa resistenza irDetectRSideFarable VAR Bit per il destro a bassa resistenza'V
mlloop VAR Word
Lmotor PIN 15 'Il motore sinistro è collegato al pin 14, gli impulsi passano da qui
Rmotore PIN 14' destro = 15'
'le velocità sono -> 650-750-850
LFast CON 850 'Costante per motore sinistro a tutta velocità RFast CON 650 'Costante per motore destro a tutta velocità
LStop CON 750 'Costante per motore sinistro a tutta velocità
RStop CON 650 'Costante per motore destro a piena velocità
LMid CON 830 'Costante per motore sinistro a media velocità
RMid CON 700 'Costante per motore destro a media velocità
LSlow CON 770 'Costante per motore sinistro alla minima velocità
RSlow CON 730 'Costante per motore destro alla minima velocità
LRev CON 650 'Costante per motore sinistro a tutta velocità in retromarcia
RRev CON 850 'Costante per motore sinistro a tutta velocità in retromarcia
FREQOUT 7, 1, 38500 'lato sinistro
irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 3, 1, 38500 'lato destro
irDetectRight = IN2
FREQOUT 10, 1, 38500 'Sinistra Chiudi
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'destra Chiudi
irDetectRSide = IN0
FREQUENZA 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'lato destro
irDetectRSideFar = IN0
SE irDetectLSide = 0 AND irDetectRSide = 0 ALLORA COMANDO PRINCIPALE DI AVVIO muovi le mani oltre i due rilevatori laterali per avviare il programma
Principale:
PAUSA 1000 DO
PULSOUT Lmotor, Lfast 'il motore sinistro gira a piena velocità'
PULSOUT Rmotor, RFast 'Il motore destro gira a piena velocità
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQOUT 10, 1, 38500 'Sinistra Chiudi
irDetectLSide = IN11
FREQOUT 1, 1, 38500 'lato destro
irDetectRSide = IN0
SE irDetectLSide = 0 AND irDetectRSide = 1 ALLORA
DO PULSOUT Lmotore, LFast
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5 SE irDetectCentre = 0 ALLORA cent
FREQOUT 10, 1, 38500 'Sinistra Chiudi
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'lato destro
irDetectRight = IN2
LOOP FINO A irDetectLSide = 1 OPPURE irDetectRSide = 0
ELSEIF irDetectLSide = 1 AND irDetectRSide = 0 THEN
DO PULSOUT Rmotore, RFast
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5 SE irDetectCentre = 0 ALLORA cent
FREQOUT 10, 1, 38500 'Sinistra Chiudi
irDetectLSide = IN11
FREQOUT 3, 1, 38500 'lato destro
irDetectRight = IN2
LOOP FINO A irDetectLSide = 0 OPPURE irDetectRSide = 1
'FINISCI SE
SE irDetectCentre = 0 ALLORA 'START
FREQOUT 7, 1, 38500 'lato sinistro irDetectLeft = IN8
FREQOUT 6, 1, 38500 'centro
irDetectCentre = IN5
FREQUENZA 3, 1, 38500
irDetectRight = IN2
PAUSE 1000 'pausa per mostrare il segnale rilevato
IF (irDetectLeft = 1 AND irDetectRight = 0) THEN 'valuta la durata
GOSUB svolta a sinistra
ELSEIF (irDetectLeft = 0 AND irDetectRight = 1) THEN
GOSUB gira a destra
ELSEIF (irDetectLeft = 1 AND irDetectRight = 1) THEN
GOSUB turnDecide
ALTRO
GOSUB turnReverse
FINISCI SE
ENDIF 'END
CICLO CONTINUO
FINE
Girare a sinistra:
DO PULSOUT Lmotor, LRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP FINO A IN0 = 1 RETURN
Girare a destra:
DO PULSOUT Rmotor, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP FINO A IN9 = 1
RESTITUZIONE
girare in retromarcia:
FOR mLoop = da 0 A 50 PULSOUT Rmotore, RRev PULSOUT Lmotore, LRev PAUSA 20 PULSOUT Lmotore, LRev PAUSA 20 NEXT DO PULSOUT Rmotore, RRev FREQOUT 8, 1, 38500 irDetectLeft = IN9 FREQOUT 5, 1, 38500 irDetectCentre = IN4 FREQOUT 2, 1, 38500 irDetectRight = IN0 LOOP FINO A IN9 = 1
RESTITUZIONE
turnDecide: "usa una resistenza inferiore per vedere oltre"
FREQUENZA 9, 1, 38500
irDetectLSideFar = IN11
FREQOUT 4, 1, 38500 'lato destro
irDetectRSideFar = IN0
IF (irDetectLSideFar = 1 AND irDetectRSideFar = 0) THEN ' valuta la durata
GOSUB svolta a sinistra
ELSEIF (irDetectLSideFar = 0 AND irDetectRSideFar = 1) THEN
GOSUB gira a destra
ELSEIF (irDetectLSideFar = 1 AND irDetectRSideFar = 1) THEN
GOSUB svolta a sinistra
ALTRO
GOSUB turnReverse
FINISCI SE
RESTITUZIONE
Consigliato:
Come realizzare un sacco di rilevatori di fumo/alcol e allarmi antincendio con NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: 7 passaggi
Come realizzare un sacco di rilevatori di fumo/alcol e allarmi antincendio con NodeMCU ESP8266 Blynk DHT11, MQ-2, MQ-3: maggiori dettagli puoi guardare il mio video su Youtube
Utilizzo del sensore a infrarossi con Arduino: 8 passaggi (con immagini)
Utilizzo del sensore a infrarossi con Arduino: cos'è un sensore a infrarossi (noto anche come IR)? Un sensore IR è uno strumento elettronico che esegue la scansione dei segnali IR in intervalli di frequenza specifici definiti dagli standard e li converte in segnali elettrici sul suo pin di uscita (tipicamente chiamato pin di segnale) . Il segnale IR
Avvisi push Arduino per campanello, antifurto, rilevatori di fumo ecc: 8 passaggi
Avvisi push Arduino per campanello, allarme antifurto, rilevatori di fumo ecc.: Notifiche IoT dal tuo campanello, allarme antifurto, rilevatori di fumo ecc. utilizzando un Arduino Uno e uno scudo Ethernet. Tutti i dettagli sul mio sito Web qui Informazioni su Arduino Push Alert Box Utilizza un Arduino Uno ed Ethernet Shield basato sul chip Wiznet W5100 per
Termometro a infrarossi senza contatto basato su Arduino - Termometro a infrarossi con Arduino: 4 passaggi
Termometro a infrarossi senza contatto basato su Arduino | Termometro a infrarossi con Arduino: Ciao ragazzi in questo tutorial faremo un termometro senza contatto usando arduino. Poiché a volte la temperatura del liquido/solido è troppo alta o troppo bassa e quindi è difficile entrare in contatto con esso e leggerlo temperatura poi in quella scena
Tag laser a infrarossi con Raspberry Pi Zero: 6 passaggi (con immagini)
Tag laser a infrarossi con Raspberry Pi Zero: questo Instructable illustrerà il processo per la creazione di un gioco di tag laser a infrarossi utilizzando un computer server di base e un Raspberry Pi zero per ogni giocatore. Il progetto si basa molto su una connessione Wifi per comunicare con il server che rende