A Bewitched Book
© Übersetzung von Daniel Rafflenbeul, 2021
Bewitched Book |
MATERIALIEN:
1. Höhlen Sie Ihr Buch aus. Lassen Sie oben etwa 25 Seiten stehen.
Aufgrund des engen Platzes möchten Sie das Programm möglicherweise auf den Nano laden,
[code]
- Ein ALTES Buch...................Bitte verwenden Sie keinen Klassiker. Ich fand ein Nachschlagewerk für Poesie von 1929. Es ist großartig, weil ich die Seiten nicht altern musste.
- Einen Arduino Nano
- Ein ISD1820 Sound Module
- Ein 8 ohm Lautsprecher...........Der mit dem ISD1820 gelieferte ist nicht sehr gut.
- Ein Mini Servo Motor SG 90
- Ein Relais
- Ein kleiner 5 to 10 Volt DC Motor
- Ein Gewicht......................Ich fand meine in einem alten Fußmassagegerät. Jedes kleine schwere Metallstück, das am Gleichstrommotor befestigt ist, sollte funktionieren.
- Drei LEDs,.......................Zwei Grüne und eine Blaue.
- Einen Holz Eisstiel
- Zwei kleine Schrauben
- Vier Widerstände............Drei 220 Ohm und ein 1 Meg Ohm
- Eine Piezo Scheibe
- Ein kleiner An / Aus Schalter
- einige Arduino Verbindungskabel
- Einige ca. 14 Stücke einfaches Kabel
- Ein kleines Stück of 1/4" (6 mm) dickes Holz
- Ein Stück klares Plastik about 1/16" (2mm) dick..........Ich fand in einem preiswerten Bilderrahmen
- Klebstoff
- Schrumpfschlauch / Isolierband
PROGRAMME:
- Arduino IDE
Link zu Arduino IDE
Schritt 3: Die Vorbereitung
Die ersten 25 Seiten müssen ungeschnitten und ungeklebt bleiben.
Lassen Sie auch etwa 1,5 cm Rand oder Wand.
Ich benutzte ein Universalmesser und ein Lineal,
um ein rechteckiges Loch zu schneiden.
Gehen Sie bis zur Rückseite.
Meine hintere Abdeckung war nicht sehr robust.
Ich schnitt das Stück Holz auf die gleiche Größe wie mein Loch,
bohrte ein Loch in das Holz in der gleichen Größe wie der Gleichstrommotor
und klebte das Holz in die hintere Abdeckung, damit es in mein rechteckiges Loch passte.
2. Das grüne Leuchten wird mit dem durchsichtigen Kunststoff erreicht.
Schneiden Sie es in Streifen, die breiter
oder breiter als die Seiten des Buches sind.
Kleben Sie sie an verschiedenen Stellen zwischen die Seiten.
Stellen Sie sicher, dass sie außen bündig sind.
Malen Sie nun eine Schicht klaren Klebers über die Außenseite der Seiten.
3. Richten Sie den ISD1820 ein.
Ich habe ein Lachen benutzt, das ich online gefunden habe,
aber du kannst dein eigenes machen.
Hier bei Instructables finden Sie ein großartiges Tutorial zum Einrichten und Verwenden des ISD1820.
Benutzung und Einstellungen vom ISD1820 Voice Recorder and Player auf Instructables
Benutzung und Einstellungen vom ISD1820 Voice Recorder and Player Datenblätter
Ein Hinweis, um es einfacher zu machen:
Befestigen Sie den ISD1820 an Ihrem Nano 5V und an der Masse.
Schließen Sie den Nano an Ihren USB-Anschluss an.
Spielen Sie jetzt den Ton ab, den Sie in der Nähe des Mikrofons des ISD1820 aufnehmen möchten.
Es wird jetzt in den Speicher des Rekorders geladen.
Wenn Sie das Bewitched Book-Programm laden, wird der Ton abgespielt,
wenn der entsprechende Nano-Pin auf "HIGH" geht.
4. Der Servomotor wird mit mehreren kleinen weißen Armen geliefert.
Bohren Sie zwei Löcher in den Eis am Stiel
und schrauben Sie ihn an einen der Arme.
Am besten ist der weiße Arm, der nur in eine Richtung ragt.
Drehen Sie den Arm des Servomotors vorsichtig bis zum Anschlag im Uhrzeigersinn.
Alternativ können Sie ein kurzes Programm schreiben, um das Servo auf 0 Grad einzustellen.
5. Das Relais ist für den Gleichstrommotor.
Verbinden Sie das Hauptstromkabel mit dem gemeinsamen Stecker
und das Pluskabel des Gleichstrommotors mit dem N.O.
(normalerweise offener) Stecker
6. Löten Sie die 220-Ohm-Widerstände und die Verkabelung
wie in der Abbildung gezeigt an die LEDs.
Denken Sie daran, freiliegende Drähte mit Schrumpfschlauch oder Klebeband abzudecken.
7. Die Piezoscheibe sollte einen Draht haben,
der mit der Messingfarbe verlötet ist, und einen Draht,
der mit dem weißen Mittelteil verlötet ist.
Ein Draht ist mit Masse und der andere mit einem analogen Pin des Nano verbunden.
Die Drähte müssen lang genug sein, um durch die Seiten zum inneren Umschlag des Buches zu gelangen.
Außerdem muss der eine Megawiderstand irgendwo entlang der Leitungen zwischen die Drähte gelötet werden.
Schritt 4: Die Programmierung
bevor Sie das Nano-Board in das Buch einfügen.
Sie können die Kommentare im Code überprüfen, um zu ändern,
wie viele Verzögerungen zwischen den Aktionen auftreten.
Im Video habe ich die Verzögerung zwischen den Aktionen auf
eine Sekunde (1000 Millisekunden) eingestellt,
damit das Video nicht zu lange läuft.
Normalerweise sollte die Einstellung zwischen 30 und 60 Sekunden
(30000 bis 60000 Millisekunden) liegen, damit die Aktionen unerwarteter werden.
Sie können dies in den Codekommentaren sehen.
Der Code ist hier: zum Download
Oder hier :
/* Bewitched Book Sketch by John Shute (not a pro by any stretch of the imagination). I declare
this code to be public domain and I except no responsibility for anything.
The code will control several functions intended to make a book appear to be haunted.
*/
#include
Servo servo; //declare the servo motor
int pos = 0; //position variable
int i = 0; // count variable
int val = 0; //value for knock sensor
const int KnockSensor = A0; //knock sensor
const int THRESHOLD = 350; //How hard a Knock to start Cases (o to 1023)
int pwmLED = 5; //Green Fading Leds
int pwmLED2 = 6; // " " "
void setup() {
Serial.begin (9600); //for debugging
pinMode(A0, INPUT); // Knocksensor Pin
pinMode(3, OUTPUT); // Open book
pinMode(4, OUTPUT); // Rumble Motor
pinMode(7, OUTPUT); // Blue light
pinMode(8, OUTPUT); // Evil Laugh
pinMode(pwmLED, OUTPUT); // Green Fade (pin 5)
pinMode(pwmLED2, OUTPUT); // Green fade (pin 6)
}
void loop() {
sensor(); // check the sensor
haunt(); // start the program
}
void sensor() {
val = analogRead(KnockSensor); // read the knock sensor
if (val < THRESHOLD) { // if sensor not activated,
sensor(); // keep checking
}
else { // if the sensor is disturbed
haunt(); // go to haunting actions
}
}
void haunt() { //begin actions
delay(5000); //wait 5 seconds
// Rumble Motor, Relay to rumble motor turned on, book vibrates
digitalWrite(4, HIGH); //turn on the rumble motor
delay(700); //run 7 milliseconds
digitalWrite(4, LOW); // stop
delay(20000); //wait-----CHANGE THIS VALUE TO ADJUST THE DELAY BETWEEN ACTIONS.
//(1000); IS 1 SECOND. (60000); IS 1 MINUTE).
// Evil Laugh, recording plays
digitalWrite(8, HIGH); // recording plays
delay(3000); // time for recording to play
digitalWrite(8, LOW); // stop
delay(17000); //wait...The delay between actions.
// Pages Glow Green Fade in, then out.
for (int i = 0; i < 255; i++) { //set the rate of fade in-increas i by 1
analogWrite(pwmLED, i); //write the i value to pin 5
analogWrite(pwmLED2, i); //and 6
delay(5); //time between iterations
analogWrite (pwmLED, HIGH); //after 255 write high
analogWrite (pwmLED2, HIGH); //
}
for (int i = 255; i > 0; i--) { //decrease i by 1
analogWrite(pwmLED, i); // see above
analogWrite(pwmLED2, i);
delay(5);
analogWrite (pwmLED, LOW);
analogWrite (pwmLED2, LOW);
}
delay(20000); //wait...The delay between actions.
// Book Open and Close, blue LED on
servo.attach(3); //turn the servo on
for (pos = 0; pos <= 35; pos += 1) { // goes from 0 degrees to 35 degrees in steps of 1 degree
digitalWrite (7, HIGH); // bue led on
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(100); // set the speed it moves, relatively slow
}
for (pos = 35; pos >= 0; pos -= 1) { // return to 0 degrees
servo.write(pos);
digitalWrite (7, LOW); // tell servo to go to position in variable 'pos'
delay(15); // close quickly
}
servo.detach(); // servo off
delay(14000); //wait...The delay between actions.
// Rumble With Green light,
digitalWrite(4, HIGH); //turn on the rumble motor
digitalWrite (pwmLED, HIGH); //green light on too
digitalWrite(pwmLED2, HIGH);
delay(500);
digitalWrite(4, LOW); //turn them off
digitalWrite(pwmLED, LOW);
digitalWrite(pwmLED2, LOW);
delay(21000); //wait...The delay between actions.
// Evil Laugh
digitalWrite(8, HIGH); // recording plays
delay(3000); // time for recording to play
digitalWrite(82, LOW); // stop
delay(20000); //wait...The delay between actions.
// Book Opens with no light
servo.attach(3);
for (pos = 0; pos <= 35; pos += 1) { // goes from 0 degrees to 35 degrees Steps in steps of 1 degree
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(100); // go slowly in this direction
}
delay(500);
for (pos = 35; pos >= 0; pos -= 1) { // return to 0 degrees
servo.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
servo.detach();
delay(19000); //wait...The delay between actions.
// Green Fade
for (int i = 0; i < 255; i++) {
analogWrite(pwmLED, i); //write the i value to pin 5 and 8
analogWrite(pwmLED2, i);
delay(5); //wait 5 ms then do the for loop again
analogWrite (pwmLED, HIGH);
analogWrite (pwmLED2, HIGH);
}
for (int i = 255; i > 0; i--) { //decrease i by 1
analogWrite(pwmLED, i);
analogWrite(pwmLED2, i);
delay(5);
analogWrite (pwmLED, LOW);
analogWrite (pwmLED2, LOW);
}
delay (20000); //wait...The delay between actions.
//Rumble
digitalWrite(4, HIGH); //turn on the rumble motor
delay(500);
digitalWrite(4, LOW);
delay(20000); //wait...The delay between actions.
// Evil Laugh
digitalWrite(8, HIGH); // recording plays
delay(3000); // time for recording to play
digitalWrite(8, LOW); // stop
delay (15000); //wait...The delay between actions.
// Book Open
servo.attach(3);
for (pos = 0; pos <= 35; pos += 1) { // goes from 0 degrees to 35 degrees Steps in steps of 1 degree
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(100); // go slowly in this direction
}
delay(500);
for (pos = 35; pos >= 0; pos -= 1) { // return to 0 degrees
servo.write(pos);
delay(15); // waits 15ms for the servo to reach the position
}
servo.detach();
delay(20000); //wait...The delay between actions.
//Book Open with Blue Light and Laugh
servo.attach(3); //turn the servo on
for (pos = 0; pos <= 35; pos += 1) { // goes from 0 degrees to 35 degrees in steps of 1 degree
digitalWrite (7, HIGH);
digitalWrite (8, HIGH);
servo.write(pos); // tell servo to go to position in variable 'pos'
delay(100);
}
for (pos = 35; pos >= 0; pos -= 1) { // return to 0 degrees
servo.write(pos);
digitalWrite (7, LOW);
digitalWrite (8, LOW); // tell servo to go to position in variable 'pos'
delay(15);
}
servo.detach(); // turn the servo off
delay(140000); //wait...The delay between actions.
haunt(); //Go back to the Haunt loop
}
[/code]
Schritt 5: Montage und Verkabelung
Kleben Sie den Gleichstrommotor fest in das in die Platine gebohrte Loch.
Setzen Sie die anderen Teile ein.
Die Schaltpläne veranschaulichen, wie ich die Komponenten platziert habe.
Kleben Sie sie auch ein.
Sie müssen einen kleinen Schlitz in die oberen 25 Seiten schneiden,
um die Piezo-Scheibe durchzuschieben und die Scheibe auf die Rückseite der vorderen Abdeckung zu kleben.
Schneiden Sie ein Loch in die Seiten, auf denen es nicht angezeigt wird,
und installieren Sie den Schalter.
Versuchen Sie, die LEDs nahe an der Vorderseite des Buches zu halten.
Die Verkabelung ist viel Arbeit. Ich habe zwei Diagramme hochgeladen
Verwenden Sie bei der Verkabelung zuerst das Stromleitungsdiagramm und fügen Sie dann die Steuerleitungen hinzu.
Die Nano-Platine verfügt über einen 5-Volt-Regler am Vin-Pin,
sodass sie und der Gleichstrommotor über den Ein- / Ausschalter direkt mit der Batterie verbunden sind.
Alle anderen Komponenten erhalten 5 Volt vom 5-V-Pin des Nano und sind ebenfalls am Nano Gnd geerdet.
Schritt 6: Test und Einstellungen
Sobald Sie den Schalter am Buch einschalten,
werden möglicherweise einige Aktionen ausgeführt,
z. B. das Rumpeln des Gleichstrommotors und das Abspielen des Rekorders.
Es dauert ein oder zwei Sekunden, bis der Nano die Dinge startet und kontrolliert.
Danach sollte nichts mehr passieren, bis Sie an die vordere Abdeckung klopfen.
Dann sollten in fünf Sekunden die Aktionen beginnen.
Sie möchten, dass der Servomotor das Buch nur leicht öffnet,
da sonst Personen in Ihr Buch sehen können.
Wenn das Buch überhaupt nicht geöffnet wird, können Sie den Code anpassen
oder es ist wie folgt einfacher.
Schalten Sie das Buch aus, nehmen Sie den Eis am Stiel von den Zahnrädern
und legen Sie ihn an einem höheren Punkt in seinem Zyklus wieder ein.
Schritt 7: Es alt aussehen lassen
Ich habe ein paar Plastikschraubkappen auf die Rückseite des Buches geklebt,
damit es sich besser bewegen kann. Siehe Foto
Jetzt müssen wir unser Buch uralt aussehen lassen.
Der beste Weg, den ich gefunden habe und der nicht allzu schwierig ist, ist,
den Anweisungen dieser Dame hier zu folgen.
Originalquelle
Zurück zur Hauptseite