Stap 21: Broncode
Hier is de code:
////////////////////////////////////////////
Trakr motorische controle voor Spy Video TRAKR
Programma scant om te zien als knop A was
gedrukt op TRAKR externe en sets GPC0 hoog
en GPC1 laag aan huidige verzenden de LF pin op de
Snap Circuits Motor Control IC truning de motor uit
//
Als de knop B wordt ingedrukt, daarin GPC0 laag
en GPC1 hoge huidige verzenden naar de LF pin op de
Snap Circuits Motor Control IC truning de omgekeerde motor
///////////////////////////////////////////
#include "svt.h" //include officiële API
#include "JAPI.h" //include "Geheime saus" API
#define GPC0 (1 << 0) //bitmask voor pin GPC0 = 00000001
#define GPC1 (1 << 1) //bitmask voor pin GPC1 = 00000010
#define GPC2 (1 << 2) //bitmask voor pin GPC2 00000100 =
#define GPC3 (1 << 3) //bitmask voor pin GPC3 00001000 =
#define GPC4 (1 << 4) //bitmask voor pin GPC4 00010000 =
#define GPC5 (1 << 5) //bitmask voor pin GPC5 00100000 =
#define GPC6 (1 << 6) //bitmask voor pin GPC6 01000000 =
#define GPC7 (1 << 7) //bitmask voor pin GPC7 10000000 =
int keyState; define "keystate" als geheel getal
VOID Start()
{
JAPI_SetIoOutputMode(GPC0+GPC1); //Set uitvoermodus voor PIN GPC0 en GPC1
}
BOOL Run()
{
keyState=GetRemoteKeys(); TRAKR-toets van de afstandsbediening ingedrukt
toewijzen aan keystate
Als (keyState > 0)
{//if keystate groter is dan 0
if(keyState&KEY_INPUT1)
{//Button een geperst (motor uit)
JAPI_SetIoHigh (GPC0), //Set GPC0 pin high (3,3 v)
} else {}
JAPI_SetIoLow(GPC0); Schakel pin GPC0
}
if(keyState&KEY_INPUT2)
{//Button B ingedrukt (motor omgekeerde)
JAPI_SetIoHigh (GPC1), //Set GPC1 pin high (3,3 v)
} else {}
JAPI_SetIoLow(GPC1); Schakel pin GPC1
}
if(keyState&KEY_HOME)
{//if thuisknop ingedrukt
return false; Dit zal het einde van de lus
}
}
return true; lus zal herhalen tot vals
}
VOID End()
{//Program einde - Schakel beide pins
JAPI_SetIoLow(GPC0+GPC1);
}
Hier is het bestand maken:
# Makefile voor TRAKR speelgoed
# Trakr Project
TRACKR_PATH = C:/Trackr
Programmanaam = trakrmotorcontrol
PRETTY_NAME = trakrmotorcontrol
OUTPUT_PATH =. / Intermediate
OUTPUT_NAME = $(OUTPUT_PATH) / $(programmanaam) elf
INTERNALS_PATH =... / Internals
BRONNEN = app.c
S_OBJECTS = $(OUTPUT_PATH)/app.o
OBJECTEN = $(S_OBJECTS) $(INTERNALS_PATH)/trakr.a
SHELL = sh
CC = arm-elf-gcc
AS = arm-elf-as
BIN = arm-elf-ld
LD = arm-elf-ld
TOPMEMORY = 0XFFE7C000
CFLAGS = - O0-IK... / Internals/Include-ik... / Internals-wand - 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,-kaart -Wl, $(basename $ - nostartfiles-static
alle: voorbereidende build maken van $(OUTPUT_NAME) postbuild
$(OUTPUT_NAME): $(OBJECTS)
"Link... "
"Het creëren bestand $
-u _start -o $@ $(INTERNALS_PATH)/trakr_start.a $(OBJECTS) $(TARGET_FLAG) $(LDFLAGS)
$(OUTPUT_PATH)/app.o:app.c Makefile
"Samenstellen van $<"
-c -o "$" $< "$(TARGET_FLAG) $(CFLAGS)
. NEP: schoon prebuild postbuild
schoon:
$(RM) -f $(programmanaam) .bin
$(RM) -f "$(PRETTY_NAME) .bin"
$(RM) -f $(OUTPUT_PATH)/app.o
$(RM) -f $(OUTPUT_NAME)
$(RM) -f $(MKDEPFILE)
postbuild:
kunnen worden arm-elf-objcopy - O binaire $(OUTPUT_NAME) "$(PRETTY_NAME) .bin"
[ -d "E:/" ] ; vervolgens \
CP "$(PRETTY_NAME) .bin" e:/APPS /; \
fi
voorbereidende build maken van:
# Einde van Makefile
Wanneer u compileert de bovenstaande code met het bovenstaande bestand maken, hierdoor ontstaat een Trakr App bestand met de naam "trakrmotorcontrol.bin" en het bestand moet worden gekopieerd naar de Trakr. Zorg ervoor dat de Trakr uitstaat en aansluiten op uw computer met behulp van de gele USB-kabel die bij de Trakr. Kopieer trakrmotorcontrol.bin naar de APPS-map in de map Trakr. De Trakr van de computer loskoppelt en zet de Trakr. Schakel de externe Trakr, klik op de home-knop en selecteer trakrmotorcontrol uit het menu.
Hier is een video van de Trakr met de Lego grabbelen arm:
http://Player.Vimeo.com/video/24143672
Brian Benchoff citeer uit Hack A Day, "Niet een slechte bouwen voor wat op een stapel van speelgoed neerkomt."
http://hackaday.com/2011/11/03/Bomb-Disposal-Robot-with-Lego-gripper/
In dit instructable zal ik laten zien hoe Legos, Snap Circuits en de Spy Video Trakr kunt maken van een externe gecontroleerde grabbelen bot. Ik zal het downloaden en installeren van de taal C compiler voor de Trakr aangetoond. Ik heb uitgelegd hoe een eenvoudige programma compileren en installeren op het Trakr en voer dit eenvoudige programma. Vervolgens ik aangetoond hoe de Trakr openstellen, jumperpinnen hechten aan de GPIO-aansluitingen op de printplaat van de Trakr. Met de jumperpinnen geïnstalleerd toonde ik u hoe het aanboren van de voeding van 9 volt van de trakr en maken verbindingskabels verbinden Snap Circuits en de Lego motor. Daarbij toonde ik u hoe u koppelt een dek van de nettolading uit Legos te monteren de Lego grabbelen arm gemaakt. Tot slot voorzien ik u de C-taalcode die u kunt compileren en installeren op het Trakr te bedienen de extern gecontroleerde grabbelen bot. Happy hacking!