Maak een stem gecontroleerde voertuig! (2 / 3 stap)

Stap 2: Het toevoegen van controle van de stem

Ik gebruikte een DFRobot stem erkenning board voor deze. De SKU is DFR0177, maar het is slechts beschikbaar in China nu!

Helaas wanneer trying voor toevoegen van de functies van de voice control, ik problemen ondervonden. Na het krijgen van contact met een van de ingenieurs van DFRobot, vertelde ze me dat de Raad van bestuur van Romeo V2 was gebaseerd op een ATmega32u4 chip, die mijn stem erkenning module niet zou steunen. Dit was irritant, maar ik niet laat dat mij stoppen. Ik ruilde mijn Romeo V2-board voor een DFRduino UNO R3 en vervolgens probeerde opnieuw.

Hier is een code die ik gebruikt:

 #include #define SUM 2 //variable no greater than 50 uint8 nAsrStatus=0; char sRecog[SUM][80] = {"turn on lights", "turn off lights"};//variable not greater than 79, user can modify int state=7; //status indicator int led=8; //control digital port void finally (unsigned char n) { switch(n) //array corresponding keyword serial number, such as arrays recognise the first keyword is “turn on lights” and corresponding sequence number is 0; { case 0: Serial.println( "turn on lights"); Serial.println( " "); digitalWrite(led,LOW); break; case 1: Serial.println( "turn off lights"); digitalWrite(led,HIGH); break; default: Serial.println( "error"); Serial.println( " "); break; } } void ExtInt0Handler () { Voice.ProcessInt0(); //send an interrupt signal } void setup() { Serial.begin(9600); Voice.Initialise(MIC,VoiceRecognitionV1);//Initialise mode MIC or MONO,default is MIC //VoiceRecognitionV1 is VoiceRecognitionV1.0 shield //VoiceRecognitionV2 is VoiceRecognitionV2.1 module attachInterrupt(0,ExtInt0Handler,LOW); pinMode(led,OUTPUT); pinMode(state,OUTPUT); digitalWrite(state,HIGH); digitalWrite(led,HIGH); } void loop() { uint8 nAsrRes; nAsrStatus = LD_ASR_NONE; while(1) { switch(nAsrStatus) { case LD_ASR_RUNING: case LD_ASR_ERROR: break; case LD_ASR_NONE: { nAsrStatus=LD_ASR_RUNING; if (Voice.RunASR(SUM,80,sRecog)==0) //incorrect identification { nAsrStatus= LD_ASR_ERROR; Serial.println( "ASR_ERROR"); } digitalWrite(state,LOW); Serial.println( "ASR_RUNING....."); break; } case LD_ASR_FOUNDOK: { digitalWrite(state,HIGH); nAsrRes =Voice. LD_GetResult();//once asr recognition process ends, pick up asr recognition results finally(nAsrRes); nAsrStatus = LD_ASR_NONE; break; } case LD_ASR_FOUNDZERO: default: { nAsrStatus = LD_ASR_NONE; break; } }// switch delay(500); }// while } 

char sRecog [bedrag] [80] = {"aanzetten lichten", "uitschakelen van lichten"} kunnen worden gebruikt om het voertuig controle spraakfuncties. Wij kunnen veranderen dit gedeelte als u wilt toevoegen van de functies die we, zoals "vooruit", "Ga terug", "links afslaan", "rechts", "stop", enz willen. Ook zullen we de "ongeldig finally()"-functie te wijzigen. In geval 0 is de eerste opdracht vooraf, zodat we kunnen uitgang "gaan" van "Serial.println()" en de oproep voor de functie "voorschot" op hetzelfde moment. Wanneer de stem-erkenning module de "voorschot"-functie detecteert, het zal output ga vooruit en het voertuig zal vooruit. Hetzelfde geldt voor de andere richtingen.

Een van de beperkingen van dit project is dat de stem-erkenning-module is niet altijd accuraat, vanwege verschillende gebruikers stemmen, omgevingsgeluid en andere factoren. Dit zal worden verbeterd in toekomstige voorbeelden.

De code is als volgt:

 #include //#include //ruan chuankou #define SUM 5 //SUM uint8 nAsrStatus=0; //SoftwareSerial mySerial(10, 11); // RX, TX char sRecog[SUM][80] = {"qian jin", "hou tui","zuo zhuan", "you zhuan","ting zhi"};// int E1 = 5; //M1 Speed Control int E2 = 6; //M2 Speed Control int M1 = 4; //M1 Direction Control int M2 = 7; //M1 Direction Control void stop(void) //Stop { digitalWrite(E1,0); digitalWrite(E2,0); } void advance(char a,char b) //Move forward { analogWrite (E1,a); //PWM Speed Control digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,HIGH); } void back_off (char a,char b) //Move backward { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,LOW); } void turn_L (char a,char b) //Turn Left { analogWrite (E1,a); digitalWrite(M1,LOW); analogWrite (E2,b); digitalWrite(M2,HIGH); } void turn_R (char a,char b) //Turn Right { analogWrite (E1,a); digitalWrite(M1,HIGH); analogWrite (E2,b); digitalWrite(M2,LOW); } void finally (unsigned char n) { switch(n) // { case 0: Serial.println( "qian jin"); Serial.println( " "); advance (255,255); break; case 1: Serial.println( "hou tui"); back_off (255,255); break; case 2: Serial.println( "zuo zhuan"); turn_L (100,100); break; case 3: Serial.println( "you zhuan"); turn_R (100,100); break; case 4: Serial.println( "ting zhi"); stop(); break; default: Serial.println( "error"); Serial.println( " "); break; } } void ExtInt0Handler () { Voice.ProcessInt0(); // } void setup(void) { int i; for(i=4;i<=7;i++) pinMode(i, OUTPUT); Serial.begin(19200); //Set Baud Rate Voice.Initialise(MIC,VoiceRecognitionV1);//Initialise mode MIC or MONO,default is MIC //VoiceRecognitionV1 is VoiceRecognitionV1.0 shield //VoiceRecognitionV2 is VoiceRecognitionV2.1 module attachInterrupt(0,ExtInt0Handler,LOW); } void loop() { uint8 nAsrRes; nAsrStatus = LD_ASR_NONE; while(1) { switch(nAsrStatus) { case LD_ASR_RUNING: case LD_ASR_ERROR: break; case LD_ASR_NONE: { nAsrStatus=LD_ASR_RUNING; if (Voice.RunASR(SUM,80,sRecog)==0) // { nAsrStatus= LD_ASR_ERROR; Serial.println( "ASR_ERROR"); } Serial.println( "ASR_RUNING....."); break; } case LD_ASR_FOUNDOK: { nAsrRes =Voice. LD_GetResult();// finally(nAsrRes); nAsrStatus = LD_ASR_NONE; break; } case LD_ASR_FOUNDZERO: default: { nAsrStatus = LD_ASR_NONE; break; } }// switch delay(500); }// while } 

Het realiseren van de functionDownload het programma op de kaart van de Raad van bestuur uit te voeren test. Als we zeggen "verder", het voertuig noem "voorschot" () functie, en vervolgens gaat vooruit. Het is hetzelfde met andere bewegingen. Wanneer het naar tevredenheid werkt, kunnen we Verwijder de USB-kabel en een lithiumbatterij installeren, zodat het voertuig mobieler is.

Gerelateerde Artikelen

Maak een stemming lichtapparatuur

Maak een stemming lichtapparatuur

Zou het niet geweldig zijn om een licht van de stemming die u met uw telefoon vanuit het comfort van uw bed beheren kunt? Met een eenvoudige Bluetooth-module, een Arduinoen een RGB LED, kunt u die droom mogelijk maken.In deze tutorial gaan we om te l
Maak een externe gecontroleerde fan!

Maak een externe gecontroleerde fan!

In deze tutorial leert u hoe maak je een zeer eenvoudige fan-bijlage die door elke willekeurige afstandsbediening kan worden bestuurd.Stap 1: materialenVoor dit project moet u de volgende materialen:1. 9g Micro Servo hoorn + schroeven voor hoorn - $2
PC-assistent stem-gecontroleerde

PC-assistent stem-gecontroleerde

Ok dus ik weet dat er daar veel van deze al, maar ik kon het niet een stem gecontroleerde PC-assistent die ik echt graag vinden, dus ik mijn eigen maakte. De assistent zal doen alles van tell grappen openen programma's, en ik zelfs een klein script o
Stem gecontroleerde Arduino verlichting - Autobot

Stem gecontroleerde Arduino verlichting - Autobot

