K-9 2.0. WiFi kontrollerade och autonom Robot hund. (21 / 23 steg)

Steg 21: programmering.




Nu börjar roligt. För någon som göra mig själv att göra K-9 2.0 alla de saker som han kan göra, till exempel dynamiska samtal, reagera på taligenkänning, spåra färger, objekt och folks ansikten, och för att ge honom autonoma förmågor, dessa skulle bara stannat som idéer och drömmar. Men med EZ-Robot programvara "EZ-Builder", detta gjorde allt som nämns, och mer, möjligheten. Det fanns fortfarande en hel del räkna ut och lära sig att göra, men det sätt EZ-Builder programvara görs tillgänglig tutorials, samt en vänlig och kunnig forum gemenskap, dessa gjorda saker mycket lättare.

Jag kommer att leverera några grundläggande skript för olika funktioner och visar några av K-9's huvudsakliga funktioner och kontroller används. Jag kommer inte skriva många instruktioner om scripting och programmering hör, som skulle vara mycket att läsa, kanske ibland förvirrande, och kanske inte lämpar sig för dina egna krav. Men all information du behöver finns på EZ-robotar webbplats, där K-9 är också med på sin egen "projekt Showcase". Men om du ville ta en titt och även använda en del av K-9's funktioner, programmering skript och kontroller, en av K-9's mer grundläggande project-filer lagras i EZ-robotar online projekt lagringsanläggning, "EZ-moln". Det projekt du vill söka efter kallas "K-9 projekt MK2". Du behöver EZ-Builder programvara för att få tillgång till detta, som är gratis att ladda ner.

Så är här några av K-9 2.0 huvudfunktioner.

Mobila enhetskontroll.

EZ-Robot erbjuder möjligheten att skapa du egna mobila apps att kontrollera dina robotar, men jag bestämde mig att gå en annan riktning som jag behövde delade WiFi-anslutning för anslutning till K-9's EZ-Builder projektet och tillgång Pandorabot chatbot webbservern samtidigt, som de EZ-Builder mobiler apps inte stöder ännu. Så var vad jag gjorde istället att använda en VPN-PC remote programmet installerat på min iPhone. Detta ger mig möjligheten att visa en spegelbild av min PC skärm som kör EZ-Builder som använder iPhone pekskärmen styr datorn, således kontrollera K-9. Och med iPhone text till talmotor, kan jag använda K-9's tal erkännande kontroll och Pandorabot kontroll. Eftersom iPhone text till tal för taligenkänning är så pålitligt (på 98% noggrannhet), gör detta mig själv eller någon annan vill ha en mycket pålitlig konversation med honom.

Fungerande lampor.

Med en 180 graders servo på plats, ett enkelt skript för att rotera servo till 90 graders i endera riktningen, tryck på blinkande lägesknappen och returnerar till centrum ståndpunkt är allt som behövs. Detta skript i kombination med en resonansbotten ljudeffekt, kan den användas med mobilen, taligenkänning, Pandorabot AIML kod, styrspak eller en slumpmässig autonoma script kontroll.

Servo som driver lamporna på/bort strömbrytare kan styras på samma sätt. Det enda tillägget jag använde var när K-9 befogenheter upp som den aktiverar ett skript för att sätta lamporna på.

Här är ett enkelt skript för att ändra den belysning fasen (förutsatt att servo är ansluten till port D13 på EZ-B v4):

ControlCommand ("ljud effekter", Track_3)
servo(D13,90)

Sleep(500)

Release(D13)

Kontrollerande drivsystem.

Som drive motorer kontrolleras en H-Bridge motor controller, behövs en annan typ av skriptet. Det är beroende på hur H-bron är trådbunden upp korrekt välja rätt motorerna att vända, riktning de vänder, och hastighet. Skriptet används i en Skriptredigerare eller en rörelse panel som kan nås via joystick, voice rec, mobila kontroller och naturligtvis autonoma programmering. En extra säkerhetsfunktion lades där den tillförda effekten för H-bron går genom en av kanalerna på fjärrkontrollen strömkretsen. Här skulle jag trycker på knappen "A" på nyckelbricka till power K-9 system upp. När en trådlös anslutning upprättas skulle jag trycka knappen "B" på fob att aktivera H-bron. Detta är användbart för underhåll.

Här är ett enkelt skript till enhet K-9 framlänges (förutsatt att H-bryggan är ansluten till portarna D1, D2, D3, D4 på EZ-B v4):

Set(D1, off)

Set(D3, off)

PWM (D0, 50)

PWM (D2, 50)

Huvudrörelser.

Precis som belysning, servon används för att flytta huvudet upp/ner vänster/höger måste några enkla skript som andra kontroller kan ringa på. Skillnaden här är att servo hastighet och rörelsefrihet måste minskas som huvud och hals har begränsad maximal resa gränser.

Ett kort manus som vänder huvudet mitt på en mobil kontroll (förutsatt att servo är ansluten till port D19 på EZ-B)

IF(getservo(D19) > 10)
servodown(D19,7)

endif

Sleep(100)

Roterande öronen.

Öronen har oberoende servon som kan förvandla en i taget, eller samtidigt antingen i motsatt eller samma riktningar. Här kan hastighet och antal gånger öronen rotera ändras med olika scrips. Två skript som jag använder mest är, en, för en standard snabb rotation, och en annan långsammare hastighet vända med en radar ljudeffekt när K-9 kommer in "Scan Mode"

Här är ett enkelt skript för att rotera öronen (antar servon är anslutna till portar D16, D17 på EZ-B v4):

servo(D16,20)
servospeed(D16,1)

servo(D17,160)

servospeed(D17,1)

Sleep(700)

servo(D16,160)

servospeed(D16,1)

servo(D17,20)

servospeed(D17,1)

Sleep(1000)

servo(D16,20)

servospeed(D16,1)

servo(D17,160)

servospeed(D17,1)

Sleep(1000)

servo(D16,90)

servospeed(D16,1)

servo(D17,90)

servospeed(D17,1)

Sleep(1000)

Taligenkänning.

De flesta K-9's funktioner är bunden till ett tal erkännande kontroll med alla nödvändiga kommando kod skript för alla sina funktioner. Tal erkännande kontroll använder Microsofts SAPI taligenkänning motor, så någon Röstträning på Windows-datorn, liksom en god kvalitet mikrofon eller headset mikrofon krävs för att få mer exakta resultat. Jag har också en mycket pålitlig sekundära tal rec system som jag nämnde ovan, med iPhones tal rec motor. Men tillbaka till den huvudsakliga tal rec kontrollen. Varje skript och kontroll i K-9's programvara projektet genererar en "Trafikstyrning". Detta är i huvudsak enda rad genväg skript att komma åt nästan allt i hela projektet. Dessa kommando koder anges i den Taligenkänning redaktör och röstkommandon du vill använda kommandon anges exakt på samma sätt som du skulle säga dem. Flera röstkommandon kan läggas för att köra ett enda skript. Till exempel när du säger "Hej K-9" och han svarar med "Hej. Vad är ditt namn? ". Men du lägger till ett annat kommando där du skulle säga "Hälsningar K-9" och du skulle höra samma svar. Tal erkännande kontroll är mycket kraftfulla och användbara.

Ett litet tal erkännande skript att styra K-9 vänster

Fras:

K9 sväng vänster

Kommando:

Left(255,1200)

Talsyntes.

K-9 har en mycket tydlig engelska accent tala röst med ett lätt robotic effekt. Programmet voice köptes från Cepstral, och de tillgängliga rösterna har bra uttal. Detta använder Microsofts SAPI Text till tal-motorn och körs via EZ-byggmästare "Talsyntes" kontroll. Här kan den röst volym, betoning och tal som justeras. Ljudet är sedan överförs till ombord högtalaren under K-9's rygg panel. Ställ in är mycket enkel, och kontrollen är mycket pålitlig. Människor älskar att höra honom tala.

Ett enkelt skriptkommando att här K-9 talar:

SayEZB ("Hej. Mitt namn är K9, och jag kan prata.")

Media Player.

Programmet har två audio ljudkort kontroller. En spelar ljud genom EZ-B högtalaren (som jag använder för ljudeffekter och inspelade tal fraser) och den andra via PC: s ljud kort. Detta innebär att jag kan ansluta min PC till min hem stereon system via HDMI, WiFi eller Bluetooth, och ljud från PC ljudkort kontroll kommer att höras via min stereo system högtalare. Jag använder en VCN iPhone app för att styra ljudet via pekskärmen, men vad jag använder oftast är röstigenkänning, så kan be K-9 att spela en viss låt av en viss konstnär eller be om en random låt som ska spelas genom mitt hem ljudsystem. Och naturligtvis kan jag berätta för honom att ändra, pausa eller stoppa ett spår från att spela. Stor underhållning på partiets. Han har möjlighet att spela videor samt med en liknande metod, med skillnaden att jag skulle använda EZ-Builder att komma åt min videofiler som lagrats i min PC och spela dem genom min TV.

Kamera spårning.

Fordonsbaserade kamera är hög kvalitet och kan strömma video-flöden med ingen fördröjning. På grund av detta är kamera erkännande mycket bra och mycket användbart. Kontrollen kamera spårning har några funktioner som används. Dessa är...

  • Faktiska erkännande och spårning,
  • Färg erkännande och spårning,
  • Objektet erkännande och spårning (endast grundform objekt kan erkännas för tillfället, men han lär sig hela tiden så mer komplexa former inte kommer vara långt borta),
  • Rörelsen erkännande och spårning,
  • Och möjligheten att skanna och erkänna QR-koder som kan användas för navigering till exempel.

Videoströmmen kan visas på en PC, smartphone, tablet PC eller smart TV. Detta kan göras över en WiFi eller cellulära anslutningen och kan ses från nästan var som helst i världen. Och med rörelse erkännande kontroll aktiv, detta är bra för hemsäkerhet som K-9 kan programmeras att ta vissa åtgärdens baserat på något han se det är utöver vanligt.

Tracking kamerakontrollerna är kopplade till skriptkommandon som kontrollerar hans huvud servo rörelser, tillsammans med drive motor och styrning kontroller. K-9 kan också spela in video och ta stillbilder när ombeds göra detta, eller självständigt utifrån vad han se.

Köra kontroller.

Enheten kontrollerna skrivs huvudsakligen i skriptformat, som jag nämnde tidigare Kontrollkommandon (genvägar) för hans drive system kan användas i många kontroller som tal erkännande och beröring skärm kontroll. Som drive motorer är ansluten till en H-Bridge motor controller, hade skript skrivas med värden för PWM (pulse bredd modulering). Detta är vad som används för att styra som motorerna trampar när K-9 roaming runt. Här är ett snabbt exempel av den kod som används i mobila gränssnittet. Tryck på "Forward"-knappen en gång och K-9 rör sig framåt. Tryck på en knapp igen, K-9 stop.

IF (! $pressed)
Set(D1, off)

Set(D3, off)

PWM (D0, 40)

PWM (D2, 40)

$pressed = 1 annat

Set(D1, off)

Set(D3, off)

PWM (D0, 0)

PWM (D2, 0)

$pressed = 0

ENDIF

Autonom personlighet.

K-9's autonoma förmågor hanteras med hjälp av en random person generator och timing skript som är bunden till den inbyggda sensorer. Den personlighet generatorn tillåter K-9 att slumpmässigt utföra skyddspatrullering av huset, berätta en random skämt Kul fakta eller inleda en konversation. Timing skript kan kommandot kod för olika kontroller och vidta åtgärder plockas upp på sensorer som ombord rök/gas detektor.

En kommandokoden för att berätta skämt (under förutsättning att skämt skript är redan programmerade)...


ControlCommand ("Script Manager", ScriptStart, "Random rena skämt")

Och ett skript för att varning av påvisande av rök eller gas (förutsatt att rök sensor är ansluten till analog port ADC0)...

: loop
$smoke=getADC(adc0)

IF($Smoke>70)

sayEZB ("Steve. Min sensorer har upptäckt, presenter av rök, eller gas.")

endif

Sleep(7000)

goto(loop)

Objekt att undvika upptäckt.

Hjärtat av objektet identifiering och undvikande är en Ultraljuds avstånd sensor, ett servo som roterar 180 grader och en radar kontroll mjukvaran EZ-Builder. Det ultraljuds kan fungera som en rörelsesensor för upptäckt som kan utlösa kommando koder eller med servo sakta svepande från vänster till höger och tillbaka, om något objekt, till exempel väggar eller möbler upptäcks inom ett fördefinierat intervall, ett skript i K-9's drive kontroller kan stoppa motorer, omvänd, och hitta en väg runt objektet.

Linje följande / rum mappning.

Linje följande skulle ha varit en enkel implementering att tillägga, med hjälp av en IR-sensor och några program scripting. Men saken är den, mitt hus inte har linjer målade över golven. Men det var ett bättre sätt för K-9 att följa linjer om han, eller själv önskade, och raderna skulle inte vara synligt för det mänskliga ögat. Detta skulle göras genom att använda ett floor kartläggning kontroll. För att uttrycka det enkelt, skulle jag få K-9 att flytta runt ett rum och låta honom dra en virtuell linje. Denna linje kan den användas för K-9 att följa den en gång, eller att registreras och följt en annan gång. Alternativet inspelning ger också möjlighet att karta ett rum, eller ett antal rum. Ganska praktiskt för när strövar han runt i huset i fristående läge.

Här är ett kort manus som kan användas i "Våningen Mapping" (förutsatt att kontrollen golvet karta är aktiv)

ControlCommand ("Golvet karta", Reset)
Forward(150,4000)

Sleep(2000)

Right(100,2000)

Sleep(7000)

Forward(150,4000)

Sleep(2000)

Stop()

Telefonsamtal och e-postmeddelanden.

Den inbyggda högtalaren under panelen dorsala är Bluetooth-aktiverade, kan ansluta en telefon till högtalaren tillåta K-9 att anmäla av mötande telefonsamtal, e-post, SMS, FaceBook och Twitter varningar, larm, meddelanden och evenemanget betalningspåminnelser. Men K-9 kan gå en bättre min faktiskt talar om som ringa eller maila dig. För att göra detta jag använde den ljudredigering programvaran "Audacity" och spelade in en lista med ljudfiler av K-9 funktionen hans tal syntes säga saker som "Du har ett inkommande samtal från din vän, Richard" och "Du har fått ett SMS från din vän, Mark". Detta klipptes och volymen in i Audacity med en standard ton överdras. Till exempel när det finns ett telefonsamtal du skulle höra två sekunder av en hög ton, volymen skulle släppa 50% och sedan röst skulle höras. När röst avslutar meningen stiger volymen på ringsignalen tillbaka till 100%.

Så, för iPhone jag använder, en gång alla notifieringar skapas, redigeras och sparas, de måste omvandlas i till ringsignal filer som telefonen kan använda och sparas på ditt iTunes-bibliotek.

  1. Starta iTunes på datorn.
  2. Från biblioteket, högerklicka på den låt du vill använda som ringsignal och välj sedan "Visa Info".
  3. Välj fliken Alternativ och sedan kryssa i rutorna starttid och stopptid. Vad jag gjorde i Audacity var att trimma alla toner till 29 sekunder så detta nästa steg var inte krävs. Ange gånger som du vill att ringsignalen att starta och stoppa. Så kolla om din ton är 30 sekunder (eftersom detta är Max limit) eller mindre. Om inte, du måste lyssna på ringsignalen först och skriva ned den tid du vill att det ska börja.
  4. Klicka på "OK". Nu Högerklicka på spåret igen, och välj sedan "skapa AAC version". iTunes kommer nu konvertera ringsignal. Det kommer att visas som dubbletter spår som du kan identifiera den genom "Track info" sedan "Filtyp".
  5. Högerklicka på ringsignal och sedan använda alternativ fliken från menyn "Visa info", ovårdad start och stopptider till återvända dem till deras ursprungliga tider då klick OK.
  6. Nu rätt klick på din kortare ringsignal spår och klicka på "Visa i Windows Explorer". Dubbelklicka på filen för att lägga till det i avsnittet "Toner" iTunes-biblioteket. Obs: Stegen som beskrivs ovan måste göras en ringsignal som är en lång process beroende på hur många filer du skapat, men det är en en tid sak
  7. Ta bort den ursprungliga ringsignalen från biblioteket eftersom det inte längre kommer att spela.
  8. Slutligen ansluter din iPhone och ladda upp den nya ringsignaler till telefonen, väljer den rätta tonen för var och en av dina kontakter, larm eller anmälningar. Anslut telefonen till högtalaren och varje gång telefonen varnar dig, K-9 ska säga vad det alert är.

Det finns många fler funktioner och funktioner som K-9 2.0 har, men det är alldeles för många att lista här utan att ge information overload. Men du bör få tanken hur mångsidig och användbar och unika K-9 är, som många av de robotar som är runt bara kunde drömma om gör hälften av vad K-9 klarar av och hur väl han gör det. Men jag säger detta, om jag lyckades göra det, kan du också. Kontrollerna i EZ-Builder gör saker lätt, men mer arbete du lagt scripting, programmering och lära sig att få ut mesta möjliga av alla tillgängliga kontroller, bättre och mer imponerande du robot kommer att vara. Och samma sak med att bygga själv. Ju mer tid du tar, och viljan att lära sig nya färdigheter, desto bättre blir slutresultatet.

Se Steg
Relaterade Ämnen

WiFi kontrollerade kamera-bil

Det enklaste och mest effektiva sättet att göra en trådlösa och anslutna bil!För några månader sedan köpte jag en 5$ RC bil i ett köpcentrum. Med min rumskompis, vi slogs det skulle vara kul att hacka den så vi kan styra det med något mer intressant...

LEAP rörelse kontrollerad Remote Search och bortskaffande Robot

Som en del av min post för Leap #3D sylt var jag upphetsad att bygga denna trådlösa gest kontrollerade Sök/rädda Robot baserad på Raspberry Pi. Detta projekt visar och ger en minimalistisk exempel på hur trådlös 3D hand gester kan användas för att st...

WiFi kontrollerad ljus Switch

I detta instructable, jag kommer att visa dig hur man gör en WiFi kontrollerade strömbrytare. Jag vet att jag kunde ha använt ett relä, men jag ville inte att ändra alla elektriska saker i huset.Steg 1: Delar och verktyg Här är delar och verktyg som...

WiFi kontrollerad LED-skärm

Nästan alla butiker har en en LED-display. De är det perfekta attraktiva och låg kostnad reklam verktyget. De flesta av dem har dock en begränsning. De är statiska. Detta innebär att du inte kan ändra vad som visas på dem. Så för anföra som exempel o...

Bästa USB WiFi-Adapter och Setup för Raspberry Pi

Få de flesta bandbredd från ditt wifi-kort. Jag skrev detta instructable eftersom jag köpte en RT5370 USB WiFi Adapter som var reklamen som överensstämmande med 802.11n, men kämpade för att köra på 1Mbps.Bild: iperf3 resultat med mikrovågsugn kör (rö...

Bygga din Internet kontrollerad Video-Streaming Robot med Arduino och Raspberry Pi

< the Instructable och koden är redo. Njut! Lämna en kommentar med du feedback! >Jag är (aka LiquidCrystalDisplay / Itay), en 14 år gammal student från Israel lärande i Max Shein Junior High School för avancerad vetenskap och matematik. Jag gör dett...

WiFi kontrollerad RGB LED Strip

De IR-fjärrkontroller som används för att styra RGB LED strips kan ibland bli irriterande på grund av deras begränsade räckvidd och jakt på fjärrkontrollen när du inte hittar den. Detta enkla, men effektiva projekt kan lösa ett problem genom att kont...

WiFi kontrollerade Smart ljuskrona med LinkitONE

Har en gammal skola ljuskrona hemma? Är det för tråkigt eller för gammal? Vill du automatisera det? Vill du bygga något häftigt? Då är du på rätt plats!Här ska jag visa dig hur du sätter din gamla elegant ljuskrona till en WiFi ljuskrona som du kan k...

Arduino, Temp, fuktighet, WiFi, MySQL och Highcharts

Detta är min första Instructable medan det fungerar som är, det är en prototyp/bevis av begreppen bara.Denna lösning är en av flera som krävs för att övervaka en inomhuspool installation för att tillåta en ingenjör att erbjuda förslag på hur vi kan s...

Bita hinder autonom Robot «Sanglier» (vildsvin)

helhetskonceptVår första idé var att skapa en spårad robot möjlighet att klättra trappor och många andra hinder, att nå en bra fart (runt 10 eller 15 km/h) samtidigt som filmar och överföra data. Det kommer att själv besluta om den kan gå igenom ett...

DIY Johansson - bara en autonom Robot

Johanssons koncept är inte bara om att göra en Rover.. .blindly som jag berätta för dig att och lura runt... dess mer än bara att göra en Robot... jag har införlivat de flesta av min lära från de senaste 6 månaderna till detta projekt... allvarligt t...

MICBot autonom Robot hinder Deviance

MICBot är en autonom robot för hinder detektering och avvikande beteende och går runt,det fungerar inomhus eller utomhus.Steg 1: Ultraljud Sensor SFR05 Därför denna lösning använder ultrasonic sensor som ett mått på avstånd och gör det möjligt att st...

Hur till hacka en trådlös Xbox handkontroll för att göra en autonom robot!

Introduction:Detta projekt kom när jag försöker göra en låg kostnad autonom robot för användning iutbildning. Tanken är att eleverna skulle kunna identifiera sig med Xbox-handkontrollenoch njut hacking det till något långt mer intressant!En dag var j...

Ollie-en DIY autonom robot luftskepp

Ollie är en öppen källkod luftskepp-baserade autonoma och omgivande robot som bor i människors livsmiljöer. Ollie är uppmärksam, ofta flyger på ett sätt som tyder på nyfikenhet för omvärlden. Ollie reagerar till röster av ivrigt flaxande vingarna, ko...

Nybörjare autonom robot (delvis)

Alla delvis nr programmering robotens jag såg krävs spdt växlar som kan få lätt aktiveras, men jag hade inte den lyxen. Så jag gjorde en enkel och lätt att göra delvis autonom robot.Steg 1: Gå och hämta grejer2 x Bo motors ca 150 rpm. (passform och g...

DIY cool och billig liten hund gymnastikskor eller kängor från silvertejp

denna vinter vi spenderat mucho pengar på en uppsättning doggie tossor att skydda våra West Highland terrier fötter från fasa för Vermont snö, salt och is. Stövlarna såg hardy, utom vistelse på bra alls och vår hund hatade dem och gick likt inte en r...

WiFi kontrollerade kaffe-och dalbana med färg ändrar temperatur indikator LED

Veta när man ska dricka och njuta av ditt kaffe har undersökts på många sätt. En av dem är LED färg ändrar kaffe-och dalbana temperatur. LAMPAN tänds om temperatur tröskelvärde nås. Genom att utnyttja tri-color LED med inbyggd IC, kaffe-och dalbana h...

Raspberry Pi Web kontrollerad / autonom Robot

Introduktion (uppdaterad 26/12/15)Detta är min första någonsin försök att bygga en web styrd robot med inbyggd i fristående läge. Projektet började som en Arduino Nano baserat kollision undvikande robot byggd för att inspirera lågstadiebarn och utvec...

WiFi kontrollerade ambulerande Webcam!

Jag har haft denna idé rullande runt i min hjärna för ett par år nu att det skulle vara ganska coolt att montera en webbkamera på en fjärrkontroll bil och bygga en liten wifi aktiverat Mars rover för mitt hus. Tänkte att det skulle vara kul att se va...