Inhoudsopgave:

Utrasonische vermijdingsrobot met Arduino - Ajarnpa
Utrasonische vermijdingsrobot met Arduino - Ajarnpa

Video: Utrasonische vermijdingsrobot met Arduino - Ajarnpa

Video: Utrasonische vermijdingsrobot met Arduino - Ajarnpa
Video: Hoe bestel je DE Ultrasonische Emmident Tandenborstel - Happy Bio Body Bye Caries Hallo Witte Tanden 2024, November
Anonim
Image
Image
Utrasonische vermijdingsrobot met Arduino
Utrasonische vermijdingsrobot met Arduino

In deze tutorial laat ik je zien hoe je je eigen robot kunt maken die obstakels ontwijkt! We zullen het Arduino UNO-bord en een ultrasone sensor gebruiken. Als de robot een object voor zich detecteert, scant hij met behulp van een kleine servomotor het gebied links en rechts om de beste manier te vinden om te draaien. Het heeft ook een meldings-LED, een zoemer om een toon af te spelen wanneer een object wordt gedetecteerd en een knop om de functie van de robot te wijzigen (gestopt / vooruit).

Het is heel gemakkelijk om het te maken!

Stap 1: Dingen die nodig zijn om te maken

Dingen die je moet maken!
Dingen die je moet maken!
Dingen die je moet maken!
Dingen die je moet maken!
Dingen die je moet maken!
Dingen die je moet maken!
Dingen die je moet maken!
Dingen die je moet maken!

Voor dit project heb je nodig:

  1. Arduino UNO (koop het van gearbest.com)
  2. Mini breadboard (koop het bij gearbest.com)
  3. L298 motor driver module (koop het van gearbest.com)
  4. 2x gelijkstroommotoren met wielen HC-SR04 ultrasone sensor (koop het bij gearbest.com)
  5. Micro-servomotor (koop het bij gearbest.com)
  6. Knop Rood LED220 Ohm weerstand 9V batterijhouder (met of zonder stroomaansluiting)
  7. 8 afstandhouders (man-vrouw),
  8. 8 moeren en 8 schroeven heb je ook nog een grote (metalen)

paperclip en een kraal om het achterste steunwiel te maken.

Voor de robotbasis heb ik een acrylchasis van Aliexpress gebruikt. Je kunt ook een stuk hout of metaal (of twee elektrische platen) gebruiken.

De kosten van het hele project bedragen ongeveer 20 $

Gereedschap: Boormachine superlijm crew driver hot gun lijm (optioneel) Vermogen:

We zullen een 9V-batterij gebruiken om onze robot van stroom te voorzien, omdat hij klein en goedkoop is, maar niet erg krachtig en na ongeveer een uur leeg is. Overweeg of je een oplaadbare batterij (min 6V, max 7V) wilt gebruiken die krachtiger is, maar ook duurder en groter is dan de 9V-batterij. AbonnerenOns YouTube-kanaal Klik hier

Stap 2: Concepten begrijpen

Concepten begrijpen
Concepten begrijpen
Concepten begrijpen
Concepten begrijpen
Concepten begrijpen
Concepten begrijpen

Het doel is om de robot bewust te maken van obstakels voor hem, zodat hij van richting kan veranderen en ze kan ontwijken. In het vorige artikel hebben we de robot laten bewegen - nu geven we hem wat autonomie.

Ultrasoon sensor

HC-SR04 is een circuit dat een afstand tot objecten tot 4 meter kan meten met behulp van ultrasone golven. Het verzendt een ping (zoals een onderzeeër) en meet de tijd (in microseconden) tussen het verzenden en ontvangen van iets terug. Deze tijd wordt vervolgens gedeeld door 2 terwijl de golf heen en weer reist. En deel dan door 29 om een afstand in centimeters te krijgen (of 74 voor inches), want geluid reist 29,4 µs per centimeter (340 m/s). De sensor is zeer nauwkeurig met een tolerantie van ~3 mm en eenvoudig te integreren met Arduino.

Interface van ultrasone sensor met AVR-microcontroller

Elke autonome robot moet een obstakel vermijden en een afstandsmeetsensor hebben. Een IR-transceiverpaar of een grijswaardensensor kan gemakkelijk werken voor obstakeldetectie in het bereik van 1 cm-10 cm. IR-afstandsmeters (bijvoorbeeld die van scherp) kunnen een afstand meten tot het dichtstbijzijnde obstakel met een bereik tot 100cm. IR-sensoren worden echter beïnvloed door zonlicht en andere lichtbronnen. IR-afstandsmeters hebben minder bereik en zijn ook duur voor wat het doet. Ultrasone sensoren (ook bekend als ultrasone naderingssensoren of sonar voor de geeks) doen beide taken tegen redelijke kosten en uitzonderlijke nauwkeurigheid. Het bereik varieert van 3 cm tot 350 cm met een nauwkeurigheid van ~ 3 mm. Door een van deze ultrasone sensoren aan onze robot te koppelen, kan deze zowel als obstakelvermijder als als afstandssensor fungeren.

