Bygga en replika Predator kostym (4 / 10 steg)

Steg 4: Elektronik och programmering



Att lägga till en hjärna och ljudeffekter-

Nu när jag hade mekanikerna gjort behövde jag göra det flytta. Jag använde en Arduino Pro Mini för att hantera ingångar och servo rörelser och och en Arduino Pro med en Adafruit våg sköld att hantera ljudeffekter. Det finns en liten styrelse som har tre transistorer på it-transistorerna slå lasersikte hjälm och utlösa kanon LED och ljudeffekt. Styrelsen har också en 3,3 v regulator att ge ström för hjälm lasersikte.

Kanon LED är en ljust blå Luxeon som drivs av en ständig aktuell "Buck Toot" drivrutin. För att undvika servo bullerproblem i Arduinos drivs av ett 9V batteri och allt annat drivs av fyra "AA" alkaliska batterier. Jag kunde ha använt NiCd, NiMH eller LiPo batterier men eftersom vi var på ett tight schema jag ville inte killarna att oroa specialiserade batterier eller lång avgift gånger-de kunde få ersättningsbatterier i någon livsmedelsbutik.

Kontroll insatsvaror skulle vara tre små finger spets taktil switchar. Växlarna är av/på så om Jamie sköt en av dem ett ljud skulle upprepa sig om och om igen tills den var avstängd. Jämväl kanonen skulle fortsätta att flytta genom har det programmerad sekvens tills den var avstängd. Växlarna finger spets var anslutna till ryggsäcken med en ethernet-kabel som skulle köras ned längden på Jamies arm och växlarna skulle sitta inne i handsken fingrarna.

Elektroniken var monterade till en 1/8" tjock aluminiumplåt med plast standoffs och 4-40 skruvar.

Fullständig kopplingsschema visas och jag har inkluderat ljudet filer-ett ljud är för kanonen, en är rovdjur "klickande" ljud och sista ljudet är Predator bruset.

Arduinos programmeras med hjälp av en FTDI grundläggande breakout. Jag skrev upp en guide till programmering Arduino här-

Här är koden för Arduino Pro Mini- denna kontroller kanon rörelser:

#include < Servo.h > / / include servo biblioteket

Servo servo1; skapar en instans av objektet servo att styra en servo
Servo servo2;
Servo servo3;

int servoPin1 = 9; kontroll stift för servo
int servoPin2 = 8;
int servoPin3 = 7.

int ledPin1 = 11; kontroll stift för LED
int ledPin2 = 12; kontroll stift för lasersikte
int soundPin1 = 10; kontroll stift för ljud ombord

void setup() {

servo1.attach(servoPin1); tillmäter objektet servo servo på stift
servo2.attach(servoPin2);
servo3.attach(servoPin3);

pinMode (ledPin1, produktionen); Anger den LED stiftet som utdata
pinMode (ledPin2, produktionen);
pinMode (soundPin1, produktionen); ställer in ljud PIN-koden som utgång
digitalWrite (ledPin1, låg); Anger den LED stiftet låg (stänger av)
digitalWrite (ledPin2, låg);
digitalWrite (soundPin1, låg);
}

void loop() {

digitalWrite (ledPin2, hög); Anger den LED pin HIGH (vänder det på)

servo3.write(170); höjer kanon arm
servo1.write(140); roterar kanon uppåt

Delay(2000);

servo2.write(40); roterar kanon från huvud

Delay(2000);

servo2.write(110); roterar kanon mot huvudet
digitalWrite (ledPin1, hög);
digitalWrite (soundPin1, hög);
Delay(10);
digitalWrite (ledPin1, låg);
digitalWrite (soundPin1, låg);

Delay(4000);

servo2.write(60); roterar kanon från huvud
servo1.write(120); roterar kanon uppåt
Delay(1000);
digitalWrite (ledPin1, hög);
digitalWrite (soundPin1, hög);
Delay(10);
digitalWrite (ledPin1, låg);
digitalWrite (soundPin1, låg);

Delay(3000);

servo2.write(120); roterar kanon mot huvudet
servo1.write(150); roterar kanon nedåt
Delay(2000);
digitalWrite (ledPin1, hög);
digitalWrite (soundPin1, hög);
Delay(10);
digitalWrite (ledPin1, låg);
digitalWrite (soundPin1, låg);
Delay(1000);
servo1.write(140);

Delay(3000);

servo1.write(170);
Delay(500);
servo2.write(90);
Delay(1000);
servo3.write(10);
digitalWrite (ledPin2, låg);

Delay(5000);

}

Här är koden för den våg sköld - (med tillstånd av Adafruit)

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

SdReader kort; Detta objekt innehåller information för kortet
FatVolume vol; Detta innehåller information för partitionen på kortet
FatReader rot. Detta innehåller information för filsystemet på kortet
FatReader f; Detta innehåller information för filen vi är spelar

WaveHC våg; Detta är enda våg (audio)-objektet, eftersom vi bara kommer att spela en i taget

#define DÄMPNINGSTID 100 / / knappen debouncer

Denna behändiga funktionen returnerar antalet byte för närvarande gratis i RAM, bra för felsökning!
int freeRam(void)
{
extern int __bss_end;
extern int * __brkval;
int free_memory;
om ((int) __brkval == 0) {
free_memory = ((int) & free_memory)-((int) & __bss_end);
}
annat {
free_memory = ((int) & free_memory)-((int) __brkval);
}
återvända free_memory;
}

void sdErrorCheck(void)
{
om (! card.errorCode()) återvända;
putstring ("\n\rSD I/O fel:");
Serial.Print(Card.ErrorCode(), HEX);
putstring (",");
Serial.println(Card.errorData(), HEX);
While(1);
}

void setup() {
Ställ in serieporten
Serial.BEGIN(9600);
putstring_nl ("WaveHC med 6 knappar");

putstring ("fri slå ned:"); Detta kan hjälpa till med felsökning, slut RAM är dålig
Serial.println(freeRam()); om detta är under 150 byte kan det stava problem!

Ställa in produktionen stift för DAC kontroll. Detta stift definieras i biblioteket
pinMode (2, utgång);
pinMode (3, OUTPUT);
pinMode (4, OUTPUT);
pinMode (5, OUTPUT);

pin13 LED
pinMode (13, OUTPUT);

Aktivera pull-up motstånd på switch stift (analoga ingångar)
digitalWrite (14, hög).
digitalWrite (15, hög).
digitalWrite (16, hög).
digitalWrite (17, hög),
digitalWrite (18, hög).
digitalWrite (19, hög).

om (! card.init(true)) {//play med 4 MHz spi om 8MHz inte fungerar för dig
om (! card.init()) {//play med 8 MHz spi (standard snabbare!)
putstring_nl ("kort init. misslyckades!"); Något gick fel, kan skriva ut varför
sdErrorCheck();
While(1); sedan 'stoppa' - gör ingenting!
}

Aktivera optimera Läs - vissa kort kan timeout. Inaktivera om du har problem
card.partialBlockRead(true);

Nu söker vi en FAT-partition!
uint8_t del;
för (del = 0; del < 5; del ++) {/ / vi har upp till 5 platser att titta i
om (vol.init (kort, del))
bryta; Vi hittade en, låter borgen
}
om (del == 5) {/ / om vi slutade inte att hitta en :(
putstring_nl ("ingen giltig FAT-partition!");
sdErrorCheck(); Något gick fel, kan skriva ut varför
While(1); sedan 'stoppa' - gör ingenting!
}

Kan tala om för användaren om vad vi hittade
putstring ("använda partition");
Serial.Print (del, DEC);
putstring (", typ är FAT");
Serial.println(Vol.fatType(),dec); FAT16 eller FAT32?

Försök öppna rotkatalogen
om (! root.openRoot(vol)) {
putstring_nl kan inte ("öppna rotfästa dir!"); Något gick fel,
While(1); sedan 'stoppa' - gör ingenting!
}

Usch! Vi fick tidigare de hårda delarna.
putstring_nl("ready!");
}

void loop() {
putstring("."); avkommentera här för att se om slingan inte är kör
Switch (check_switches()) {
fall 1:
playcomplete ("SOUND1. WAV");
bryta;
fall 2:
playcomplete ("SOUND2. WAV");
bryta;
fall 3:
playcomplete ("SOUND3. WAV");
bryta;
fall 4:
playcomplete ("SOUND4. WAV");
bryta;
fall 5:
playcomplete ("SOUND5. WAV");
bryta;
fall 6:
playcomplete ("SOUND6. WAV");
}
}

byte check_switches()
{
statiska byte tidigare [6].
statiska lång tid [6].
byte läsning;
byte pressade,
byte index.
tryckte = 0;

för (byte index = 0; index < 6. ++ index) {
läsning = digitalRead (14 + indexet);
om (läser == låg & & föregående [index] == hög & & millis() - tid [index] > DÄMPNINGSTID)
{
Switch tryckte
tid [index] = millis();
tryckte = index + 1.
bryta;
}
föregående [index] = behandlingen.
}
returnera switch nummer (1-6)
avkastning (pressad);
}

Spelar en full fil från början till slut med ingen paus.
void playcomplete(char *name) {
Ring vår hjälpare för att hitta och spela detta namn
playfile(Name);
samtidigt (wave.isplaying) {
göra ingenting samtidigt dess spelar
}
dess gjort spelar nu
}

void playfile(char *name) {
se om objektet våg för närvarande gör något
om (wave.isplaying) {/ / redan spelar något, så sluta det!
Wave.stop(); Sluta
}
titta i rotkatalogen och öppna filen
om (! f.open (rot, namn)) {
putstring kunde inte ("öppna filen"); Serial.Print(Name); hemkomst.
}
OK läsa filen och förvandla det till en våg objekt
om (! wave.create(f)) {
putstring_nl ("inte en giltig WAV"); hemkomst.
}

OK dags att spela! starta uppspelningen
Wave.Play();
}

Se Steg
Relaterade Ämnen

Predator kostym - barn storlek

senaste Halloween jag gjorde min son en predator kostym. Det var mycket tidskrävande, men jag tror det var det värt! Jag använde många olika medier i detta projekt, inklusive loppmarknad tecken för rustningen, backer spö för håret, en muskel skjorta,...

Predator kostymer - Bio hjälmar, Latex hud, Armor och blad

vi gjort två kompletta Predator kostymer för våra pojkar. En är en klassisk rovdjur från en av de tidigare filmerna (liknar varg) och den andra är en toppkonsument (Berserker) från den nyare rovdjur filmen.Vi började med armén hjälmar och hockey mask...

Lätt Predator kostym

Min 8-åriga son Ethan är så besatt av Predator vs Alien filmerna och bestämde sig mitten av september att han ville vara rovdjur. Vi tittade på filmer och mama började brainstorming. Han skulle bli rovdjur oavsett vad jag hade att göra! Du kan inte b...

Bygga en enhörning kostym

om du tror att dräkten är magiska eller läskigt... snälla rösta på mig i Halloween kostym Contest: http://tinyurl.com/9nnz7bq.Jag börjar varje dräkt skapelse genom att ta ett exempel som sker ofta, men inte till en extrem nivå. Jag såg att enda unico...

Hur man bygger en bedragarna: "Starscream" kostym

Som stör min kröningen?! Starscream flyger de inte-så-vänlig himmel!Jag ville lägga till en huvudsaklig medlem av transformatorer till våra transformatorer cosplay, så som bättre än Starscream!* En mycket speciell shout-out till instructable medlemma...

Bygga en replika Skyrim sköld

Denna sköld är från TV-spelet Skyrim. Alla nio lastrum eller städer, har denna sköld med en unik symbol. Jag tar dig genom min processen att skapa två sköldar. En jag ungefärlig som spelet korrekt storlek på 24" med symbolen Dawnstar och en annan vid...

Bygga en LEGO tegel kostym

precis allt du behöver är en låda, 8 behållare & röda sprayfärg.1. få en låda om storlek och mätningarna som anges nedan2. skär hål ca 10" brett (contianers måste vara samma bredd som behållarna.)3. sätt contianers genom hålen och limma fast dem...

Hur man bygger en Daft Punk tabell replika

tanken är att bygga en replika av Daft Punk bordet säljs på Habitat, mycket trevligt, men så länge jag vet inte säljs längre.Byggprocessen är inte särskilt komplicerat, svåraste är att bestämma allt din startpunkt är noll. Jag kunde få några idéer om...

Pytteformat Predator

Här är min 8-åriga son i våra HEMGJORDA "pytteformat Predator" kostym. Det tog ungefär en månad för lördagar att slutföra och ingenting som visas på dräkten var butiken köpte eller inte ändras på något sätt att passa det övergripande konceptet....

Arduino animatörerna-gör din awesome kostymer mer awesome!

Här gör du att lägga till åtgärder, ljus och ljud i din favorit Halloween projekt med öppen källkod Arduino mikrokontroller. Arduino är lätt att lära sig att använda och det öppnar upp en helt ny värld för kostym byggare och varelse skaparna. Om du v...

Barn rovdjur kostym

detta är en barn storlek predator kostym att gå med den främmande Xenomorph kostym vi gjorde tidigare. Tyvärr jag gjorde inte gummi Predator masken, min bror har redan gett mig sorg över det, men med tiden rinner och ingen bra leverans av flytande la...

Predator Latex Mask och Bio-hjälm

så att du vill vara rovdjur för Halloween, för en film, eller bara för att. Stor. Inte vi alla? Om att få en bra mask? Massproducerade som ser ut som skit, skräddarsydda de kosta en mindre förmögenhet. Bara gör din egen för billiga. De flesta latex m...

Kvinnliga Predator

Jag valde att bära dräkten själv som jag verkligen komma in i Halloween anda avatt vara kreativ och skapa min egen kostymer.Jag älskade filmen "Predator" och ville vara något unikt dennaår och inte som en massa andra dräkter. Jag var definitivt...

Dr Strange kostym

En Dr. konstigt kostym väcks till liv med trollformler med microcontrollers, lysdioder och sensorer!Se, trollkarl högsta!Med filmen kommer snart, sa en vän till mig min nästa kostym bör vara Dr Strange... Jag tror inte att han menade mig att ta honom...

Djävulska DIY: Gör en Halfway-till-Halloween Jersey Devil kostym

kanske det är en kryptid – kanske är det en övernaturliga kraft. För skeptikerna i publiken, kanske är det ännu en fars!Oavsett vad det verkligen är, the Jersey Devil av New Jersey Pine Lands är en formidabel hot värda undersökning och (du gissade rä...

Skapa en Halloween-kostym med tejp skulptur

jag kommer att visa dig hur du använder tejp skulptur för att skapa en Halloween-kostym, i detta fall en vithaj kostym. Som ni kan se, är kostym en haj "klingande" (som en stor vit hoppande rak ur vattnet), så att dess huvud pekar rakt upp, och...

Hur man gör en sushi restaurang kostym! (Ja, hela restaurangen)

jag ville ha en unik dräkt i år... och jag hade samlat en sportload av lådor från min flytta till min nya lägenhet.Jag älskar att bygga kostymer, jag älskar sushi, så varför inte bygga en sushi restaurang kostym?Detaljnivån i denna kostym kan vara be...

Segla i denna enkla kartong båt kostym

Denna båt kostym skapades för ett skolprojekt. Projektet var att bygga en Marina tema kostym för högstadiet år gammal student. Denna kostym måste göras helt av återvunnen kartong och monteras med slitsade konstruktion. Detta unika projekt var en kors...

"Djuphavsfiske dykare" Halloween-kostym

jag vilja hålla sig borta från trendiga Halloween kostymer. Vad är värre än visar upp till ett parti klädd på samma sätt som någon annan? Jag gillar också att göra eller bygga så mycket av kostym som möjligt. Om du läser detta Instructable, godkänner...