Halloween Post-op (pt 3) en vooruitblik

Door sebastius op zondag 16 november 2014 15:25 - Reacties (4)
Categorie: Knutselen, Views: 2.777

Erg laat (Sint Maarten is alweer voorbij en Sint Nicolaas is alweer in het land) maar ik wil toch het verhaal compleet maken. De aanloop naar Halloween was heftig maar het resulaat was erg tof.

Ik heb op school een spookhuis gebouwd. Stom genoeg zo onwijs druk dat ik er geen foto's van heb gemaakt... Maar ik zal je toch ongeveer vertellen wat er gebouwd is:

Van tafels is er een tunnel gebouwd, zigzaggend door een lokaal. Goed dicht, je ziet bijna geen hand voor ogen. Op diverse plekken heb ik gespeeld met texturen op de grond (kippegaas, metalen platen etc) en aan het plafond (spinrag, hangende slingers). Buiten de tunnel staat de muziekinstallatie met een lange soundtrack van een spookhuis, van Youtube geplukt.

De tunnel an-sich is natuurlijk wel spannend maar het is nog geen spookhuis. Diverse halloween-meuk zorgt daarvoor, inclusief de 'pratende schedel' van de eerste blog. De beamer met de AtmosFearFX projecteerde op een stuk overtrekpapier (ik heb thuis op een grof gordijn getest:) en de schakelaar van deel 2 was iets eerder in de tunnel verstopt.

http://i166.photobucket.com/albums/u91/sjieto/IMG_7634_zps2fd14d82.jpg
Dit is bij mij thuis op een gordijn van achter geprojecteerd. Ook nog steeds goed zichtbaar en duidelijk iets wat ik volgend jaar met halloween ga doen thuis!

Vrijdagmiddag kwam ik met mijn klas langs het spookhuis, het was hillarisch. Gillende kinderen, iedereen erg erg enthousiast. Het was feest!

Tijd voor iets meer details over het schedelproject. Eigenlijk alles weet je al, de onderdelen etc. Ik had beloofd nog met een geluidschip te gaan werken, nou... die werkte niet. Wat een troep, ga ik niet meer op die manier doen.

Foto's met uitleg:

http://i166.photobucket.com/albums/u91/sjieto/IMG_7697_zps2f91bc60.jpg
Bij de nek heb ik een PIR sensor geplakt. Simpel: zie ik iets, geef een seintje. Wel even afstellen op locatie!

http://i166.photobucket.com/albums/u91/sjieto/IMG_7698_zps14392281.jpg

In de schedel zitten: de Arduino Pro Micro op een breadboard, de Servo en twee NeoPixels in de ogen. Een dikke condensator ontstoort de boel, de NeoPixels en de Servo zaten elkaar behoorlijk dwars.

Hier zie je meteen een flink probleem, ook al is het niet goed zichtbaar. Ik heb de Servo met hot-glue geplakt op de bodem. Aan het einde van de dag ontdekte ik dat de kaak niet meer goed bewoog. De lijm was gesmolten door de hitte van de motor!

Alles werd gevoed vanaf een externe 5volt voeding.

Onderstaande code krijg je er bij maar ik ben er niet trots op. Programmeren kan ik wel maar ik heb echt wat beters te doen dan optimaliseren/netjes schrijven etc. Daarom deze inefficiente janboel :P


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Numbskull
// Sebastian Oort / Sebastius
// 31-10-2014
// 
// Basic Halloween Animatronic
//
// Jaw-servo, pin 9
// Neopixel eyes, pin 6 (2 neopixels daisy-chained)
// PIR sensor, pin 2
// 
// When the PIR sees something, the jaw opens and closes and the eyes pulsate red.
//
// You need to edit the servo extremities to work for your servo, mine was at 55 for a closed yaw, 100 for an open jaw.
//
// Room for improvement: more animation of the eyes, speech-chip, usage of interrupts might be better.
//
// Sources: examples from Adafruit Neopixel and the Servo example by Arduino. 

#include <Servo.h>
#include <Adafruit_NeoPixel.h>

#define Eyespin 6
#define Servopin 9
#define PIRpin 2
 
