Hacking Spy Video Trakr III: göra en Grabber Bot av Legos, Snap kretsar och Spy Video Trakr (21 / 21 steg)
Steg 21: Source Code
Här är koden:
////////////////////////////////////////////
Trakr motorstyrning för Spy Video TRAKR
Programmet söker igenom för att se om knappen A var
pressade på TRAKR remote och uppsättningar GPC0 hög
och GPC1 låg Skicka aktuella till LF pin på den
Snap kretsar Motor Control IC truning motorn fram
//
Om B-knappen trycks, ställer GPC0 låg
och GPC1 hög Skicka aktuella till LF pin på den
Snap kretsar Motor Control IC truning motorn omvänd
///////////////////////////////////////////
#include "svt.h" //include officiella API
#include "JAPI.h" //include "Hemliga sås" API
#define GPC0 (1 << 0) //bitmask för pin GPC0 = 00000001
#define GPC1 (1 << 1) //bitmask för pin GPC1 = 00000010
#define GPC2 (1 << 2) //bitmask för pin GPC2 = 00000100
#define GPC3 (1 << 3) //bitmask för pin GPC3 = 00001000
#define GPC4 (1 << 4) //bitmask för pin GPC4 = 00010000
#define GPC5 (1 << 5) //bitmask för pin GPC5 = 00100000
#define GPC6 (1 << 6) //bitmask för pin GPC6 = 01000000
#define GPC7 (1 << 7) //bitmask för pin GPC7 = 10000000
int keyState; definiera "keystate" som heltal
void Start()
{
JAPI_SetIoOutputMode(GPC0+GPC1); //Set Utläge för stift GPC0 och GPC1
}
bool Run()
{
keyState=GetRemoteKeys(); TRAKR fjärrkontroll nedtryckt
tilldela keystate
om (keyState > 0)
{//if keystate är större än 0
IF(keyState&KEY_INPUT1)
{//Button en pressad (motor framåt)
JAPI_SetIoHigh (GPC0), //Set GPC0 pin hög (3.3V)
} annat {
JAPI_SetIoLow(GPC0); Stänga av pin GPC0
}
IF(keyState&KEY_INPUT2)
{//Button B tryckte (motor bakåt)
JAPI_SetIoHigh (GPC1), //Set GPC1 pin hög (3.3V)
} annat {
JAPI_SetIoLow(GPC1); Stänga av pin GPC1
}
IF(keyState&KEY_HOME)
{//if hem-knappen intryckt
returnera false; Detta kommer att avslutas loopen
}
}
return true; loopen upprepas tills falskt
}
void End()
{//Program avsluta - Stäng av båda stiften
JAPI_SetIoLow(GPC0+GPC1);
}
Här är den Make-filen:
# Makefile för TRAKR leksak
# Trakr projektet
TRACKR_PATH = C:/elinagrip
Programnamn = trakrmotorcontrol
PRETTY_NAME = trakrmotorcontrol
OUTPUT_PATH =. / mellanliggande
OUTPUT_NAME = $(OUTPUT_PATH) / $(programnamn) Elf
INTERNALS_PATH =... / Internals
KÄLLOR = app.c
S_OBJECTS = $(OUTPUT_PATH)/app.o
OBJEKT = $(S_OBJECTS) $(INTERNALS_PATH)/trakr.a
SHELL = sh
CC = arm-elf-gcc
SOM = arm-elf-as
BIN = arm-elf-ld
LD = arm-elf-ld
TOPMEMORY = 0XFFE7C000
CFLAGS = - O0-JAG... / Internals/Include-jag... / Internals-vägg - gstabs +
TARGET_FLAG = - mcpu = arm926ejs - mapcs-32 - mlittle-endian - specs=specs.semi
LDFLAGS = -T... /Internals/WJ_APP_8M.LD -Wl,--defsym-Wl,__stack_base=$(TOPMEMORY) -Wl,-karta -Wl, $(basename $ - nostartfiles-static
alla: prebuild $(OUTPUT_NAME) postbuild
$(OUTPUT_NAME): $(OBJECTS)
"Länka... "
"Skapa filen $
-u _start -o $@ $(INTERNALS_PATH)/trakr_start.a $(OBJECTS) $(TARGET_FLAG) $(LDFLAGS)
$(OUTPUT_PATH)/app.o:app.c Makefile
"Sammanställa $<"
-c -o "$" $< "$(TARGET_FLAG) $(CFLAGS)
. FALSKA: Rengör prebuild postbuild
ren:
$(RM) -f $(programnamn) .bin
$(RM) -f "$(PRETTY_NAME) .bin"
$(RM) -f $(OUTPUT_PATH)/app.o
$(RM) -f $(OUTPUT_NAME)
$(RM) -f $(MKDEPFILE)
postbuild:
arm-elf-objcopy - O binära $(OUTPUT_NAME) "$(PRETTY_NAME) .bin"
[ -d "E:/" ] ; sedan \
CP "$(PRETTY_NAME) .bin" e:/APPS /; \
Fi
prebuild:
# Slut på Makefile
När du kompilerar ovanstående kod med ovanstående gör fil, detta kommer att skapa en Trakr App fil som heter "trakrmotorcontrol.bin" och filen måste kopieras till Trakr. Se till att Trakr är avstängd och Anslut den till din dator med den gula USB-kabeln som följde med Trakr. Kopiera trakrmotorcontrol.bin till mappen APPS i mappen Trakr. Koppla bort Trakr från datorn och slå Trakr på. Växla Trakr remote på, klicka på hem-knappen och välj trakrmotorcontrol på menyn.
Här är en video av Trakr med Lego gripet arm:
http://Player.Vimeo.com/video/24143672
För att citera Brian Benchoff från Hack A Day, "Inte en dålig bygga för vad som utgör en hög med leksaker."
http://hackaday.com/2011/11/03/bomb-Disposal-robot-with-LEGO-Gripper/
I detta visade instructable jag kommer hur man använder Legos, Snap kretsar och Spy Video Trakr för att skapa en avlägsen kontrollerade gripet bot. Jag kommer demonstreras hur du hämtar och installerar C language compiler för Trakr. Jag förklarade hur man kompilerar ett enkelt program och installera det på Trakr och kör sedan detta enkla program. Sedan visade jag hur man öppnar upp Trakr, bifoga bygelstift till GPIO anslutningarna på kretskortet för Trakr. Med bygel stiften installerade visade jag dig hur att utnyttja 9 volts strömkälla av trakr och göra anslutningskablar ansluta till Snap kretsar och Lego motor. Jag visade dig hur du bifogar en nyttolast däck gjord av Legos att montera Lego gripet armen. Slutligen gav jag du C språkkod som du kan kompilera och installera på Trakr att verka avlägsen kontrollerade gripet bot. Happy hacking!