Spraakgestuurde robot
Componenten en benodigdheden
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Benodigde gereedschappen en machines
|
Apps en online services
|
Over dit project
Robots zijn cool. Een robot hebben die kan bewegen en naar je spraakopdrachten kan luisteren, is veel cooler. Zo'n Spraak- of Stemgestuurde robot maken met Arduino wordt steeds toffer. Omdat Arduino's goedkoop zijn en makkelijk te tweaken.
Laten we beginnen met maken, je kunt ook de video-tutorial bekijken.
Stap 1:Benodigde onderdelen
De robot is gebaseerd op PCB. Een PCB die ik heb ontworpen om in verschillende robots te gebruiken. Laten we eens kijken welke andere componenten ik heb gebruikt -
Elektronica:
- Arduino Nano - 1x
- L298n Motor Driver-module - 1x
- Hc05 Bluetooth-module - 1x
- DC-motor en compatibel wiel - 2x
- Multifunctionele Robot PCB - 1x (link)
- Sommige mannelijke en vrouwelijke headers
Om lichaam te maken:
- PVC-plaat
- Hot lijmpistool
Software:
- Arduino.ide
- Een app die ik heb gemaakt
Dat is het, nu zijn we klaar om te gaan.
Stap 2:Principe:hoe werkt het?
Het is altijd goed om een duidelijk beeld te hebben van wat je gaat doen voordat je echt begint te rotzooien. Jij maakt misschien geen rotzooi, maar ik wel.
Arduino is dus een minicomputer of zeg maar een microcontroller. Het heeft niet genoeg kracht of vermogen om spraakherkenning uit te voeren (vanaf nu). Maar gelukkig voor mij heeft mijn printplaat een poort om de Bluetooth-module aan te sluiten. Dat betekent dat ik onze Arduino draadloos kan verbinden met andere apparaten. En ik profiteer van dat ding. Ik zal dus een Android-app moeten maken die "Speech to Text"-bewerking kan uitvoeren met behulp van Google API (vereist internet) en na ontvangst van de tekst zal het Arduino via Bluetooth aansturen.
Dus als ik 'Vooruit' zeg, krijgt de robot 'F' en gaat vooruit. Dat is het concept. Laten we het nu maken.
Stap 3:Maak het lichaam
Ik heb het chassis / de carrosserie van deze robot gemaakt van een PVC-plaat van 13 cm/13,5 cm. Het is gemakkelijker te snijden met een mes/mes en werkt ook uitstekend met lijm.
Zoals je in de video kunt zien, heb ik stukken gesneden om twee motoren en wielen te monteren, beide in het bordgebied. En vervolgens gelijmd.
Wanneer u de uwe gaat maken, hoeft u het er niet precies zo uit te laten zien. Jouw bot jouw keuze.
Stap 4:Circuit bouwen of PCB gebruiken?
Ook hier komen we op een punt waar het volledig jouw keuze is. Maar om zo'n circuit te maken, heb je een heleboel bedrading nodig, en als je het maakt met breadboard, kan een verkeerde verbinding het hele project belemmeren. Daarom gebruik ik graag PCB's in mijn projecten.
Ik heb deze PCB ontworpen met EasyEDA en besteld bij PCBWay.com. PCBWay levert kwaliteit tegen een goedkoper tarief. U kunt 10 meerlaagse PCB's krijgen voor slechts $ 5. Ze sponsoren ook studentenprojecten, wat voor mij een geweldig gevoel is.
Hoe dan ook, ik ging naar de sectie Snel bestellen waar ik alleen maar mijn PCB hoefde te uploaden, het systeem detecteerde automatisch alle parameters voor mijn bord en ik selecteerde gewoon kleuren. Zwart is mijn favoriet en kijk hoe glanzend en cool het is geworden. Het is beter omdat ze geen geld aannemen totdat hun technische team je printplaat inspecteert, goed genoeg!
Haal de printplaat hier vandaan.
Als u deze print echter niet kunt bestellen of gebruiken, kunt u dit op breadboard of veroboard doen. Ik heb het fritzing-circuit voor je geüpload. Download het hieronder of download het hier.
spraakgestuurd-robot-schema.fzz
Stap 5:elektronica aansluiten
Verbinding is rechttoe rechtaan. Sluit alles aan zoals aangegeven in het schakelschema. Ik zal beginnen met het aansluiten van motoren op motordriver -
Motor naar motor driver,
- Draden van motor1 gaan naar het ene uiteinde van de driver,
- Motor2 gaat naar andere kant.
Om de motoren te bedienen,
- Motor1-pinnen op L298n-motorstuurprogramma maken verbinding met Arduino 2- en 3-pins (digitaal).
- Motor2 wordt aangesloten op 4 en 5
Bluetooth-module,
- Tx naar Arduino Rx
- Rx naar TX
- VCC naar 5V/VCC
- Gnd naar GND (aarde)
Batterij,
Ik gebruikte een 7,4 V-batterij voor de motoren, die wordt aangesloten op de ingang van de motordriver en de Arduino VIN en Ground Pin. Gemeenschappelijke massaverbinding is nodig.
Toen heb ik de batterij aangesloten op alle dingen die oplichtten. Dat betekent dat ik me niet heb vergist.
Stap 6:Arduino programmeren
Het is een eenvoudig programma. Het programma controleert op tekens en als ze worden ontvangen, gaat het naar links, rechts enz. De lijst is -
- 'F' - Doorsturen
- 'B' - Achteruit
- 'L' - Links
- 'R' - Rechts
De Bluetooth-module is aangesloten op de seriële poort, dus Arduino communiceert via serieel in 9600 bps.
I setup-sectie Ik definieerde de pinnen en de snelheid -
void setup(){//initlize de modus van de pinspinMode(lm1,OUTPUT);pinMode(lm2,OUTPUT);pinMode(rm1,OUTPUT);pinMode(rm2,OUTPUT);//stel de seriële communicatie rateSerial.begin(9600);}
De in mainloop Het controleerde op data ontvangen via serieel-
//controleer of arduino een signaal ontvangt of niet terwijl (Serial.available() ==0);val =Serial.read(); // leest de signalSerial.print(val);
En dan de hoofdcode, download deze hier. Ik heb de hele code hieronder geplakt -
/**** Arduino Spraak-/spraakgestuurde robot **** door Ashraf Minhaj* mail me op [email protected]* tutorial- ashrafminhajfb.blogspot.com*///Declare the arduino pinsint lm1 =4; // verklaar 1e motor pinsint lm2 =5;int rm1 =2; //rechter motor pinsint rm2 =3;char val;void setup(){//initlize de modus van de pinspinMode(lm1,OUTPUT);pinMode(lm2,OUTPUT);pinMode(rm1,OUTPUT);pinMode(rm2,OUTPUT );//stel de seriële communicatie rateSerial.begin(9600);}void loop(){//check of Arduino een signaal ontvangt of nietwhile(Serial.available() ==0);val =Serial.read(); // leest het signaal//Serial.print(val);/*********Voor voorwaartse beweging*********/if (val =='F'){//Serial .println("FORWARD");digitalWrite(lm1,HIGH);digitalWrite(rm1,HIGH);digitalWrite(lm2,LOW);digitalWrite(rm2,LOW);}/**********Voor achterwaartse beweging **********/else if(val =='B'){digitalWrite(lm2,HIGH);digitalWrite(rm2,HIGH);digitalWrite(lm1,LOW);digitalWrite(rm1,LOW);} /**********Rechts*********/else if(val =='R'){digitalWrite(lm1,HIGH);digitalWrite(rm2,HIGH);digitalWrite(lm2, LAAG);digitalWrite(rm1,LAAG);}/*********Links**********/else if(val =='L'){digitalWrite(lm2,HOOG); digitalWrite(rm1,HIGH);digitalWrite(lm1,LOW);digitalWrite(rm2,LOW);}/**********STOP*********/else{digitalWrite(lm1,LOW); );digitalWrite(rm1,LOW);digitalWrite(lm2,LOW);digitalWrite(rm2,LOW);}vertraging(10);}
Upload de code en maak vervolgens de app.
Stap 7:App voor SPRAAK naar TEKST
Ik heb de app gemaakt met behulp van MIT app uitvinder. U kunt deze app naar wens bewerken en aanpassen. Haal de aia fie hier vandaan.
Deze app maakt gebruik van Bluetooth-connectiviteit om de robot te besturen. Daarvoor moest ik de HC05 Bluetooth-module aan mijn telefoon koppelen. Het standaardwachtwoord is 1234 of 0000.
Deze app gebruikt Google Speech to Text API om wat ik zeg om te zetten in tekstvorm. Dan maakt het de zin in kleine letters, het is gemakkelijker om op die manier te verwerken. En komt overeen met if else-instructies. Als de gebruiker 'vooruit' zegt, stuur Arduono de 'F'-letter en deze gaat vooruit. Dat is het.
Bouw en bewaar als APK-bestand, of gebruik het mijne om het op je telefoon te installeren.
spraakgestuurd-robot-schema.fzz
Stap 8:Schakel de bot in, start de app en ga!
Sluit nu gewoon de batterij aan en gebruik de Android-app om met je gloednieuwe robot te spelen!
Bedankt voor het lezen. Afrekenen mijn laatste project -
Code
- Codefragment #1
- Codefragment #3
Codefragment #1Platte tekst
void setup(){ // initialiseer de modus van de pinnen pinMode(lm1,OUTPUT); pinMode (lm2, UITGANG); pinMode (rm1, UITGANG); pinMode (rm2, UITGANG); // stel de seriële communicatiesnelheid in Serial.begin (9600);}
Codefragment #3Platte tekst
/**** Arduino Spraak-/spraakgestuurde robot *** * door Ashraf Minhaj * mail me op [email protected] * tutorial- ashrafminhajfb.blogspot.com *///Declareer de arduino pinsint lm1 =4; // verklaar 1e motor pinsint lm2 =5;int rm1 =2; // rechter motor pinsint rm2 =3; char val; void setup () {// initialiseer de modus van de pinnen pinMode (lm1, OUTPUT); pinMode (lm2, UITGANG); pinMode (rm1, UITGANG); pinMode (rm2, UITGANG); // stel de seriële communicatiesnelheid in Serial.begin (9600);} void loop () { // controleer of Arduino een signaal ontvangt of niet while (Serial.available () ==0); val =Serieel.lezen(); // leest het signaal //Serial.print(val); /********** Voor Voorwaartse beweging *********/ if (val =='F') { //Serial.println("FORWARD"); digitalWrite(lm1,HIGH); digitalWrite(rm1,HIGH); digitalWrite(lm2,LAAG); digitalWrite(rm2,LAAG); } /********** Voor achterwaartse beweging *********/ else if(val =='B') {digitalWrite(lm2,HIGH); digitalWrite(rm2,HOOG); digitalWrite(lm1,LAAG); digitalWrite(rm1,LAAG); } /**********Rechts**********/ else if(val =='R') { digitalWrite(lm1,HIGH); digitalWrite(rm2,HOOG); digitalWrite(lm2,LAAG); digitalWrite(rm1,LAAG); } /*********Links**********/ else if(val =='L') { digitalWrite(lm2,HIGH); digitalWrite(rm1,HIGH); digitalWrite(lm1,LAAG); digitalWrite(rm2,LAAG); } /**********STOP**********/ else { digitalWrite(lm1,LOW); digitalWrite(rm1,LAAG); digitalWrite(lm2,LAAG); digitalWrite(rm2,LAAG); } vertraging(10); }
Github
https://github.com/ashraf-minhaj/spraakgestuurde-robothttps://github.com/ashraf-minhaj/spraakgestuurde-robotSchema's
spraakgestuurde-robot-schematic_hUoWKpapKe.fzzProductieproces
- Raspberry Pi-robot bestuurd via Bluetooth
- Bouw uw internetgestuurde videostreamingrobot met Arduino en Raspberry Pi
- Windows 10 IoT Core:spraakgestuurde robot
- Wifi-gestuurde robot met Raspberry Pi
- Met joystick bestuurde RC-auto
- Lijnvolger Robot
- Nunchuk-gestuurde robotarm (met Arduino)
- Robotarm bestuurd via Ethernet
- MobBob:doe-het-zelf Arduino-robot bestuurd door Android-smartphone
- Arduino-gestuurde pianorobot:PiBot
- Autonome Home Assistant-robot