Sommario:

Progetto 3: SonarDuino: 9 passaggi
Progetto 3: SonarDuino: 9 passaggi

Video: Progetto 3: SonarDuino: 9 passaggi

Video: Progetto 3: SonarDuino: 9 passaggi
Video: Life In A Day 2010 Film 2024, Settembre
Anonim
Image
Image

Caro amico hobbista, In questo progetto esploreremo la possibilità di avere un sistema radar a 360 gradi per il rilevamento degli oggetti. Avere questo modulo impostato separatamente consentirà al tuo robot di locomozione di rilevare i confini dell'ambiente circostante. Può anche servire come strumento di navigazione al buio, ma solo quando cammini abbastanza lentamente;p

Passaggio 1: cosa ti servirà

Preparare il supporto del sensore a ultrasuoni
Preparare il supporto del sensore a ultrasuoni

Per realizzare questa build dovrai acquistare quanto segue:

Arduino Nano:

Schede di prototipazione: https://www.ebay.com/itm/20pcs-set-4Size-Double-Side-Protoboard-Circuit-Universal-DIY-Prototype-PCB-Board/192076517108?epid=506557101&hash=item2cb8a70ef4:g:cQ4AAOSwN ~Zbl232:rk:13:pf:0

Servomotori:

Sensori a ultrasuoni: https://www.ebay.com/itm/5PCS-Ultrasonic-Sensor-Module-HC-SR04-Distance-Measuring-Sensor-for-arduino-SR04/170897438205?epid=18020663283&hash=item27ca47f5fd:g:w ~IAAOSw--xbD5Fp:rk:2:pf:0

Passaggio 2: documentazione

Come alcuni di voi potrebbero già sapere, questo progetto è ispirato da un altro progetto open source chiamato "Arduino Radar Project" realizzato da Dejan da "How to Mechatronics" al seguente link: https://howtomechatronics.com/projects/arduino -progetto-radar/

Un altro punto che richiede documentazione è scaricare le seguenti due librerie nel tuo ambiente di sviluppo:

Adafruit-GFX-Library:

Adafruit_SSD1306:

Detto questo, per capire veramente il codice C dovrai documentare entrambe le librerie di cui sopra. Oltre a ciò, le funzioni che ho usato nel mio codice hanno nomi che rivelano ciò che fanno.

Passaggio 3: preparare il supporto del sensore a ultrasuoni

Preparare il supporto del sensore a ultrasuoni
Preparare il supporto del sensore a ultrasuoni
Preparare il supporto del sensore a ultrasuoni
Preparare il supporto del sensore a ultrasuoni
Preparare il supporto del sensore a ultrasuoni
Preparare il supporto del sensore a ultrasuoni

Prendere un qualsiasi pezzo di cartone e tagliarlo secondo la dimensione dei cavi di collegamento attaccati al sensore come mostrato nella prima immagine. Dopodiché, piega quest'ultimo e incollalo al supporto del servomotore. Fatto ciò, incollare i due sensori a ultrasuoni secondo l'ultima immagine. Si noti che l'intestazione dei sensori deve essere saldata in modo da far uscire i cavi davanti al sensore. Ciò consentirà ai cavi del sensore di non interferire l'uno con l'altro quando viene implementata la rotazione di 360 gradi.

Passaggio 4: montare tutto in una scheda di prototipazione

Montare tutto in una scheda di prototipazione
Montare tutto in una scheda di prototipazione
Montare tutto in una scheda di prototipazione
Montare tutto in una scheda di prototipazione
Montare tutto in una scheda di prototipazione
Montare tutto in una scheda di prototipazione

In questo passaggio inizierai montando la testata preparata nel passaggio precedente nel rispettivo servomotore. Una volta che il servomotore è stato accuratamente abituato, monterai tutto insieme in una scheda di prototipazione. Inizierai saldando l'Arduino Nano, quindi incollando il servo proprio accanto ad esso. Infine salderai il piccolo display OLED all'altro bordo della scheda.

