Paso 21: Código
Aquí está el código:
////////////////////////////////////////////
Control motor Trakr 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 la LF el
Ajustar circuitos Motor Control IC truning el motor hacia adelante
//
Si se presiona el botón B, establece GPC0 bajo
y GPC1 alta para enviar corriente a la LF el
Ajustar circuitos Motor Control IC truning el motor inverso
///////////////////////////////////////////
#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);
}
Aquí está el archivo Make:
# 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ú.
Aquí está un video del Trakr con el brazo del grabber de Lego:
http://Player.vimeo.com/video/24143672
A la cita Brian Benchoff de Hack A Day, "No una estructura mal para lo que equivale a un montón de juguetes."
http://HackADay.com/2011/11/03/Bomb-Disposal-robot-with-LEGO-Gripper/
En este instructable que voy demostró cómo utilizar Legos, los circuitos de Snap y el Spy Video Trakr para crear un bot de capturador control remoto. Le demostré cómo descargar e instalar el compilador de lenguaje C para el Trakr. Expliqué cómo compilar un programa simple e instalarlo en el Trakr y luego ejecutar este sencillo programa. Entonces demostró cómo abrir el Trakr, coloque pins de puente a las conexiones de GPIO en el circuito de la Trakr. Con los pines de jumper instalados te mostré cómo aprovechar la fuente de alimentación de 9 voltios de la trakr y cables de conexión para conectar a circuitos de Snap y el Lego motor. Le mostré cómo fijar una cubierta de carga hecha de Legos para montar el brazo del grabber de Lego. Finalmente proporcionó el código de idioma de C que puede compilar e instalar en el Trakr para funcionar el bot capturador control remoto. ¡ Feliz hacking!