Göra en röst kontrollerat fordon! (2 / 3 steg)

Steg 2: Lägga till röststyrning

Jag använde en DFRobot röst erkännande styrelse för detta. Lagerställeenheten är DFR0177, men det är endast tillgänglig i Kina just nu!

Tyvärr när jag försöker att lägga till röst kontroll funktioner, jag upplevt problem. Efter att få kontakt med en av ingenjörerna på DFRobot, sa de att Romeo V2 styrelsen baserades på ett ATmega32u4 chip, som inte skulle stödja min röst erkännande modul. Detta var irriterande, men jag låta inte det stoppar mig. Jag bytte min Romeo V2 ombord för en DFRduino UNO R3 och sedan försökte igen.

Här är en kod jag använde:

#include

#define summa 2 //variable inte är större än 50
uint8 nAsrStatus = 0;

char sRecog [SUM] [80] = {"Aktivera ljus", "stänga av lampor"}; //variable inte är större än 79, användare kan ändra

int state = 7. statusindikator
int ledde = 8. Kontrollera digitala port

Annullera slutligen (unsigned char n)
{
Switch(n) //array motsvarande sökord serienummer, såsom arrayer erkänna det första nyckelordet är "Aktivera ljus" och motsvarande löpnummer är 0.

{
fall 0:
Serial.println ("vända på lampor");
Serial.println ("");
digitalWrite(led,LOW);
bryta;
fall 1:
Serial.println ("stänga av lampor");
digitalWrite(led,HIGH);
bryta;

standard:
Serial.println ("fel");
Serial.println ("");
bryta;
}
}

void ExtInt0Handler)
{
Voice.ProcessInt0(); Skicka en avbrottssignal
}

void setup()
{
Serial.BEGIN(9600);
Voice.Initialise (MIC, VoiceRecognitionV1); //Initialise läge MIC eller MONO, standard är MIC
VoiceRecognitionV1 är VoiceRecognitionV1.0 sköld
VoiceRecognitionV2 är VoiceRecognitionV2.1 modul
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)
{
fall LD_ASR_RUNING:
fall LD_ASR_ERROR:
bryta;
fall LD_ASR_NONE:
{
nAsrStatus = LD_ASR_RUNING;
om (Voice.RunASR(SUM,80,sRecog)==0) //incorrect identifiering
{
nAsrStatus = LD_ASR_ERROR;
Serial.println ("ASR_ERROR");
}
digitalWrite(state,LOW);
Serial.println ("ASR_RUNING...");
bryta;
}
fall LD_ASR_FOUNDOK:
{
digitalWrite(state,HIGH);
nAsrRes = röst. LD_GetResult (); //once asr erkännande bearbeta ändar, plocka upp asr tolkningsresultaten
finally(nAsrRes);
nAsrStatus = LD_ASR_NONE;
bryta;
}
fall LD_ASR_FOUNDZERO:
standard:
{

nAsrStatus = LD_ASR_NONE;
bryta;
}
} / / Växla
Delay(500);
} / / medan
}

char sRecog [SUM] [80] = {"Aktivera ljus", "stänga av lampor"} kan användas för att ge fordonet röst kontrollfunktioner. Vi kan ändra detta avsnitt för att lägga till funktioner som vi vill, såsom "gå fram", "gå tillbaka", "sväng vänster", "sväng höger", "stop", etc. Vi måste också ändra funktionen "Ogiltig finally()". I fallet 0 är det första kommandot förskott, så vi kan mata "gå fram" från "Serial.println()" och samtal till funktionen "advance" på samma gång. När röst erkännande modulen upptäcker funktionen "advance", det kommer produktionen gå framåt och fordonet kommer att gå framåt. Detsamma gäller för de andra riktningarna.

En av begränsningarna i detta projekt är att modulen röst erkännande är inte alltid korrekt, på grund av olika användares röster, omgivande buller och andra faktorer. Detta kommer att förbättras i framtiden exemplen.

Koden är följande:

#include
#include //ruan chuankou
#define summan 5 //SUM
uint8 nAsrStatus = 0;
SoftwareSerial mySerial (10, 11); RX, TX
char sRecog [SUM] [80] = {"qian jin", "hou tui", "zuo zhuan", "du zhuan", "ting zhi"} ;//
int E1 = 5; M1 Varvtalsreglering
int E2 = 6; M2 Varvtalsreglering
int M1 = 4; M1 Riktning kontroll
int M2 = 7. M1 Riktning kontroll

void stop(void) //Stop
{
digitalWrite(E1,0);
digitalWrite(E2,0);
}

void advance (char, char b) //Move fram
{
analogWrite (E1, en); PWM varvtalsreglering
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}

void back_off (char, char b) //Move bakåt
{
analogWrite (E1, en);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}

void turn_L (char, char b) //Turn vänster
{
analogWrite (E1, en);
digitalWrite(M1,LOW);
analogWrite (E2, b);
digitalWrite(M2,HIGH);
}

void turn_R (char, char b) //Turn höger
{
analogWrite (E1, en);
digitalWrite(M1,HIGH);
analogWrite (E2, b);
digitalWrite(M2,LOW);
}

Annullera slutligen (unsigned char n)
{
Switch(n) / /
{
fall 0:
Serial.println ("qian jin");
Serial.println ("");
förskott (255,255);
bryta;
fall 1:
Serial.println ("hou tui");
back_off (255,255);
bryta;
fall 2:
Serial.println ("zuo zhuan");
turn_L (100.100);
bryta;
fall 3:
Serial.println ("du zhuan");
turn_R (100.100);
bryta;
fall 4:
Serial.println ("ting zhi");
Stop();
bryta;
standard:
Serial.println ("fel");
Serial.println ("");
bryta;
}
}

void ExtInt0Handler)
{
Voice.ProcessInt0(); //
}

void setup(void)
{
int i;
för (jag = 4; jag < = 7; i ++)
pinMode (i, matas);
Serial.BEGIN(19200); Ange baudvärde
Voice.Initialise (MIC, VoiceRecognitionV1); //Initialise läge MIC eller MONO, standard är MIC
VoiceRecognitionV1 är VoiceRecognitionV1.0 sköld
VoiceRecognitionV2 är VoiceRecognitionV2.1 modul
attachInterrupt(0,ExtInt0Handler,LOW);
}

void loop()
{
uint8 nAsrRes;
nAsrStatus = LD_ASR_NONE;

While(1)
{
Switch(nAsrStatus)
{
fall LD_ASR_RUNING:
fall LD_ASR_ERROR:
bryta;
fall LD_ASR_NONE:
{
nAsrStatus = LD_ASR_RUNING;
om (Voice.RunASR(SUM,80,sRecog)==0) / /
{
nAsrStatus = LD_ASR_ERROR;
Serial.println ("ASR_ERROR");
}
Serial.println ("ASR_RUNING...");
bryta;
}
fall LD_ASR_FOUNDOK:
{
nAsrRes = röst. LD_GetResult(); / /
finally(nAsrRes);
nAsrStatus = LD_ASR_NONE;
bryta;
}
fall LD_ASR_FOUNDZERO:
standard:
{

nAsrStatus = LD_ASR_NONE;
bryta;
}
} / / Växla
Delay(500);
} / / medan
}

Förverkliga functionDownload programmet på kortet på bordet att genomföra test. När vi säger "förskott", fordonet kommer att kalla "advance" ()-funktionen, då rör sig framåt. Det är samma sak med andra rörelser. När det fungerar på ett tillfredsställande sätt, kan vi koppla ur USB-kabeln och installera ett litiumbatteri så att fordonet är mer rörlig.

Se Steg
Relaterade Ämnen

Tillämpa Vinyl grafik fordon

En bra låt författare, heter Lionel Richie, skrev och sjöng en låt som heter "EASY". Det var inspirationen bakom namnet jag har slutligen beslutat om för min buss. Den första raden av låten är, "det är därför jag är lätt, som en söndag morg...

Splatter 6-trehjuligt fordon

Vi kommer att lära dig hur man gör en 6-Wheel Splatter fordon som stänker personer med bläck (det behöver inte vara människor). : DSteg 1: material1. 2 träklossar eller 1 stort trä block2. 2 4-batteri hållare (med on-off knapp)3. 1 2-batteri hållare...

Grunderna i förvandlar ditt Remote Controll fordon till ett autonomt System (Drone) genom att använda en Arduino

jag började detta projekt med målet att billigt vrida min RC helikopter till något av en UAV eller åtminstone att passa vissa sensorer att minska kollisioner och andra "mis haps."Nu är tyvärr i början av projektet missbedömde jag min lilla helik...

CARduino - Arduino-drivna, LabVIEW-kontrollerade fordon

CARduino är ett fjärrkontrollen drivna fordon som kontrolleras av en styrenhet ansluten till en dator som kör LabVIEW. Fordonet drivs av Arduino och kan utökas på genom tillägg av sensorer eller andra enheter. Enkelt använda LabVIEW, du kan ändra pro...

Air-drivna fordon

För två år sedan jag tillbringat timmar 26 + prepping en gummisnodd dra racer för ett 4: e klass klass science projekt (mitt marsvin klass), och det var en komplett byst! Även efter jag arbetade ut kinks, oförutsedda frågor kom upp och saker gick int...

Att få ett fordon misslyckades i vintern

Första saker först, måste du fastnat fordon. Detta är verkligen lätt att uppbringa. Om du inte kan skapa din egen, hitta en övermodig vän.Den bästa anledningen att få ett fordon misslyckades, är så att den kan fungera som ett fordon i stället för ett...

Cykel drivs 4-trehjuligt fordon (DiffBikeDorli)

Denna sak här är en cykel drivs fordon för två personer, i större skala även kallad öl cykel. Bikers står inför vänster. Styrning sker med en cykel styrning handtag. Bromsning sker genom att trycka på en ledad arm till marken.Den är gjord med en bakr...

Kartong modell fordon

hur man gör en kartong modell fordon på en laserskärare också detta är min första instructable så ledsen om det inte är mycket bra.Steg 1: Saker du behöver Objekt:Laserskärare,Dator,Lämplig programvara (jag använde Techsoft 2D design),2mm tjock papp...

DriveMyPhone - Smartphone kontrollerade 3D tryckta fordon

DriveMyPhone är ett projekt jag har placering på min dator i digitalt format för senaste 6 år nu. Konceptet kom runt när jag arbetade på min andra robotliknande projekt kallas MobileEarthRover en am MobileEarthRover två.Jag har äntligen haft tid att...

Autonoma / röst kontrollerat - 3D Scanning rigg för 3D utskrift

Tanken bakom röst kontrollerat / autonoma 3D scanning rigg är att möjliggöra för en 3D scanning fånga att fungera så smidigt som möjligt med minsta ansträngning för personen hur är scanning som för personen hur är att skannade.De viktigaste målen för...

Passande fordon med vanity speglar

Man skulle kunna tro att inga fordon utan vanity speglar tillverkas fortfarande i dag, men du skulle vara fel.Min Nissan NP300 ett ton lastbil är ett typexempel. Och även om det är tänkt att vara en inga krusiduller fordon, vi arbetar män fortfarande...

Vinyl fordon Banner med Silhouette Cameo

Det är svårt att föreställa sig behöva göra en vinyl banner, tills du äger en digital cutter och sedan möjligheterna är brett öppna. Bara ha verktyg som öppnar upp fantasin när design utmaningar uppkommer.Vi omvandlas en pendelbuss till en familj äve...

LEGO flygande fordon

instruktion för att skapa en Lego flygande fordon.Steg 1: material Steg 2: kroppen Montera kroppen av det flygande fordonet.Steg 3: motorer Montera propellern och motorerna och fäst dem på undersidan av kroppen.Steg 4: vingar Ihop vingarna och koppla...

Energieffektiva elektriska amfibiska fordon

Alan Larsen - 1960/6/22#1 problemet i dag är den olje-krisen. Våra bilar kostar för mycket att köra och de förstör miljön. Normala elbilar är billig att köra men dyrt på framsidan och gas du sparar brukar göra bilen betala sig, batteritiden är också...

Hur man gör billigt chassi för Robotics fordon och projekt

det finns många chassi finns i den lokala och Online-marknaden och naturligtvis många av dem är awesome och väl utformade. Men många av dem är också dyra. Men jag har en bättre idé som definitivt kommer att spara lite pengar och det ger också ett nyt...

Ett fordon stöd larm med en Self-Reseting inaktivera knappen

Vid ett tillfälle var jag för att upprätthålla säkerheten för en flotta av stora, otympliga fordon. Jag trodde att sätta stöd larm på lastbilar skulle öka allas säkerhet under manövrering på parkeringen, men jag hatade det jäkla pipa!Jag ansåg att ha...

Röst kontrollerat Arduino Drone

Drönarna är mycket bra leksaker och verktyg, men oftast har de inte någon extra kompetens. Jag älskar att flyga alla R/C modell och jag ville bara göra en R/C drönare som är lite smartare än vanliga modeller. Det är därför jag utvecklat denna mini rö...

Hur man korrekt ändrar din fordon olja

Vad du behöver:Leveranser:+ Ren olja i den särskilda vikt som du fordon kräver+ (Valfritt) olja tillsatser som motorn återställa produkten jag använder+ Nya oljefilter som passar ditt specifika fordonVerktyg:+ Car jack / våning jack+ Jackstand eller...

Röst kontrollerat Switch med Arduino

Detta är för första gången ladda upp mitt projekt i Inscrutable. Så om ni hittar något dumt misstag Vänligen ignorera det.Så, om mitt projekt, det handlar om ljusets röst drivs inspirerad från IRON-MAN filmen. Så används JARVIS av Michel c, programva...