Passaggio 5: effettuare i collegamenti finali

Fare i collegamenti finali
Fare i collegamenti finali
Fare i collegamenti finali
Fare i collegamenti finali
Fare i collegamenti finali
Fare i collegamenti finali

Questo passaggio concluderà il lato hardware di questo progetto. Sarà necessario seguire gli schemi forniti per stabilire tutte le connessioni richieste.

Passaggio 6: avvio del programma

Avvio del programma
Avvio del programma

Ci sono due codici che dovrai avviare

Arduino (C):

Elaborazione (java):

Quando esegui il codice, avrai due opzioni tra cui scegliere:

Opzione 1: utilizzando il display OLED, per questo sarà necessario impostare la variabile MODE nel codice C su 0.

Opzione 2: utilizzando il monitor, per questo sarà necessario impostare la variabile MODE nel codice C su 1. Inoltre, sarà necessario scaricare e installare l'ambiente di sviluppo Processing e scaricare il carattere radar da questo link: https:// github.com/lastralab/ArduinoRadar/blob/ma…

E aggiungi quel file al tuo file di codice di elaborazione in modo che il tuo codice java riconosca il carattere quando viene chiamato.

Passaggio 7: comprensione del codice C

Comprensione del codice C
Comprensione del codice C

Il codice consiste principalmente di due cicli "for". Uno è correlato con il passaggio in avanti mentre l'altro è con il passaggio all'indietro. All'interno di entrambi, la funzione principale draw_scanner(), che disegnerà le linee del radar sullo schermo, viene chiamata molte volte. Dopo aver testato più configurazioni, sono giunto alla conclusione che dobbiamo sovrascrivere le linee radar bianche al tempo t con quelle stesse linee radar in nero al tempo t+1 per eliminarle. In caso contrario, si verificherebbe uno sfarfallio ogni volta che si pulisce il display utilizzando la funzione "clearDisplay()" prima di spingere la nuova griglia di pixel. Dato che avevo a che fare con 7 linee, per motivi di progettazione, ho dovuto continuare a salvare e passare un array intero di 7 elementi, in cui ogni elemento rappresenta il raggio tra il centro del radar e l'oggetto rilevato, se presente. Con questo in mente, il resto del codice dovrebbe essere semplice da capire.

Passaggio 8: comprensione del codice Java

In Processing, ho dovuto ignorare la chiamata di funzione per serialEvent(), che funziona solo con porte seriali denominate COM. Mentre stavo lavorando su un Mac, le mie porte seriali avevano un nome diverso. Detto questo, ho scompattato quella funzione nella funzione principale nell'elaborazione di "draw()". Per quanto riguarda tutto il resto, ho aggiornato l'applicazione per soddisfare il design completamente rivoluzionario. Infine, ho aggiornato tutte le forme e i testi disegnati rispetto alla larghezza dello schermo in modo che il prodotto finale si adatti a diverse risoluzioni dello schermo. L'ho testato personalmente per entrambe le risoluzioni 1000X1000 e 500X500 e ha funzionato bene:).

Passaggio 9: conclusione

Questo lavoro può essere aggiornato per avere 3 sensori a ultrasuoni, ciascuno che copre 120 angoli di visuale, o anche 4 sensori (90 gradi * 4) -> più veloce 360 gradi. scansione.

È inoltre possibile estendere la portata del radar da 40 cm a 60 cm o addirittura 80 cm. Ho testato personalmente la funzione pulseIn e regolato la variabile TIMEOUT rispetto a 40 cm. Questa variabile dipende da molti fattori, inclusa la lunghezza dell'impulso inviato e la superficie dell'oggetto in cui l'impulso viene riflesso.

Infine, come affermato in precedenza, il passaggio successivo consiste nell'incorporare radarDuino con un robot di locomozione per scansionare il perimetro circostante.

Consigliato: