Paso 7: Programa el Trakr
////////////////////////////////////////////
trakrmotorcontrol programa de Spy Video TRAKR
Analiza el programa para ver si era el botón A
TRAKR prensado en remoto y sistemas de GPC0 alta
y GPC1 baja para enviar corriente a través de motor
hacia adelante / /
Si se presiona el botón B, establece GPC0 bajo
y GPC1 alta para enviar corriente a través de
motor en la dirección contraria.
///////////////////////////////////////////
#include "svt.h" //include API oficial
#include "JAPI.h" //include "Salsa secreta" API
#define GPC0 (1 << 0) //bitmask PIN GPC0 = 00000001
#define GPC1 (1 << 1) //bitmask PIN GPC1 = 00000010
#define GPC2 (1 << 2) //bitmask PIN GPC2 = 00000100
#define GPC3 (1 << 3) //bitmask PIN GPC3 = 00001000
#define GPC4 (1 << 4) //bitmask PIN GPC4 = 00010000
#define GPC5 (1 << 5) //bitmask PIN GPC5 = 00100000
#define GPC6 (1 << 6) //bitmask PIN GPC6 = 01000000
#define GPC7 (1 << 7) //bitmask PIN GPC7 = 10000000
int keyState; definir "keystate" como entero
void Start()
{
JAPI_SetIoOutputMode(GPC0+GPC1); //Set modo de salida de los pines GPC0 y GPC1
}
bool Run()
{
keyState=GetRemoteKeys(); Tecla de control remoto TRAKR
asignar a keystate
Si (keyState > 0)
{//if keystate es mayor que 0
if(keyState&KEY_INPUT1)
{//Button un prensado (motor delantero)
JAPI_SetIoHigh (GPC0); //Set GPC0 pin alta (3,3 v)
} else {}
JAPI_SetIoLow(GPC0); Apagar pin GPC0
}
if(keyState&KEY_INPUT2)
{//Button B presionado (motor atrás)
JAPI_SetIoHigh (GPC1); //Set GPC1 pin alta (3,3 v)
} else {}
JAPI_SetIoLow(GPC1); Apagar pin GPC1
}
if(keyState&KEY_HOME)
{//if botón home presionado
devuelven el valor false; Esto va a terminar el bucle
}
}
verdaderas; bucle se repetirá hasta falso
}
End() vacío
{Fin de //Program - desconectar los pines
JAPI_SetIoLow(GPC0+GPC1);
}
Hacer el archivo:
# Makefile para juguete TRAKR
# Proyecto Trakr
TRACKR_PATH = C:/Trackr
PROGRAM_NAME = trakrmotorcontrol
PRETTY_NAME = trakrmotorcontrol
OUTPUT_PATH =. / intermedio
OUTPUT_NAME = $(OUTPUT_PATH) / $(PROGRAM_NAME) .elf
INTERNALS_PATH =... / Funcionamiento interno
FUENTES = app.c
S_OBJECTS = $(OUTPUT_PATH)/app.o
OBJETOS = $(S_OBJECTS) $(INTERNALS_PATH)/trakr.a
SHELL = sh
CC = gcc-elf-brazo
COMO = brazo-elf-como
BIN = brazo-elf-ld
LD = brazo-elf-ld
TOPMEMORY = 0XFFE7C000
CFLAGS = - O0-ME... / Internos/Include-me... / Funcionamiento interno-pared - 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,-mapa -Wl, $(basename $ - nostartfiles-estática
todos: prebuild $(OUTPUT_NAME) así
$(OUTPUT_NAME): $(OBJECTS)
"Enlazan a... "
"Crear archivo $
-u _start -o $@ $(INTERNALS_PATH)/trakr_start.a $(OBJECTS) $(TARGET_FLAG) $(LDFLAGS)
$(OUTPUT_PATH)/app.o:app.c Makefile
"Compilación de $<"
-c -o "$" $< "$(TARGET_FLAG) $(CFLAGS)
. PHONY: limpiar así los
limpiar:
$(RM) -f $(PROGRAM_NAME) .bin
$(RM) -f "$(PRETTY_NAME) .bin"
$(RM) -f $(OUTPUT_PATH)/app.o
$(RM) -f $(OUTPUT_NAME)
$(RM) -f $(MKDEPFILE)
así:
brazo-elf-objcopy - O binario $(OUTPUT_NAME) "$(PRETTY_NAME) .bin"
[ -d "E:/" ] ; entonces \
CP "$(PRETTY_NAME) .bin" e:/aplicaciones /; \
fi
prebuild:
# Fin de archivo make
Al compilar el código anterior con el anterior hacer archivo, esto creará un archivo de Trakr App llamado "trakrmotorcontrol.bin" y el archivo tendrá que copiar en el Trakr. Asegúrese de que el Trakr está desconectado y conectarlo a su ordenador utilizando el cable USB amarillo que vino con el Trakr. Copie trakrmotorcontrol.bin a la carpeta de aplicaciones dentro de la carpeta de Trakr. Desconecte el Trakr del ordenador y conecte el Trakr. Encienda el Trakr remoto, haga clic en el botón Inicio y seleccionar trakrmotorcontrol del menú. Utilice control remoto de Trakr el Trakr al objeto que desea tomar. Objetivo es la fijación de garra de Lego al cierre alrededor del objeto que desea tomar y presione el botón A del mando para agarrar el objeto. Con para objeto sostenido en la garra, el Trakr en coche a la ubicación que desee para el objeto y pulse el botón B del mando a distancia para abrir la pinza y suelte el objeto.
¡ Felicidades! En este Instructable aprendió a agregar un adjunto de garra de Lego a la espía Vidoe Trakr. Usted aprendió cómo descargar e instalar el compilador de lenguaje C para el Trakr. Usted aprendió cómo instalar pernos de jumper en placa de circuito de Trakr para controlar dispositivos externos tales como la fijación de la garra de Lego. Usted aprendió cómo agregar toque en un terreno común y corriente de 9 voltios para sus proyectos de hacking de Trakr. Has aprendido cómo construir una cubierta de carga versátil para el Trakr de Lego. Aprendió a construir el accesorio de la garra de Lego. Usted aprendió cómo conectar la pinza de Lego a la Trakr. Finalmente aprendió a programar el Trakr su accesorio de garra de Lego.