"Ultrasoon" geluid verwijst naar alles boven de frequenties van hoorbaar geluid, en omvat nominaal alles boven 20.000 Hz of 20 kHz! Voordelige Ultrasone sensoren die voor robotica worden gebruikt, werken over het algemeen in een bereik van 40 kHz tot 250 kHz, terwijl die in medische apparatuur tot 10 MHz gaan.

Stap 3: Benodigd gereedschap

Gereedschap nodig
Gereedschap nodig
Gereedschap nodig
Gereedschap nodig
Gereedschap nodig
Gereedschap nodig
Gereedschap nodig
Gereedschap nodig
  1. Multimeter
  2. Breadboard
  3. Naaldbektang
  4. Draadstripper
  5. Draadknipper
  6. Lijmpistool

MultimeterEen multimeter is eigenlijk een eenvoudig apparaat dat voornamelijk wordt gebruikt om spanning en weerstand te meten en om te bepalen of een circuit is gesloten. Net als bij het debuggen van computercode, helpt de multimeter u bij het "debuggen" van uw elektronische circuits.

Bouwstoffen

Een direct beschikbare voorraad dun hout en/of plexiglas om het mechanische frame te maken is erg handig. Metalen zoals aluminium en staal zijn vaak beperkt tot die met toegang tot een machinewerkplaats, hoewel dun aluminium met een schaar kan worden gesneden en met de hand kan worden gebogen. Mechanische frames kunnen zelfs worden opgebouwd uit huishoudelijke artikelen zoals plastic containers.

Hoewel andere materialen zoals kunststoffen (behalve plexiglas), of meer exotische materialen zoals glasvezel en koolstofvezel mogelijk zijn, worden ze in deze gids niet behandeld. Verschillende fabrikanten hebben opgemerkt dat het voor de meeste hobbyisten niet gemakkelijk is om hun eigen mechanische onderdelen te produceren en hebben modulaire mechanische onderdelen gemaakt. Een leider hierin is Lynxmotion, dat een breed scala aan robotontwerpen biedt, evenals de onderdelen die nodig zijn om uw eigen aangepaste robots te maken.

Handgereedschap

Schroevendraaiers en tangen van verschillende soorten en maten (inclusief gereedschapsset voor juweliers: kleine schroevendraaiers die gewoonlijk verkrijgbaar zijn bij dollarwinkels) zijn noodzakelijk. Een boormachine (bij voorkeur een kolomboormachine voor rechte gaten) is ook belangrijk. Ook een handzaag voor het zagen van bouwmaterialen (of een bovenfrees) is een belangrijke troef. Als het budget het toelaat, is een kleine lintzaag voor op het tafelblad (bereik van $ 200) zeker een hulpmiddel om te overwegen.

Soldeerloze Breadboard

Met een soldeerloos breadboard kunt u uw lay-out optimaliseren en componenten gemakkelijk aansluiten. Samen met een soldeerloze breadboard, moet u een voorgevormde jumper-kabelset kopen die bestaat uit voorgesneden en gebogen draden die bedoeld zijn om te worden gebruikt met een soldeerloze breadboard. Dit maakt het aansluiten heel eenvoudig.

Kleine schroevendraaierset

Deze kleine schroevendraaiers zijn nodig bij het werken met elektronica. Forceer ze echter niet te veel - hun grootte maakt ze kwetsbaarder.

Reguliere schroevendraaierset

Alle werkplaatsen hebben een multitool of gereedschapsset nodig met platte / kruiskopschroevendraaiers en andere schroevendraaierkoppen.

Naaldbektang

set punttangen is ongelooflijk handig bij het werken met kleine componenten en onderdelen en is een zeer goedkope aanvulling op uw gereedschapskist. Deze zijn anders dan gewone tangen omdat ze op een punt komen dat in kleine gebieden kan komen.

Draadstrippers/knippers

U bent van plan om eventuele draden door te knippen, een draadstripper bespaart u veel tijd en moeite. Een draadstripper zal, indien correct gebruikt, alleen een kabelisolatie verwijderen en zal geen knikken veroorzaken of de geleiders beschadigen. Het andere alternatief voor een draadstripper is een schaar, hoewel het eindresultaat rommelig kan zijn. Schaar, liniaal, pen, markeerpotlood, Exacto-mes (of ander handgereedschap) Deze zijn onmisbaar op elk kantoor.

Stap 4: Concepten voor het coderen van AVR

Begrippen voor het coderen van AVR
Begrippen voor het coderen van AVR

Berekening van de geluidssnelheid ten opzichte van ultrasone sensoren

Beetje wiskunde, maar wees niet bang. Het is eenvoudiger dan je denkt.

De geluidssnelheid in droge lucht bij kamertemperatuur (~20°C) = 343 meter/seconde

Om de geluidsgolf te raken en een rondreis naar het nabijgelegen object te maken is = 343/2 = 171,5 m/aangezien het maximale bereik van een goedkope ultrasone sensor niet meer dan 5 meter is (retour), zou het logischer zijn om verander de eenheden in centimeters en microseconden.

