Inhoudsopgave:

Project 3: SonarDuino: 9 stappen
Project 3: SonarDuino: 9 stappen

Video: Project 3: SonarDuino: 9 stappen

Video: Project 3: SonarDuino: 9 stappen
Video: SonarDuino 2024, November
Anonim
Image
Image

Beste mede-hobbyist, In dit project zullen we de mogelijkheid onderzoeken van een 360 graden radarsysteem voor objectdetectie. Door deze module apart in te stellen, kan uw voortbewegingsrobot de grenzen van zijn omgeving detecteren. Het kan ook dienen als navigatiehulpmiddel in het donker, maar alleen als je langzaam genoeg loopt;p

Stap 1: Wat heb je nodig?

De ondersteuning van de ultrasone sensor voorbereiden
De ondersteuning van de ultrasone sensor voorbereiden

Om deze build te maken, moet je het volgende kopen:

Arduino Nano:

Prototyping-borden: 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

Servomotoren:

Ultrasone sensoren: 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

Stap 2: Documentatie

Zoals sommigen van jullie dit misschien al weten, is dit project geïnspireerd op een ander open-source project genaamd "Arduino Radar Project" gemaakt door Dejan van "How to Mechatronics" @ de volgende link: https://howtomechatronics.com/projects/arduino -radar-project/

Een ander punt dat documentatie vereist, is het downloaden van de volgende twee bibliotheken naar uw ontwikkelomgeving:

Adafruit-GFX-Bibliotheek:

Adafruit_SSD1306:

Dit gezegd hebbende, om de C-code echt te begrijpen, moet je wat documentatie van beide bovenstaande bibliotheken doen. Afgezien daarvan hebben de functies die ik in mijn code gebruikte namen die veelzeggend zijn voor wat ze doen.

Stap 3: Bereid de ultrasone sensorondersteuning voor

De ondersteuning van de ultrasone sensor voorbereiden
De ondersteuning van de ultrasone sensor voorbereiden
De ondersteuning van de ultrasone sensor voorbereiden
De ondersteuning van de ultrasone sensor voorbereiden
De ondersteuning van de ultrasone sensor voorbereiden
De ondersteuning van de ultrasone sensor voorbereiden

Neem een willekeurig stuk karton en knip het af volgens de afmetingen van de verbindingskabels die aan de sensor zijn bevestigd, zoals weergegeven in de eerste afbeelding. Vouw deze daarna als laatste dicht en lijm deze op de servomotorsteun. Zodra dat is gebeurd, lijmt u de twee ultrasone sensoren volgens de laatste afbeelding. Merk op dat de kop van de sensoren zo moet worden gesoldeerd dat de kabels voor de sensor naar buiten gaan. Hierdoor kunnen de sensorkabels elkaar niet hinderen wanneer de 360 graden rotatie wordt geïmplementeerd.

Stap 4: Monteer alles in een prototypebord

Monteer alles in een prototypebord
Monteer alles in een prototypebord
Monteer alles in een prototypebord
Monteer alles in een prototypebord
Monteer alles in een prototypebord
Monteer alles in een prototypebord

In deze stap begint u met het monteren van de header die in de vorige stap is voorbereid in de respectieve servomotor. Als de servomotor goed gewend is, monteer je alles samen tot een prototyping board. Je begint met het solderen van de Arduino Nano en vervolgens door de servo ernaast te lijmen. Als laatste soldeer je het kleine OLED-display aan de andere rand van het bord.

Stap 5: De definitieve verbindingen maken

De laatste verbindingen maken
De laatste verbindingen maken
De laatste verbindingen maken
De laatste verbindingen maken
De laatste verbindingen maken
De laatste verbindingen maken

Met deze stap wordt de hardwarekant van dit project afgesloten. U moet de meegeleverde schema's volgen om alle vereiste verbindingen tot stand te brengen.

Stap 6: Het programma opstarten

Het programma opstarten
Het programma opstarten

Er zijn twee codes die je nodig hebt om op te starten:

Arduino (C):

Verwerking (java):

Bij het uitvoeren van de code heb je twee opties om uit te kiezen:

Optie 1: Gebruik het OLED-display, daarvoor moet u de variabele MODE in de C-code op 0 zetten.

Optie 2: Uw monitor gebruiken, daarvoor moet u de variabele MODE in de C-code instellen op 1. Daarnaast moet u de ontwikkelomgeving Processing downloaden en installeren en het radarlettertype downloaden via deze link: https:// github.com/lastralab/ArduinoRadar/blob/ma…

En voeg dat bestand toe aan uw verwerkingscodebestand zodat uw Java-code het lettertype herkent wanneer het wordt aangeroepen.

Stap 7: De C-code begrijpen

De C-code begrijpen
De C-code begrijpen

De code bestaat voornamelijk uit twee ‘for’-lussen. De ene is gecorreleerd met de voorwaartse pas terwijl de andere is met de achterwaartse pas. Binnen beide wordt de hoofdfunctie draw_scanner(), die de lijnen van de radar op het scherm tekent, vaak aangeroepen. Na het testen van meerdere configuraties kwam ik tot de conclusie dat we de witte radarlijnen op tijdstip t moeten overschrijven met diezelfde radarlijnen in het zwart op tijdstip t+1 om ze te verwijderen. Anders zou er flikkering optreden telkens wanneer u het scherm schoonmaakt met de functie "clearDisplay()" voordat u op het nieuwe pixelraster drukt. Omdat ik te maken had met 7 lijnen - voor ontwerpdoeleinden - moest ik de integer-array van 7 elementen blijven opslaan en doorgeven, waarbij elk element staat voor de straal tussen het centrum van de radar en het gedetecteerde object, indien aanwezig. Met dit in gedachten moet de rest van de code eenvoudig te begrijpen zijn.

Stap 8: De Java-code begrijpen

In Processing moest ik de functieaanroep voor serialEvent() omzeilen, die alleen werkt met seriële poorten met de naam COM. Terwijl ik op een Mac werkte, kregen mijn seriële poorten een andere naam. Dat gezegd hebbende, heb ik die functie uitgepakt in de hoofdfunctie bij het verwerken van "draw()". Wat al het andere betreft, heb ik de applicatie bijgewerkt om te voldoen aan het volledige revolutieontwerp. Ten slotte heb ik alle getekende vormen en teksten bijgewerkt met betrekking tot de breedte van het scherm, zodat het eindproduct op verschillende schermresoluties past. Ik heb het persoonlijk getest voor zowel 1000X1000 als 500X500 resoluties, en het werkte prima:).

Stap 9: Conclusie

Dit werk kan worden opgewaardeerd tot 3 ultrasone sensoren, elk met een kijkhoek van 120, of zelfs 4 sensoren (90 graden*4) -> snellere 360 graden. scannen.

U kunt het bereik van de radar ook uitbreiden van 40 cm naar 60 cm of zelfs 80 cm. Ik heb persoonlijk de pulseIn-functie getest en de variabele TIMEOUT aangepast ten opzichte van 40 cm. Deze variabele is afhankelijk van veel factoren, waaronder de lengte van de puls die wordt verzonden en het oppervlak van het object waar de puls wordt gereflecteerd.

Tot slot, zoals eerder vermeld, is de volgende stap om radarDuino te integreren met een voortbewegingsrobot om de omringende perimeter te scannen.

Aanbevolen: