Construction d’une réplique du costume Predator (4 / 10 étapes)

Étape 4: Électronique et programmation

Ajout d’un cerveau et des effets sonores-

Maintenant que j’ai eu la mécanique faite j’avais besoin pour la faire bouger. J’ai utilisé un Arduino Pro Mini pour gérer les entrées et les mouvements du servo et et un Pro de l’Arduino avec un bouclier de vague Adafruit à gérer les effets sonores. Il y a une petite planche qui a trois transistors sur it-les transistors allument le viseur laser casque et déclenchent le Canon LED et effets sonores. Le Conseil a également 3.3V régulateur pour alimenter la vue de laser de casque.

Le canon de LED est une Luxeon bleu vif qui est conduite par un chauffeur de « Buck Toot » courant constant. Afin d’éviter tout problème de bruit de servo les Arduinos sont alimentés par une pile 9V et tout le reste est alimenté par quatre piles alcalines « AA ». J’aurais pu utiliser les batteries NiCd, NiMH ou LiPo, mais puisque nous étions sur un tel calendrier serré je ne voulais pas les gars d’avoir à vous soucier de batteries spécialisées ou long charge fois-qu’ils pouvaient obtenir des piles de rechange dans n’importe quel magasin d’épicerie.

Entrées de commande serait trois commutateurs tactiles pointe de petit doigt. Les commutateurs sont on/off donc si Jamie a poussé l’un d’eux un bruit se répétait encore et encore jusqu'à ce qu’elle a été désactivée. De même le Canon continueraient à se déplacer à travers elle a programmée séquence jusqu'à ce qu’elle a été désactivée. Les commutateurs de bout de doigt étaient connectés pour le sac à dos à l’aide d’un câble ethernet qui doit être exécuté sur toute la longueur du bras de Jamie et les commutateurs seraient asseyait à l’intérieur des doigts de gant.

L’électronique ont été montés sur une 1/8" épais en aluminium à l’aide d’entretoises en plastique et vis 4-40.

Le schéma de câblage complet est donné et j’ai inclus le son des fichiers et un son est pour le Canon, on est le prédateur « cliquettement » et le dernier son est le rugissement de prédateur.

Les Arduinos sont programmés à l’aide d’une évasion de base FTDI. J’ai écrit un guide pour la programmation de l’Arduino ici-

Voici le code pour l’Arduino Pro Mini- c’est la commande les mouvements du canon :

#include < Servo.h > / / inclure la bibliothèque de servo

Servo servo1 ;  crée une instance de l’objet de servo pour contrôler un servo
Servo servo2 ;
Servo servo3 ;


int servoPin1 = 9 ;  broche de commande pour servo
int servoPin2 = 8 ;
int servoPin3 = 7 ;


int ledPin1 = 11 ;  broche de commande pour LED
int ledPin2 = 12 ;  broche de commande pour visée laser
int soundPin1 = 10 ;  broche de commande pour son Conseil d’administration

void setup() {}

SERVO1.Attach(servoPin1) ;  attache le servo sur la broche à l’objet de servo
Servo2.Attach(servoPin2) ;
servo3.Attach(servoPin3) ;

pinMode (ledPin1, sortie) ;  définit l’axe de la LED en sortie
pinMode (ledPin2, sortie) ;
pinMode (soundPin1, sortie) ;  définit l’axe de son en sortie
digitalWrite (ledPin1, basse) ; définit l’axe LED faible (elle s’éteint)
digitalWrite (ledPin2, basse) ;
digitalWrite (soundPin1, basse) ;
}

void loop() {}

digitalWrite (ledPin2, HIGH) ; définit l’axe LED haute (il allume)


servo3.Write(170) ; bras Canon soulève
SERVO1.Write(140) ; fait pivoter le canon vers le haut

Delay(2000) ;

Servo2.Write(40) ; fait pivoter le canon de la tête

Delay(2000) ;

Servo2.Write(110) ; fait pivoter le canon vers la tête
digitalWrite (ledPin1, HIGH) ;
digitalWrite (soundPin1, HIGH) ;
Delay(10) ;
digitalWrite (ledPin1, basse) ;
digitalWrite (soundPin1, basse) ;

Delay(4000) ;

Servo2.Write(60) ; fait pivoter le canon de la tête
SERVO1.Write(120) ; fait pivoter le canon vers le haut
Delay(1000) ;
digitalWrite (ledPin1, HIGH) ;
digitalWrite (soundPin1, HIGH) ;
Delay(10) ;
digitalWrite (ledPin1, basse) ;
digitalWrite (soundPin1, basse) ;

Delay(3000) ;

Servo2.Write(120) ; fait pivoter le canon vers la tête
SERVO1.Write(150) ; fait pivoter le canon vers le bas
Delay(2000) ;
digitalWrite (ledPin1, HIGH) ;
digitalWrite (soundPin1, HIGH) ;
Delay(10) ;
digitalWrite (ledPin1, basse) ;
digitalWrite (soundPin1, basse) ;
Delay(1000) ;
SERVO1.Write(140) ;

Delay(3000) ;

SERVO1.Write(170) ;
Delay(500) ;
Servo2.Write(90) ;
Delay(1000) ;
servo3.Write(10) ;
digitalWrite (ledPin2, basse) ;

Delay(5000) ;

}

Voici le code pour la vague bouclier - (avec la permission de Adafruit)

#include < FatReader.h >
#include < SdReader.h >
#include < avr/pgmspace.h >
#include « WaveUtil.h »
#include « WaveHC.h »

Carte de SdReader ;    Cet objet conserve les informations de la carte
Vol FatVolume ;    Il conserve les informations pour la partition sur la carte
FatReader racine ;   Il conserve les informations pour le système de fichiers sur la carte
FatReader f ;      Il conserve les informations pour le fichier que nous allons jouer

WaveHC vague ;      C’est le seul objet (audio) de la vague, puisque nous allons jouer seulement un à la fois

#define DEBOUNCE 100 / / bouton debouncer

Cette fonction pratique retournera le nombre d’octets actuellement libres en RAM, grand pour le débogage !
int freeRam(void)
{
extern int __bss_end ;
extern int * __brkval ;
int free_memory ;
Si ((int) __brkval == 0) {}
free_memory = ((int) & free_memory)-((int) & __bss_end) ;
}
else {}
free_memory = ((int) & free_memory)-((int) __brkval) ;
}
Return free_memory ;
}

Sub sdErrorCheck(void)
{
Si (! card.errorCode()) retourner ;
putstring ("\n\rSD I/O erreur:") ;
Serial.Print(Card.ErrorCode(), HEX) ;
putstring (",") ;
Serial.println(Card.ErrorData(), HEX) ;
while(1) ;
}

void setup() {}
mettre en place le port série
Serial.Begin(9600) ;
putstring_nl ("WaveHC avec 6 boutons") ;

putstring ("RAM libre:") ;       Ce qui peut aider avec le débogage, manquer de RAM est mauvais
Serial.println(freeRam()) ;      s’il s’agit moins de 150 octets Il peut épeler ennuis !

Définissez les broches de sortie pour le contrôle de la DAC. Ce broches sont définis dans la bibliothèque
pinMode (sortie 2) ;
pinMode (3, sortie) ;
pinMode (sortie 4) ;
pinMode (5, sortie) ;

pin13 LED
pinMode (13, sortie) ;

activez les résistances de pull-up sur les broches commutateur (entrées analogiques)
digitalWrite (14, HIGH) ;
digitalWrite (15, HIGH) ;
digitalWrite (16, HIGH) ;
digitalWrite (17, HIGH) ;
digitalWrite (18, HIGH) ;
digitalWrite (19, haute) ;

Si (! card.init(true)) {//play avec 4 MHz spi si 8MHz ne fonctionne pas pour vous
Si (! card.init()) {//play avec spi 8 MHz (par défaut plus rapide!)
putstring_nl ("carte init. a échoué!") ;  Quelque chose a mal tourné, permet d’imprimer les raisons pour lesquelles
sdErrorCheck() ;
while(1) ;                            puis « arrêter » - ne rien faire !
}

Enable optimiser la lecture - certaines cartes peuvent timeout. Désactiver si vous rencontrez des problèmes
card.partialBlockRead(true) ;

Maintenant, on va chercher une partition FAT !
uint8_t partie ;
pour (partie = 0; partie < 5; partie ++) {/ / nous avons jusqu'à 5 emplacements de regarder dans
Si (vol.init (carte, partie))
rupture ;                             Nous avons trouvé un, laisse en liberté sous caution
}
Si (partie == 5) {/ / si nous avons fini ne pas trouver un:(
putstring_nl ("aucun FAT partition valide!") ;
sdErrorCheck() ;      Quelque chose a mal tourné, permet d’imprimer les raisons pour lesquelles
while(1) ;                            puis « arrêter » - ne rien faire !
}

Permet d’indiquer à l’utilisateur sur ce que nous avons trouvé
putstring ("partition à l’aide") ;
Serial.Print (partie, DEC) ;
putstring (", est de type FAT") ;
Serial.println(vol.fatType(),DEC) ;     FAT16 ou FAT32 ?

Essayez d’ouvrir le répertoire racine
Si (! root.openRoot(vol)) {}
putstring_nl ("Impossible d’ouvrir le répertoire racine!") ; Quelque chose a mal tourné,
while(1) ;                             puis « arrêter » - ne rien faire !
}

Ouf ! Nous avons passé les parties difficiles.
putstring_nl("Ready!") ;
}

void loop() {}
putstring(".") ;            Décommentez pour voir si la boucle n’est pas en cours d’exécution
commutateur (check_switches()) {}
cas 1 :
playcomplete ("SOUND1. « « « WAV ») ;
rupture ;
cas 2 :
playcomplete ("SOUND2. « « « WAV ») ;
rupture ;
cas 3 :
playcomplete "(solide3. « « « WAV ») ;
rupture ;
cas 4 :
playcomplete "(SOUND4. « « « WAV ») ;
rupture ;
cas no 5 :
playcomplete "(SOUND5. « « « WAV ») ;
rupture ;
cas 6 :
playcomplete "(SOUND6. « « « WAV ») ;
}
}

check_switches() octets
{
public static octet précédent [6] ;
public static long temps [6] ;
octet lu ;
octet pressé ;
index de l’octet ;
pressé = 0 ;

pour (indice d’octet = 0; index < 6; ++ index) {}
lecture = digitalRead (14 + index) ;
Si (lecture == LOW & & précédent [index] == HIGH & & millis() - temps [index] > DEBOUNCE)
{
interrupteur enfoncé
temps [index] = millis() ;
pressé = index + 1 ;
rupture ;
}
précédent [index] = lecture ;
}
retourner l’interrupteur numéro (1-6)
retour (pressé) ;
}

Lit un fichier complet de bout en bout avec aucune pause.
void playcomplete(char *name) {}
Appelez notre aide pour trouver et jouer ce nom
playfile(Name) ;
alors que {(wave.isplaying)
ne rien faire pendant sa lecture
}
maintenant sa fait jouer
}

void playfile(char *name) {}
voir si l’objet vague est en train de faire quelque chose
Si (wave.isplaying) {/ / déjà jouer quelque chose, alors arrêtez d’elle !
Wave.Stop() ; Arrête
}
Regardez dans le répertoire racine et ouvrir le fichier
Si (! f.open (racine, nom)) {}
putstring ("Impossible d’ouvrir le fichier") ; Serial.Print(Name) ; retour ;
}
OK, lire le fichier et le transformer en un objet vague
Si (! wave.create(f)) {}
putstring_nl ("pas un valide" WAV") ; retour ;
}

OK le temps de jouer ! Démarrer la lecture
Wave.Play() ;
}

Articles Liés

Comment construire une réplique de Table Daft Punk

Comment construire une réplique de Table Daft Punk

l'idée est de construire une réplique du Daft Punk tableau vendu chez Habitat, très agréable, mais, pour autant que je ne sais pas vendu plus.Le processus de construction n'est pas très compliqué, le plus dur est de décider tout quand votre point de
Construction d’une « pile de Bagdad »

Construction d’une « pile de Bagdad »

cette instructable vise à fournir des idées d'expérimentation avec la composition chimique en général et pour résumer mon expérience produisant une réplique de ce qui est souvent désigné comme la Pile de Bagdad. Dans ma version d'une réplique, je sou
Construction d’une Guinée meilleure et une plume

Construction d’une Guinée meilleure et une plume

la Guinée et la plume est une des expériences plus importantes dans la physique classique et elle est toujours appliquée aujourd'hui comme une démonstration de conférence depuis des milliers d'introduction physique des étudiants. Il montre que la pes
Construction d’une imprimante de Delta de 550 $ (AU)

Construction d’une imprimante de Delta de 550 $ (AU)

le Delta XL du Kossel imprimante est un grand morceau de matériel que vous pouvez soit l'acheter en kit je recommande builda3dprinter.eu il faut environ un mois pour un kit complet arriver et ils sont environ 560 £ (650 $US) ($860AUD) ou les pièces d
Construction d’une clôture semi-permanents

Construction d’une clôture semi-permanents

jardins. Tout le monde aime un jardin. Jardins de fournissent de la nourriture. Jardins de fournissent de l'ombre. Jardins offrent un endroit agréable pour creuser. Et une fois que vous creusez un trou de nice, un jardin fournit un endroit cool pour
Comment faire une réplique Minecraft pioche

Comment faire une réplique Minecraft pioche

si votre comme moi, MineCraft est sur votre esprit toute la journée. le matin, en autobus, en classe, au déjeuner, tout en prenant des notes, tandis que l'averse, il montre même dans mes rêves ! MineCraft est un médicament, et des millions sont accro
Direction informatique - construction d’une équipe

Direction informatique - construction d’une équipe

Afin de mener efficacement, vous devez savoir comment construire et inspirergroupes de personnes de œuvrer en faveur du bien commun de votre entreprise ou organisation.Étape 1: Jim de cablesupply.com parle IT Leadership et la construction d'une équip
Construction d’une barrière de clôture

Construction d’une barrière de clôture

j'ai donner un aperçu de la construction d'une barrière en bois pour une clôture d'intimité.Étape 1: Matériaux nécessaires Cette ible va être un peu généralisée due à toutes les préférences variés en taille et en matériau. De manière générale, cepend
Guide de construction d’une bibliothèque inversé

Guide de construction d’une bibliothèque inversé

Si vous êtes le genre de personne qui aime lire et collecter des livres, vous devez être prêt à s'attaquer à un problème : tôt ou tard vous allez manquer d'espace disponible pour vos livres. Une fois que vous avez atteint les limites de vos étagères,
Comment faire une réplique de pistolet en bois « Pepperbox »

Comment faire une réplique de pistolet en bois « Pepperbox »

cette instructable est de montrer comment j'ai fait, et donc comment vous pouvez faire, une réplique en bois d'un pistolet de pepperbox comme celui que vous voyez ici. Le pistolet de pepperbox fut sans doute le premier « revolver », comme c'était le
Construction d’une serre dôme géodésique - partie 3

Construction d’une serre dôme géodésique - partie 3

Enfin eu le temps de faire le troisième vidéo dans ma série de construire le dôme géodésique. Celui-ci couvre comment toutes les barres de renfort sont prises. Il est filmé en HD, donc vous devriez être en mesure d'agrandir en plein écran ! J'espère
Construction d’une Steam Punk ordinateur souris

Construction d’une Steam Punk ordinateur souris

Basé sur une souris PS/2 Trust je construis cette souris d'ordinateur pour un de mes ordinateurs Steampunk.Construction d'une souris est un peu délicat, mais voir les résultats et la houe étapes que je le construire.Étape 1: La souris j'ai peint les
Construction d’une bobine de tesla à l’état solide

Construction d’une bobine de tesla à l’état solide

! Cette instructable est destinée à donner des instructions détaillées sur la construction d'une bobine de tesla à l'état solide basée sur la CEST mini steve ward schématique.OK, voici l'avertissement.*************************************************
Construction d’une sorcière

Construction d’une sorcière

ce Instructable vous montrera comment faire une sorcière pour Halloween.Tête de la sorcière est faite de papier machie, que j'ai mis sur un formulaire de base que j'ai faite de papier d'aluminium. Si vous souhaitez obtenir la tête faite plus vite, vo