Hoe maak je een vloerreinigingsrobot met een ultrasone sensor?

Een automatische vloerreinigingsrobot is geen nieuw concept. Maar deze robots hebben een groot probleem. Ze zijn heel duur. Wat als we een goedkope vloerreinigingsrobot kunnen maken die net zo efficiënt is als de robot die op de markt verkrijgbaar is? Deze robot maakt gebruik van een ultrasone sensor en zal elk obstakel op zijn weg vermijden. Door dit te doen, maakt het de hele kamer schoon.

Hoe een ultrasone sensor te gebruiken om een ​​automatische vloerreinigingsrobot te maken?

Zoals we nu het abstract van ons project kennen. Laten we wat meer informatie verzamelen om aan het werk te gaan.

Stap 1: De componenten verzamelen

De beste benadering om een ​​project te starten, is door aan het begin een lijst met complete componenten te maken en een korte studie van elk onderdeel te doorlopen. Dit helpt ons om de ongemakken midden in het project te vermijden. Een volledige lijst van alle componenten die in dit project worden gebruikt, wordt hieronder gegeven.

Stap 2: de componenten bestuderen

Nu we een volledige lijst van alle componenten hebben, gaan we een stap verder en bestuderen we de werking van elk onderdeel in het kort.

Arduino nano is een microcontrollerbord dat wordt gebruikt om verschillende taken in een circuit aan te sturen of uit te voeren. We verbranden een C-code op Arduino Nano om het microcontrollerbord te vertellen hoe en welke bewerkingen moeten worden uitgevoerd. Arduino Nano heeft exact dezelfde functionaliteit als Arduino Uno, maar dan in een vrij klein formaat. De microcontroller op het Arduino Nano-bord is ATmega328p.

De L298N is een geïntegreerde schakeling met hoge stroom en hoge spanning. Het is een dubbele full-bridge die is ontworpen om standaard TTL-logica te accepteren. Het heeft twee activeringsingangen waarmee het apparaat onafhankelijk kan werken. Twee motoren kunnen tegelijkertijd worden aangesloten en bediend. De snelheid van de motoren wordt gevarieerd via de PWM-pinnen.

Het HC-SR04-bord is een ultrasone sensor die wordt gebruikt om de afstand tussen twee objecten te bepalen. Het bestaat uit een zender en een ontvanger. De zender zet het elektrische signaal om in een ultrasoon signaal en de ontvanger zet het ultrasone signaal weer om in het elektrische signaal. Wanneer de zender een ultrasone golf uitzendt, reflecteert deze na een botsing met een bepaald object. De afstand wordt berekend door gebruik te maken van de tijd die het ultrasone signaal nodig heeft om van de zender naar de ontvanger terug te gaan.

Stap 3: De componenten monteren

Omdat we nu weten hoe alle componenten werken, laten we alle componenten in elkaar zetten en beginnen met het maken van een robot.

Neem een ​​autowielchassis en monteer een showborstel voor de chasses. Monteer de Scotch Brite onder de robot. Zorg ervoor dat het zich vlak achter de schoenenborstel bevindt. Bevestig nu een klein breadboard aan de bovenkant van de chassis en daarachter de motordriver. Maak de juiste verbindingen van de motoren met de motordriver en sluit de pinnen van de motordriver voorzichtig aan op de Arduino. Monteer een accu achter het chassis. De batterij zal de motoraandrijving van stroom voorzien die de motoren zal aandrijven. De Arduino krijgt ook stroom van de motordriver. Vcc-pin en de aarde van de ultrasone sensor worden verbonden met de 5V en aarde van de Arduino.

Stap 4: Aan de slag met Arduino

Als u nog niet bekend bent met de Arduino IDE, hoeft u zich geen zorgen te maken, want hieronder wordt een stapsgewijze procedure voor het instellen en gebruiken van de Arduino IDE met een microcontrollerbord uitgelegd.

  1. Download de nieuwste versie van Arduino IDE van Arduino.
  2. Sluit je Arduino Nano-bord aan op je laptop en open het configuratiescherm. klik in het configuratiescherm opHardware en geluid. Klik nu opApparaten en printers.Zoek hier de poort waarop uw microcontroller-kaart is aangesloten. In mijn geval wel COM14maar het is anders op verschillende computers.
  3. Klik op het menu Tool en zet het bord op Arduino Nano.
  4. Stel in hetzelfde Tool-menu de poort in op het poortnummer dat u eerder in het Apparaten en printers.
  5. Stel in hetzelfde toolmenu de processor in op ATmega328P (Oude Bootloader).
  6. Download de onderstaande code en plak deze in uw Arduino IDE. Klik op de uploaden knop om de code op uw microcontroller-bord te branden.

Klik hier om de code te downloaden.

Stap 5: de code begrijpen

De code is vrij goed becommentarieerd en spreekt voor zich. Maar toch wordt het hieronder kort uitgelegd.

1. Bij de start worden alle pinnen van Arduino die we gaan gebruiken, geïnitialiseerd.

int enable1pin = 8; // Pins voor eerste Motor int motor1pin1 = 2; int motor1pin2 = 3; int enable2pin = 9; // Pinnen voor tweede motor int motor2pin1 = 4; int motor2pin2 = 5; const int trigPin = 11; // Pinnen voor ultrasone sensor const int echoPin = 10; const int buzzPin = 6; lange duur; // Variabelen voor zweefafstand ultrasone sensor;

2. leegte setup ()is een functie waarin we alle pinnen instellen die moeten worden gebruikt als INPUT of OUTPUT. In deze functie wordt ook de baudrate ingesteld. De baudrate is de snelheid waarmee de microcontroller-kaart communiceert met de aangesloten sensoren.

leegte setup () {Serial.begin (9600); pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); pinMode (buzzPin, OUTPUT); pinMode (enable1pin, OUTPUT); pinMode (enable2pin, OUTPUT); pinMode (motor1pin1, OUTPUT); pinMode (motor1pin2, OUTPUT); pinMode (motor2pin1, UITGANG); pinMode (motor2pin2, OUTPUT); }

3. leegte lus ()is een functie die continu in een lus wordt uitgevoerd. In deze lus hebben we de microcontroller verteld wanneer hij vooruit moet gaan als er geen obstakel wordt gevonden op 50 cm. De robot zal een scherpe bocht naar rechts nemen als er een obstakel wordt gevonden.

void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duur = pulseIn(echoPin, HOOG); afstand = 0,034 * (duur / 2); if (afstand> 50) // Vooruit gaan als er geen obstakel is gevonden {digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HIGH); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, HIGH); digitalWrite (motor2pin2, LOW); } else if (afstand <50) // Scherpe bocht naar rechts als er een obstakel is gevonden { digitalWrite (enable1pin, HIGH); digitalWrite (enable2pin, HIGH); digitalWrite (motor1pin1, HOOG); digitalWrite (motor1pin2, LOW); digitalWrite (motor2pin1, LOW); digitalWrite (motor2pin2, LOW); } vertraging (300); // vertraging}

Nu we alles hebben besproken wat u nodig hebt om een ​​automatische vloerreinigingsrobot te maken, kunt u genieten van het maken van uw eigen goedkope en efficiënte robot voor het reinigen van vloeren.

Facebook Twitter Google Plus Pinterest