1 meter = 100 centimeter1 seconde = 10^6 microseconden = (s / 171,5) x (m / 100 cm) x ((1x10^6)/s) = (1/171,5) x (1/100) x (1000000/ 1) = 58,30903790087464 us/cm = 58,31 us/cm (afronden op twee cijfers om berekeningen te vergemakkelijken)Daarom is de tijd die een puls nodig heeft om naar een object te reizen en 1 centimeter terug te stuiteren 58,31 microseconden.

de kleine achtergrond over AVR-klokcycli

Er is een heel ander hoofdstuk voor nodig om AVR-klokcycli te begrijpen, maar we zullen in het kort begrijpen hoe het werkt om onze berekeningen gemakkelijker te maken

Voor ons voorbeeld gebruiken we een AVR Draco-bord met een 8-bit AVR - Atmega328P-microcontroller. Om het simpel te houden, gaan we de instellingen van een microcontroller niet aanpassen. Geen zekeringbits aangeraakt; Geen extern kristal bevestigd; Geen hoofdpijn. In fabrieksinstellingen draait het op een interne 8MHz-oscillator met een /8 prescaler; Als je dit allemaal niet begrijpt, betekent dit gewoon dat de microcontroller draait op 1 MHz interne RC Oscillator en dat elke klokcyclus 1 microseconde duurt.

1 2 1MHz = van 1000000 cycli per seconde Daarom 1s/1000000 = 1/1000000 = 1us

AVR-klokken en afstandsconversie

We zijn er bijna! Als we eenmaal weten hoe we AVR-klokcycli kunnen converteren naar de afstand die wordt afgelegd door geluidsgolven, is het eenvoudig om de logica in een programma te implementeren.

We weten dat de snelheid van ultrasoon geluid in een ideale omgeving is: 58,31 us/cm

We weten dat de resolutie van de AVR-microcontroller 1us/klokcyclus (CLK) is

Daarom is de door geluid afgelegde afstand per klokcyclus (CLK):

1 2 3 = (58.31 us/cm) x (1us/clk) = 58.31 klokcycli / cm of = 1/58.31 cm/clk

Als het aantal klokcycli bekend is dat het geluid nodig heeft om te reizen en terug te kaatsen, kunnen we de afstand gemakkelijk berekenen. Als de sensor bijvoorbeeld 1000 klokcycli nodig heeft om te reizen en terug te stuiteren, dan is de afstand van een sensor tot het dichtstbijzijnde object = 1000/58,31 = 17,15 cm (ongeveer)

Klopt alles nu? Nee? Lees het opnieuw

Als je duidelijk bent met alle bovengenoemde logica, zullen we het in een realistisch scenario implementeren door een goedkope HC-SR04 ultrasone sensor aan te sluiten op ons AVR Arduino-bord.

Stap 5: Hardware-verbindingen:

Hardware-verbindingen
Hardware-verbindingen
Hardware-verbindingen
Hardware-verbindingen
Hardware-aansluitingen
Hardware-aansluitingen
Hardware-verbindingen
Hardware-verbindingen

Arduino Board maakt het gemakkelijk om externe sensoren aan te sluiten en de resultaten ook op LCD te bekijken. Voor ultrasone bereikdetectie gebruiken we een goedkope HC-SR04-module. De module heeft 4 pinnen die kunnen worden aangesloten op een microcontrollerkaart: VCC, TRIG, ECHO en GND.

Verbind de VCC-pin met 5V en GND-pin met aarde op het Arduino-bord.

TRIG-pin en ECHO-pin kunnen worden aangesloten op alle beschikbare pinnen op het bord. Het verzenden van een minimaal 10us 'hoog' signaal naar de triggerpin stuurt acht 40 kHz geluidsgolven en trekt de echopin hoog. Als het geluid terugkaatst op een object in de buurt en terugkeert, wordt het opgevangen door de ontvangende transducer en wordt de echopen 'laag' getrokken.

Andere varianten van ultrasone sensormodules zijn ook verkrijgbaar met slechts 3 pinnen. Het werkingsprincipe is nog steeds hetzelfde, maar de functionaliteit van trigger- en echo-pinnen is gecombineerd tot een enkele pin.

Eenmaal verbonden, kunnen Trigger en Echo Pins via software worden geconfigureerd. Om dit voorbeeld eenvoudig te houden, zullen we in dit voorbeeld geen interrupt-pinnen (of Input Capture Pin) gebruiken. Het niet gebruiken van aangewezen interrupt-pinnen geeft ons ook de vrijheid om de module aan te sluiten op beschikbare pinnen op het bord.

Stap 6: Coderen

CodeDe onderstaande code bevat alleen een "ultrasone" uitbreiding van DC-motorbesturing met behulp van een H-brug uit het vorige artikel. Wanneer de robot een obstakel voor zich detecteert, draait hij zich om (willekeurige graad) en gaat hij verder. Deze functionaliteit kan eenvoudig worden uitgebreid om te blijven draaien en tegelijkertijd obstakels te detecteren - zodat de robot niet willekeurig draait, maar alleen vooruit gaat als er geen object wordt gedetecteerd.

Raadpleeg de YouTube-video op het kanaal voor uitleg over de code.

Stap 7: Video

Bekijk de video voor het hele proces.

Aanbevolen: