Multi-Functional Star Wars Astromech Droid (9 / 15 steg)

Steg 9: programmering.



Ett par steg kommer att gå igenom några av de grundläggande programmering och tillverkning av mobila app. Inte för att göra dessa steg för långt, kommer att jag dela några av skript för grundläggande funktioner som kan anpassas för de flesta robotar använder EZ-Robot plattform.

För E4-B4-programmering och kontroller använde jag EZ-Robot EZ-Builder för Windows-programvara som du kan få ditt eget exemplar av här. Fullständiga uppgifter om använder EZ-Robot plattform, med handledning av med hjälp av kontroller och skriva skript (några av tutorials jag skrev själv som gemenskapen driva att hjälpa andra) kan hittas här. Så här är programmerade jag E4-B4.

När du öppnat ett nytt EZ-Builder-projekt, var det första jag behövde göra att ställa in servon. Som jag använder SSC-32, var detta lite av ett annat förfarande än ställer in servon direkt ansluten till EZ-B. Först och främst, en enda rad i skriptet behövs och måste köra när EZ-B v4 och SSC-32 ansluter till projektet EZ-Builder...

#This är initiering skriptet för ssc-32 ansluten till UART-port 0,

#and detta behöver endast köras en gång varje gång projektet öppnas och en anslutning görs.

UARTInit(0,0,38400)

Jag har lagt en "Script Manager" till mitt projekt som jag döptes "Setup meny", och skapa indragbara armarna i kroppen. Så, verktyg verktyg armarna använda följande skript...

#USB ARM DISTRIBUERA

#Servo positioner är P500 minsta som är lika med servo läge 1,

#and P2500 maximalt vilket är lika med servo position 180.

$pos = "P1400"

#The S700 är för servo hastighet.

$m_speed = "S700"

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

Obs: Du kommer se en hel del skript som jag har skrivit här, har en
# anslutning till några av koden. Något som har denna hash framför den, är ett skript som körs inte, och används endast för att göra anteckningar.

Det sätt de flesta digitala servon är utformade, tenderar de att göra en irriterande surrande ljud i en anläggning läge. Så för att bekämpa detta, jag lade till några fler rader med skript som kommer att släppa en servo från sitt läge på anläggningen. Detta i huvudsak minskar kraften till servo och kommer inte att hålla någon vikt. Detta är bra för horisontella infällbar armar och klaffar som det finns ingen vikt för servo att hålla. Release skript används främst i kommandona "Återkalla Arm" och "Stäng flik". Så är här vad skriptet nu ser ut...

För verktyget arm distribution...

#USB ARM TA TILLBAKA

#This ta tillbaka skriptet måste köras först för att initiera en servo efter ett servo release kommando.
$pos = "P600"

$m_speed = "S700"

#is varvtalsreglering

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

#A små 100 millisekunden sömn är till för smidig övergång.

Sleep(100)

#Now distribuera skript kan köras.

#USB ARM DISTRIBUERA

$pos = "P1400"

$m_speed = "S700"

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

och för verktyget Arm ta tillbaka...

#USB ARM TA TILLBAKA
$pos = "P600"

$m_speed = "S700" #is varvtalsreglering

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

#A sömn är till ge tid för armen att ta tillbaka.

SLEEP(4000)

#USB ARM RELEASE

#Notice "P0" nedan. Detta är det enda värdet enligt P500 som kan användas. Detta frigör servo.

$pos = "P0"

$m_speed = "S700"

UARTWrite(0,0,"#6"+$pos+$m_speed,13)

I kupolen och kroppen klaffar också använda liknande skript med deras lägsta och högsta positionerna justerade för varje servo där det behövs. Den första skriften chefen har varje enskild skript för varje enskild åtgärd, till exempel... Luckan öppen, lock i närheten, distribueras med verktyget, verktyget dra tillbaka, och så vidare. Detta görs också för "lampor" och "Off" och starta/stoppa sensormätningar.

Om du vill kombinera rörelser för att öppna en flik som sedan distribuerar ett verktyg verktyg, lades en andra script manager till EZ-Builder projektet. Jag kommer att använda verktyget USB-hub som exempel. I den nya script manager, som jag döptes "Master systemmenyn", du kan kopiera och klistra in skriptkommandon från "Setup meny", men det finns ett enklare sätt. Varje gång du lägger till ett nytt skript för kontroll, genereras detta något som kallas en "Trafikstyrning" kallas också en "Lathund" kommandot. Detta är genväg kommandon för att starta, stoppa, pausa och återuppta ett visst skript. Så, om du vill distribuera USB-hubb, jag använda följande skript...

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "USB-luckan öppen")

#This sömn kommandot ger tid för luckan att öppna innan armen distribuerar.

Sleep(2000)

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "USB-arm distribuera")

Och om du vill återkalla USB-hubb, följande används...

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "USB-arm ta tillbaka")

#This sömn ger tillräckligt med tid för verktyget att ta tillbaka innan luckan stängs.

Sleep(4000)

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "USB-lock nära")

Samma används med alla andra verktyg verktyg, med längden av kommandona Sleep() justerat för varje verktyg. (För att vara säker och inte riskera att skada något, föreslår jag att ta bort den främre hud för att konfigurera och testa kombination skript).

Dome servo ställs in annorlunda som den är ansluten direkt till den
EZ-B, använder alltså ett annorlunda och enklare skript än SSC-32 UART kommandon för manuell kontroll. Du kan använda följande skript för att göra en enkel tur av kupolen...

#This kommando anger servo hastigheten.

#Servo hastigheter sträcker sig från "0" som är snabbast, och "10" som är långsammast.

#This exemplet antas servo är ansluten till digital port "D0".

Servospeed(D5,2)

#This kommandot anger hur mycket grader servo ska vända.

#Servo centrum ståndpunkt är "90" med "1" är minsta

#and "180" att vara maximal.

Servo(D5,120)

I den mobila gränssnitt som kan användas på en dator av mobiltelefon, har jag ett script som stänger kupolen 10 grader på varje knapptryckning. Detta är användbart om jag vill titta igenom E4-B4-kamera på en PC eller mobil enhet...

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

endif

Sleep(100)

Att växelvis blinkande av röda och blå lysdioder, jag använder en enkel loop skript som blinkar mellan rött och blått varje två sekunder tills jag manuellt stoppa manus, jag jag använder en kontroll kommando för att göra så...

#This förutsätter att den röda lysdioden är ansluten till digital port D22 och blått till D23.

: loop
set(D22,on)

Sleep(2000)

set(D22,off)

Sleep(30)

set(D23,on)

Sleep(2000)

set(D23,off)

Sleep(30)

set(D22,on)

Sleep(2000)

set(D22,off)

Sleep(30)

set(D23,on)

Sleep(2000)

set(D23,off)

Sleep(30)

Goto(loop)

Jag använder ultraljud avstånd sensorn på öl jordluckraren att känna igen när någons hand är nära att ge eller plocka upp ett objekt. Detta kommer att utlösa en kontroll befalla skriften för att öppna och stänga klo...

ControlCommand ("Random prata ombord", Track_14)
Sleep(1500)

ControlCommand ("Master meny", ScriptStart, "Öl Arm distribuera")

Sleep(5000)

: loop

# få distansera av ping sensor

$distance = getping (d19, d20)

om ($distance < 6)

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "Öl klo öppna")

Sleep(2000)

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "Öl klo nära")

Sleep(2000)

ControlCommand ("Master meny", ScriptStart, "Öl Arm ta tillbaka")

ControlCommand ("öl test", ScriptStop)

endif

# Dröjsmål till att skriptet ska köras för snabbt

Sleep(50)

goto(loop)

Ett liknande skript används för objektet undvika använda ping sensorerna i fötterna när E4 rör sig runt. Om ett objekt exempelvis en vägg upptäcks på vänster fot, kommer att han sluta och sväng höger och fortsätt att flytta framåt. Och om höger fot upptäcker något, han kommer att sluta, sväng vänster, sedan gå framåt.

För något annat, ska jag ge ett exempel på den rök och gas detektering sensorn...

: loop
$smoke=getADC(adc2)

IF($Smoke>40)

saywait ("jag nu sensing rök eller gas rök i området.")

Sleep(10000)

ElseIf($Smoke>60)

saywait ("varning. Jag nu avkänning en ökad grad av rök, eller gas rök i området.")

endif

Sleep(100)

goto(loop)

Här är en annan skriptexemplet. När en viss tid nås, kommer E4 kommer att påminna någon att ta deras piller, sedan fördela dem...

#The namnet på skriptet kallas "Piller".

waituntiltime (16, 35)
säger ("det är 4 35 pm och tid för din eftermiddag medicin.")

ControlCommand ("Random prata ombord", Track_14)
Sleep(1500)

ControlCommand ("Master meny", ScriptStart, "Öl Arm distribuera")

Sleep(5000)

: loop

$distance = getping (d19, d20)

om ($distance < 6)

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "Öl klo öppna")

Sleep(2000)

ControlCommand ("kontroll inställningsmenyn", ScriptStart, "Öl klo nära")

Sleep(2000)

ControlCommand ("Master meny", ScriptStart, "Öl Arm ta tillbaka")

#This slutar här skriptet körs när åtgärden är slutförd.

ControlCommand ("Piller", ScriptStop)

endif

Sleep(50)

goto(loop)

Sleep(2000)

Detta särskilt skript kan läggas till en navigering och ansikte erkännande script, så att E4 kan navigera och hitta personen (förutsatt att personer ansikte har lagts till E4-B4 ansiktsigenkänning bibliotek), fördela sedan piller på inställd tid.

Taligenkänning är en ganska enkel att ställa in för att köra skript. Detta kan användas för att utföra ganska mycket skript eller kommandot i E4's projekt. Så länge datorn du använder har korrekt inställd och tränad för taligenkänning, och en bra mikrofon används, skriver du helt enkelt i en fras vad du skulle säga till roboten, sedan lägga till kommandot ränsel du vill att det ska köras när denna fras känns igen. Här kan du skriva den nödvändiga skriptkommandon eller Använd styrkommandon.

Som nämnts, detta är bara en handfull enkla skript exempel där E4-B4, men han har också massor mer som objekt och färg erkännande, chatbot och text översättare program och en personlighet generator som hjälper ge E4 autonoma förmågor. Mer detaljer vad kontroller och förmågor är tillgänglig till använda, och med många skript exempel som kan användas, ändras eller anpassas för de flesta robotar, kan hittas på webbplatsen för EZ-Robot. Jag bygger på E4-B4 autonoma program bit för bit, så en dag han kommer att kunna auto docka och ladda sina batterier och göra slumpmässiga säkerhet svep av huset. Han har redan ett system hemsäkerhet på plats, där han kan vidta åtgärder (t.ex. varna mig på Twitter och börjar strömma en live video feed eller ljud ett larm och ta/skicka bilder) om ett ljud identifieras en tänds när det inte förväntas, eller hans PIR-sensor utlöses.

Som sagt, jag kunde gå på lista över alla skript här på detta Instructable, men detta skulle göra det mycket lång Instructable som E4-B4 har massor av kod programmerad. Kom ihåg att om du har några frågor angående något om E4-B4 bygga eller programmering, Känn dig fri att fråga och jag ska göra mitt bästa att svara er. Du kan också ta en titt på en av E4-B4 projekt genom att klicka häroch öppna filen med EZ-Builder. Dessa projekt gjordes tillgängliga för att dela med någon, och innehåller en hel del kontroller och programmering skript som används, inklusive objekt och ansiktsigenkänning programmering som ses i videorna.

Se Steg
Relaterade Ämnen

Papercraft skala 1:1 Star Wars Battle Droid.

En gång på en galax långt långt borta... du kan göra stridsdroider av papper!Jag vet att många av er förbereda för halloween... Tja... även om du inte du kan göra dig själv en futuristiska liv storlek BATTLE DROID! Star wars har alltid varit min favo...

Skapandet av Star Wars Hailfire Droid; Inledning

till att börja med Wolfgang, Braxton och Tyler är gymnasieelever som arbetar på ett 3D-designprojekt. Varför vi valde att göra Hailfire droid var vår inspiration av Star Wars, och det var enkelt att bygga några 3D delar. Vi började med brainstorming...

STAR WARS BB8 SNOWJORDKLOT

Tjena alla,Detta Instructable visar dig hur du gör din egen någorlunda billigt anpassade snowjordklot. Dessa verkligen kan göras till någon design men självklart gick jag med Star Wars BB8 droid design...Bakgrunden Info:Efter en nyligen inträffade ka...

Q5 en Star Wars tema Astromech Driod

Så du är ett fan av Star Wars-universum och du vill bygga din egen representation av en arbetande Astomech Driod. Om du inte är berörda med noggrannhet men vill bara något som ser bra ut och fungerar då detta Instructable är för dig. Genom att söka g...

Star Wars origami: Battle Droid design

Jag är ny på Instructables, och detta är min första origami design som jag har publicerat. Jag gjorde en del efterforskningar på internet och fick reda på att det inte är någon lätt uppnåeligt battle droid mönster som jag kunde hitta, så jag kom med...

Star Wars ons Tredwell Droid

i denna fina Instructable jag kommer att visa hur man gör en star wars fullskaliga Tredwell droid "från star wars. bygget är måttligt svårt och är en lång bygga och är också en R/C om du väljer det är.Tredwell droid var en stötta i star wars episod 4...

Fullskalig mouse droid från star wars

Jag älskar star wars och har alltid älskat bygga saker från filmen franchise. Jag har min egen Stormtrooper armour, efter att ha besökt en star wars dag på vår lokala science center bestämde jag mig för jag ville göra en Droid från filmen.R2D2 var mi...

Star Wars på Ingångsnivå Droid "Mouse Droid"

i denna fina Instructable jag kommer att visa hur man gör en star wars halv skala på Ingångsnivå Droid eller "mouse droid" från star wars. bygget är kreativt snabbt och billigt (runt $40).Första: avmarkera ett område för ditt arbete. du behöver...

Star Wars Cross Stitch: Droid tossor

Cross stitch mönster (i excel och bild form) med den BB-8, R2-D2 och C-3PO från Star Wars. Tossor anskaffades från Jo-Ann tyg. Designen kan också göras på en vanlig platt trasa.Steg 1: materialFärger (standard floss färgnummer)** BB-8 **Kroppen - 762...

BB8 byggde med Lego Star Wars delar... Och ändå moves i slutet av denna handledning

Jag har skickat in denna modell till Lego idéerhttps://Ideas.LEGO.com/projects/127584Om du gillar denna Lego version av BB8, rösta för det här projektet.Logga in med kontot sociala medieroch rösta för det.Tack själv en miljonen!Jag såg "Ett nytt hopp...

BB-8 och R2-D2 - Star Wars småbarn Halloween kostymer

Kanske är droiderna du letar efter? Vi avslutade bara att göra dessa för våra barn (i åldrarna 5 och 3). Min dotter är en sann prinsessa. Jag gifte mig med en tom pojke så det är definitivt en natur över nurture situation. Allt hon äger är rosa och g...

DIY Star Wars Christmas Ornament

Med en nya Star Wars-film kommer ut denna jul är alla inklusive mig som har en besatthet om denna saga hela Star Wars jul inredning. I denna tutorial ska jag visa dig hur jag gjorde denna BB8 droid julgran prydnad.Steg 1: Verktyg och material.För det...

Holocron: Bygga en Star Wars tumma driva

i the Extended universum av Star Wars, Holocron är ett slags AI-hjälp, telepatiskt manövrerade, information lagringsenhet. Och, visst, du kan bygga en prop version (det finns även ett kit). Eller du kan göra en fancy version med en riktig blixt driva...

DIY Star Wars-Walking Dead

Hur man gör din egen Star Wars Zombie Apocalypse.Du hörde mig.Zombie Apocalypse.I detta Instructable kommer jag visa dig hur man gör en Diorama ur gamla Star Wars figurer. Jag är en ivrig Star Wars fan, och som barn jag samlat många av actionfigurer....

3D BB-8 från Star Wars | Pärlmix Sprites (Perler/Hama pärlor)

Fans av Star Wars kommer att erkänna denna lilla droid som visas i den senaste filmen Star Wars: The Force vaknar som följe av en av den kvinnliga huvudpersonen Rey.Skapa din egen lilla BB-8 efter denna enkla nerdy handledning och ha honom dekorera o...

Star Wars C3PO och R2D2 målade skor!

Star Wars C3PO och R2D2 målade klackar!Ja--det är skorna du söker!Jag blev inspirerad av dessa R2D2 klackar som Mikeasaurus gjorde!Jag inte lägga till tech och jag blandade dem upp lite... menVem vill inte ha missmatchad droid skor???Jag älskar hur d...

Star Wars rekvisita

i detta instructable jag kommer att visa dig hur jag gjorde följande star wars rekvisita för Halloween: Astro Droid, lilla Yoda ljussabel, lilla Darth Vader Light Saber (inte filmen exakt), bältet för vuxna Jedi och Belt Pouch.Bara så vi är på samma...

Star Wars Han Solo bälteshölster pistol

här är ett enkelt och billigt sätt att göra en awesome Han Solo pistol hölster. Min fästman och jag kommer att vara Leia och Han för Halloween och hans dräkt skulle inte vara komplett utan signatur Han Solo pistol hölster. Jag är ett stort Star Wars...

STAR WARS sänggavel med lysande stjärnor

introduktionJag blev inspirerad att skapa denna dubbel storlek huvudet styrelse eftersom min son är så fast på Star Wars. Han kan inte få nog av den. LED stjärnorna är perfekt för barn som behöver lite extra ljus vid sängdags. Det tar dem bort till e...