Servo myservo;  // create servo object to control a servo 
                // a maximum of eight servo objects can be created 
                
Adafruit_NeoPixel eyes = Adafruit_NeoPixel(2, Eyespin, NEO_GRB + NEO_KHZ800);                
 
int pos = 0;    // variable to store the servo position 
int pirState=0;


 
void setup() 
{ 
  myservo.attach(Servopin);  // attaches the servo on pin 9 to the servo object 
  eyes.begin();              // 
  eyes.show();               // Turn the eyes off
  myservo.write(75);         // Lets open the jaw halfway
  pinMode(PIRpin, INPUT);    // Ready the PIR sensor
} 
 

 
void loop() 
{ 
  pirState=digitalRead(PIRpin);      // Check the PIR sensor
  
  if (pirState==HIGH){              // If we see something, start scaring him!
    jaw();
  }
  else {                            // Else turn everything off and go to sleep!
    eyes.setPixelColor(0,eyes.Color(0,0,0));
    eyes.setPixelColor(1,eyes.Color(0,0,0));
    eyes.show();
  }
} 



void jaw(){
  for(pos = 55; pos < 100; pos += 1)  // goes from 55 degrees to 100 degrees 
  {                                  // in steps of 1 degree 
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    int kleur=5*(pos-55);            // calculate intensity of color (jaw closed = lights off, jaw open, lights full on)
    
    eyes.setPixelColor(0,eyes.Color(kleur,0,0));
    eyes.setPixelColor(1,eyes.Color(kleur,0,0));
    eyes.show();    
    delay(10);                       // waits 15ms for the servo to reach the position 
  } 
  for(pos = 100; pos>=55; pos-=1)     // goes from 100 degrees to 55 degrees 
  {                                
    myservo.write(pos);              // tell servo to go to position in variable 'pos'
    int kleur=5*(pos-55);
    eyes.setPixelColor(0,eyes.Color(kleur,0,0));
    eyes.setPixelColor(1,eyes.Color(kleur,0,0));
    eyes.show(); 
    delay(10);                       // waits 15ms for the servo to reach the position 
  } 
}



Maar: een leuk projectje dat iedereen eigenlijk wel zou moeten kunnen!

Vooruitblik

Ik heb een aantal projecten in de pijp zitten:

- Space Invaders moet maar eens verder aan gewerkt worden. Ik ben een tijd terug begonnen aan een nieuw board, de oude opstelling was niet zo handig en had zoveel signaalverlies dat het onbetrouwbaar werkte. Ik twijfel nog over een efficiente (snelle) en betrouwbare bedradingstechniek. Onderstaande foto is de eerste van twee prints.

http://i166.photobucket.com/albums/u91/sjieto/IMG_7701_zps4dfec501.jpg

- Ik heb weer een paar defecte laptops liggen die ik in wil zetten voor mijn klas. Deze moeten gerepareerd worden. Denk aan een Macbook met slecht geluid, een Acer die niet boot en nog wat spul.

- Ook zou ik het leuk vinden om een soort 'mailbag' item te doen. Daarin kunnen tweakers dan leuke troep insturen (donatie) en dan blog ik er wat over. Soms sloop ik het, soms een teardown, soms een reparatie, soms een hack. Gejat concept maar het wordt niet oud ;)

- Mijn hobbyplek heeft een herinrichting nodig. Ik heb ruimte zat maar ik kom ruimte te kort. Ik heb iets nodig om gereedschap en meetinstrumenten efficient bij de hand te hebben. Ook wil ik de boel ESD-veiliger maken

- Weer iets bouwen met Arduino's en Animatronics. Geen idee wat nog.

Heb je zelf nog tips of gedachtes? Laat het weten.

Tot slot: ik heb nu al een aantal maanden de 'Tweakblog van de Maand' gewonnen. Mag ik jullie daarvoor bedanken? Ik vind het onwijs tof om op die manier een breder publiek te bereiken en jullie steun is daarbij onmisbaar! Ik hoop dat jullie blijven nomineren (niet alleen die van mij!) als er een top-blog is :)