Etape 21 : Source Code
Voici le code :
////////////////////////////////////////////
Commande de moteur Trakr pour espion vidéo TRAKR
Programme analyse pour voir si le bouton A été
pressé sur TRAKR distant et ensembles GPC0 haute
et la GPC1 faible d’envoyer actuel à la LF broche le
Snap The Circuits automobiles contrôle ci le moteur vers l’avant
//
Si vous appuyez sur le bouton B, il définit GPC0 faible
et GPC1 élevé d’envoyer actuel à la LF épingler la
Snap The Circuits automobiles contrôle ci le moteur inverse
///////////////////////////////////////////
#include « svt.h » //include API officielle
#include « JAPI.h » //include « Secret sauce » API
#define GPC0 (1 << 0) //bitmask pour axe GPC0 = 00000001
#define GPC1 (1 << 1) //bitmask pour axe GPC1 = 00000010
#define GPC2 (1 << //bitmask 2) pour la broche GPC2 = 00000100
#define GPC3 (1 << 3) //bitmask pour broche GPC3 = 00001000
#define GPC4 (1 << 4) //bitmask pour axe GPC4 = 00010000
#define GPC5 (1 << 5) //bitmask pour broche GPC5 = 00100000
#define PDC6 (1 << 6) //bitmask pour axe PDC6 = 01000000
#define GPC7 (1 << 7) //bitmask pour axe GPC7 = 10000000
keyState int ; qualifier de « keystate » entier
void Start()
{
JAPI_SetIoOutputMode(GPC0+GPC1) ; mode de sortie //Set pour broches GPC0 et GPC1
}
bool Run()
{
keyState=GetRemoteKeys() ; Vous appuyez sur la touche télécommande TRAKR
assigner à keystate
Si (keyState > 0)
{//if keystate est supérieur à 0
if(keyState&KEY_INPUT1)
{//Button un pressée (moteur en marche avant)
JAPI_SetIoHigh (GPC0); //Set GPC0 goupille élevée (3.3V)
} else {}
JAPI_SetIoLow(GPC0) ; Éteignez la goupille GPC0
}
if(keyState&KEY_INPUT2)
{//Button B enfoncé (moteur arrière)
JAPI_SetIoHigh (GPC1); //Set GPC1 goupille élevée (3.3V)
} else {}
JAPI_SetIoLow(GPC1) ; Couper les broches GPC1
}
if(keyState&KEY_HOME)
{//if bouton home pressé
retourne la valeur false ; Cela mettra fin à la boucle
}
}
retourne la valeur true ; boucle se répète jusqu’au faux
}
void End()
{//Program fin - éteindre les deux broches
JAPI_SetIoLow(GPC0+GPC1) ;
}
Voici le fichier Make :
# Makefile pour TRAKR jouet
# Projet Trakr
TRACKR_PATH = c: / Trackr
Nom_programme = trakrmotorcontrol
PRETTY_NAME = trakrmotorcontrol
OUTPUT_PATH =. / intermédiaire
Nom_sortie = $(OUTPUT_PATH) / .elf $(nom_programme)
INTERNALS_PATH =... / Composants internes
SOURCES = app.c
S_OBJECTS = $(OUTPUT_PATH)/app.o
OBJETS = $(S_OBJECTS) $(INTERNALS_PATH)/trakr.a
SHELL = sh
CC = bras-elf-gcc
AS = bras-elf-as
BIN = bras-elf-ld
LD = ld-elf-bras
TOPMEMORY = 0XFFE7C000
CFLAGS = - O0-J’AI... / Interne/Include-j’ai... / Composants internes-mur - gstabs +
TARGET_FLAG = - mcpu = arm926ejs - CMPAS-32 - mlittle-endian - specs=specs.semi
LDFLAGS = -T... /Internals/WJ_APP_8M.LD -Wl,--defsym-Wl,__stack_base=$(TOPMEMORY) -Wl,-Map -Wl, $(basename $ - gcc-g-s-Shared-o-nostartfiles-statique
tous : pré-compilé postgénération $(OUTPUT_NAME)
$(NOM_SORTIE): $(OBJECTS)
"Liaison... "
« Créer fichier $
-u _start -o $@ $(INTERNALS_PATH)/trakr_start.a $(OBJECTS) $(TARGET_FLAG) $(LDFLAGS)
$(OUTPUT_PATH)/app.o:app.c Makefile
"Compilation $<"
-c -o "$" $< » $(TARGET_FLAG) $(CFLAGS)
. FAUX : nettoyer postgénération tronçon préalable
nettoyer :
$(RM) -f $(nom_programme) .bin
$(RM) -f « $(PRETTY_NAME) .bin »
$(RM) -f $(OUTPUT_PATH)/app.o
$(RM) -f $(OUTPUT_NAME)
$(RM) -f $(MKDEPFILE)
postgénération :
bras-elf-objcopy - O binaire $(OUTPUT_NAME) « $(PRETTY_NAME) .bin »
[ -d "E:/" ] ; puis \
CP « $(PRETTY_NAME) .bin » e:/APPS / ; \
FI
tronçon :
# Fin du Makefile
Lorsque vous compilez le code ci-dessus avec ce qui précède faire fichier, cela créera un fichier Trakr App appelé « trakrmotorcontrol.bin » et le fichier devra être copié vers le Trakr. Assurez-vous que le Trakr est hors tension et connectez-le à votre ordinateur en utilisant le câble USB jaune fourni avec la Trakr. Copiez trakrmotorcontrol.bin dans le dossier APPS dans le dossier de Trakr. Déconnectez le Trakr de votre ordinateur et allumez le Trakr. Allumez le Trakr distant, cliquez sur le bouton "home" et sélectionnez trakrmotorcontrol dans le menu.
Voici une vidéo de la Trakr avec le bras agrippeur de Lego :
http://Player.Vimeo.com/video/24143672
Pour citer Brian Benchoff Hack A Day, « Pas une mauvaise build pour ce qui équivaut à un tas de jouets. »
http://hackaday.com/2011/11/03/Bomb-Disposal-robot-with-LEGO-gripper/
Dans ce instructable que je vais démontre comment utiliser des Legos, Snap Circuits et l’espion vidéo Trakr pour créer un bot grabber contrôlé à distance. J’ai sera démontré comment télécharger et installer le compilateur de langage C pour le Trakr. J’ai expliqué comment compiler un programme simple et installez-le sur le Trakr et puis exécutez ce programme simple. Ensuite, j’ai démontré comment ouvrir le Trakr, fixez les broches du cavalier aux connexions GPIO sur le circuit de la Trakr. Avec les broches du cavalier installés je vous ai montré comment puiser dans l’alimentation 9 volts de la trakr et faire des câbles de connexion pour se connecter à Snap Circuits et le Lego moteur. Je vous ai montré comment fixer un tablier de charge utile en Legos pour monter le bras agrippeur de Lego. Enfin, je vous fourni avec le code en langage C que vous pouvez compiler et installer sur le Trakr à exploiter le bot grabber contrôlé à distance. Happy hacking !