In dit instructable ik doorloopt het proces en de code om uw Arduino en uw thuis-PC in een stem gecontroleerde opdracht systeem voor verlichting of over iets anders die u met een Arduino bepalen kunt. De stem gecontroleerde arduino verlichting is mij
Hoe te maken van een standaard test voor een radio gecontroleerde VTOL geschikt voertuig.

Hoe te maken van een standaard test voor een radio gecontroleerde VTOL geschikt voertuig.

Het doel van dit instructable moet gaan over de basisprincipes van het bouwen van een test-bed voor een radio VTOL geschikt voertuig gecontroleerde.Dit is belangrijk omdat er dat een groeiende populariteit in R/C VTOL (verticale Take-Off en Landing)
Hoe maak je een externe gecontroleerde Stunt auto thuis

Hoe maak je een externe gecontroleerde Stunt auto thuis

In dit Instructable, zullen we leren om een geweldige gadget dat iedere vent wenste voor en had ook atleast probeerde eens te maken tijdens zijn jeugd. Het is niets anders dan een extern gecontroleerde auto en wat denk je, in dit instructable, we zul
DIY prothese Hand & onderarm (stem gecontroleerde)

DIY prothese Hand & onderarm (stem gecontroleerde)

* UPDATE * wilde Voeg een beetje hoe dit Instructable posten heeft positief beïnvloed mij. Naast de geweldige ontvangst en feedback die ik ontvangen in de wedstrijden en het succes dat heeft gehad in de wedstrijden hielp het me mijn belangen te defin
Hacking the Spy Video Trakr III: Maak een Grabber Bot uit Legos, Snap Circuits en de Spy Video Trakr

Hacking the Spy Video Trakr III: Maak een Grabber Bot uit Legos, Snap Circuits en de Spy Video Trakr

In dit instructable demonstreer ik hoe met Legos, Snap Circuits en de Spy Video Trakr maken van een externe gecontroleerde grabbelen bot. Hier demonstreer ik hoe te downloaden en installeren van de taal C compiler voor de Trakr. Daarna leg ik uit hoe
Maak een eng scarab-robot

Maak een eng scarab-robot

Groep 18 jaar of ouder.Hallo! Deze robot was oorspronkelijk een afstandsbediening speelgoed genaamd The Scarab. Ik had de ingewanden verwijderd en vervangen van de hersenen met de EZ-B Bluetooth Robot Controller.Dus, wil je een robot om freak uit je
Stem gecontroleerde domoticasysteem (goedkope & gemakkelijk)

Stem gecontroleerde domoticasysteem (goedkope & gemakkelijk)

Met behulp van een Arduino, een gerecycleerde laptop en beperkte programmering vaardigheden, zou je kundig voor wekken uw eigen domotica-systeem met behulp van de volgende stappen uit.Dit instructable toont een goedkope manier om te maken een dergeli
Maak een Bahut, vanaf nul

Maak een Bahut, vanaf nul

Meer opslagruimte en oppervlakte, hopelijk unclutter onze keukeneiland, te creëren zochten we een brede bahut.Uiteindelijk heb ik een, met enkel basishulpmiddelen handheld. Dit alles duurde minder dan drie dagen. Klinkt interessant? Stem dan alstubli
Stem gecontroleerde Arduino Drone

Stem gecontroleerde Arduino Drone

De hommels zijn zeer goed speelgoed en hulpmiddelen, maar meestal ze niet geen extra vaardigheden. Ik ben dol op ieder model R/C vliegen en ik wilde even een R/C drone thats een beetje slimmer dan de gebruikelijke modellen. Dat is waarom ik ontwikkel
Maak een vogel papier thee licht kaars Lamp uitknippen

Maak een vogel papier thee licht kaars Lamp uitknippen

Hier is een snelle project die je in minder dan een uur doen kunt om een prachtige papier knipsel lamp die u kunt ofwel op een laag vermogen lamp of een thee-licht kaars plaatsen.Stap 1: Een afbeelding die u wilt gebruiken op uw lamp zoekenZodra u uw
Maak een Cargo Bike!

Maak een Cargo Bike!

Hallo mijn naam is Michael.Welkom bij mijn educatief op het maken van een vrachtwagen fiets (slager fiets) van een vintage stalen mountain bike de houwer manier. Ik zou zeggen in één honderd fietsen liefhebbers is ernstig over het bezit van een fiets