Stap 7: De Trakr Program
////////////////////////////////////////////
trakrmotorcontrol programma 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 via motor
in voorwaartse richting / /
Als de knop B wordt ingedrukt, daarin GPC0 laag
en te verzenden door hoge GPC1
motor in omgekeerde richting.
///////////////////////////////////////////
#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);
}
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. Gebruik de Trakr van externe contol rijdt de Trakr naar het object dat u wilt om te grijpen. Doel van de Lego klauw gehechtheid aan dicht in de buurt rond het object dat u wilt grijpen en drukt u op de knop A op de afstandsbediening te grijpen van het object. Met om bezwaar gehouden in de klauw, rijdt de Trakr naar de locatie die u brengen van het object en druk op de knop B op de afstandsbediening wilt om de klauw te openen en het object vrijgeven.
Gefeliciteerd! In dit Instructable hebt u geleerd hoe u toevoegt een Lego klauw gehechtheid aan de Spy Vidoe Trakr. Hebt u geleerd hoe download en installeer de taal C compiler voor de Trakr. Hebt u geleerd hoe jumperpinnen installeren op de printplaat van de Trakr om externe apparaten zoals de Lego klauw bijlage te controleren. Je geleerd hoe toe te voegen een gemeenschappelijke grond en 9 volt power tap voor uw Trakr hacking projecten. Hebt u geleerd hoe een veelzijdige lading dek voor de Trakr van Lego bouwen. Hebt u geleerd hoe de bijlage van de klauw Lego bouwen. Hebt u geleerd hoe de Lego klauw verbinden met de Trakr. Tot slot hebt u geleerd hoe de Trakr te bedienen van uw Lego klauw bijlage program.