Possessed Halloween Book Stand!

by unkn0wn__142 in Circuits > Electronics

572 Views, 6 Favorites, 0 Comments

Possessed Halloween Book Stand!

3D Printed Possessed Book Stand! - Halloween 2023
IMG_5588.JPG
IMG_5581.JPG
IMG_5582.JPG
IMG_5583.JPG
IMG_5584.JPG
IMG_5585.JPG

Ever wanted to scare your friends and family with a truly spooky Halloween Decoration? Look no further! This little creation is sure to add a touch of magic to your Halloween festivities!

Using a small DC motor and a precise servo mechanism, this device turns the pages of a book with eerie precision. The result? An enchanting and mesmerizing book stand that's sure to confuse and surprise any audience!

Supplies

9319844652414.jpg
51iCS0gt93L.jpg
FOCHIPTLO8MIZ8I.png
FEAW6Z8LO8MIZOP.jpg
FFT3NXNLO8MIZQ0.jpg

The Main Items that you need:


  • 3D Printer + Filament
  • Book
  • DC Motor
  • Arduino
  • L298N Motor Driver Module

This project only uses a few components which means it's easy to create!



Full Parts List:


  1. 3D Printer
  2. Black PLA Filament
  3. Book (Hardcover books worked better in my experience)
  4. 2x M3*30 Screws (For mounting the DC motor, mine came with these screws)
  5. 9G Micro Servo
  6. Geared DC Motor
  7. Arduino Nano, Uno, etc.
  8. L298N Motor Driver Module (You can find these pretty much everywhere for around ~3$!)
  9. Large and Bright Yellow LED (Optional if you're going to print the tree.)
  10. Some tape

Designing the Model

Screenshot 2023-10-28 114535.png
render-min.png

Designing the book flipper mechanism was quite easy once I got a few ideas from YouTube. However, the hardest part was designing the tree since this was my first time using Blender!


First, I watched a couple of videos on designing a stump and then made my own. Afterwards, I used shading in Blender to get some bark displacement and colour onto the model using this tutorial. However, while my renders looked great, the displacement was only on the render and not the mesh itself. So, after a few long hard days of learning, I managed to bake the map onto the actual mesh itself and export it as an STL!

3D Printing

FB0UFT5LOA1ZE9W.jpg
FR5KFTVLOA1YFC4.jpg
FQMBFE2LOA1YEC8.jpg
FSUYO1QLOA1YEZU.jpg
F7GWL4KLOA1YEIX.jpg
F5VYHJ2LOA1YED1.jpg
FJYGF3GLOA1YEET.jpg

First, head over to my Thingiverse page in order to download the required models!

The files named

  • Base1
  • Base2
  • Base3
  • Base4
  • Lid1
  • Lid2
  • ServoARM
  • Roller

Are all required for the book flipper itself.


However, the "Tree" file is optional, since it is merely the stand. If you do decide to print it, you will need to cut the model into smaller pieces to fit on most build plates. I cut mine into four equal pieces and printed them at 0.28 layer height and 4-5% infill in order to get a really nice diffused look!


After you've done that, simply slice and print the models!


I used eSUN PLA + Black for the entire decoration, but I would definitely recommend using a lighter colour such as white since the light from the tree is more diffused and much spookier!

Assembling the Electronics

FCK6HCDLOA1YESA.jpg
FCL9DEXLOA1YES9.jpg
F9ACGU9LOA1YENX.jpg
FSI1UKCLOA1YEE9.jpg
F8B2LHBLOA1YESB.jpg
FXP5JV1LOA1YES7.jpg
FT58ZTKLOA1YERP.jpg

The electronics will be split into two different compartments. Base1 will hold both the Servo and the Motor. Base2 will store the Arduino and the Motor Driver.


Assembly with Base1

  1. First, slide the Servo into the allocated slot with the wire going in first.
  2. After that, mount your motor to the book stand by using the two screws that I mentioned in the Parts List!


Assembly with Base2

Simply store your Arduino and Motor Driver so there is enough space to connect the pins while also not going outside the box!



Setting Up the Servo and Motor

FF8DSRRLOA1YEXK.jpg
F5G0NLOLOA1YEY2.jpg
F1NBO7RLOA1YEY3.jpg
FHJQHQ5LOA1YQS9.jpg

Using some tape (I used black electrical tape) wrap it around the Roller with the sticky side facing outward!

This is so the motor will be able to get a grip on the page to curl it upwards


After that, attach the ServoARM to the Servo using a small screw that should come with your servo.

Connecting the Electronics

FXZ25RULO8MJX25.png

The connections are very simple and only require a few wires. Check out the Schematic or the table below. Of course, you can change any of these by simply modifying the code which we will get to soon!


Pinout:


Arduino = L289N

D9 = ENA

D2 = IN1

D3 = IN2


Arduino = Servo

5V = +

GND = -

D10 = Signal


L289N

Out1 = Motor +

Out2 = Motor -

12V/VIN = 9V Battery +

GND = 9V Battery -




For the purposes of this tutorial, I used an Arduino Uno since it was easier to debug.


Assembly of the Body

F6FKOHCLOA1YENY.jpg
F4M4K3WLOA1YEOT.jpg
FP9YM6ELOA1YEQ4.jpg
FI04Z6XLOA1YES8.jpg
F02X3PCLOA1YN8D.jpg
F9VXYSQLOA1YET7.jpg
F74ZJ91LOA1YET8.jpg
F84BPVULOA1YETQ.jpg
FQN23C1LOA1YEUL.jpg
FREPAFRLOA1YEVG.jpg

Assembling the body is simple. Just slide the two lids over Base1 and Base2 and then connect the remaining bases together! The pictures are self-explanatory.


If the connections are loose, you can use some glue to hold them together but make sure that the flipper mechanism itself works before you permanently stick them!

The Code!

FI9VQEYLOA1YRJT.png

Now to begin coding!

The code is relatively simple since it only turns the motor on and off and moves the servo back and forth.

You can download the PossesedBookStand.ino file or copy and paste it from below.

#include <Servo.h>


Servo servoMotor;
int motorAPin1 = 2; // Connect L298N IN1 to Arduino pin 2
int motorAPin2 = 3; // Connect L298N IN2 to Arduino pin 3
int motorEnablePin = 9; // Connect L298N ENA to Arduino pin 9
int servoPin = 10; // Connect servo signal pin to Arduino pin 10
 
void setup() {
  pinMode(motorAPin1, OUTPUT);
  pinMode(motorAPin2, OUTPUT);
  pinMode(motorEnablePin, OUTPUT);
  servoMotor.attach(servoPin);
  servoMotor.write(200);
}


void loop() {
  // Turn motor A for 0.11 second
  digitalWrite(motorAPin1, HIGH);
  digitalWrite(motorAPin2, LOW);
  analogWrite(motorEnablePin, 255);
  delay(170);


  // Stop motor A
  analogWrite(motorEnablePin, 0);
  delay(2000);


  // Move servo to 180 degrees
  servoMotor.write(0);
  delay(2000);


  // Move servo back to 0 degrees
  servoMotor.write(200);
  delay(3000);
}


Time for the code explanation!


#include <Servo.h>


This line includes the Servo library in the code, without it, we wouldn't be able to control the servo!


Servo servoMotor;


This line sets up a Servo named servoMotor in our code


int motorAPin1 = 2; // Connect L298N IN1 to Arduino pin 2
int motorAPin2 = 3; // Connect L298N IN2 to Arduino pin 3
int motorEnablePin = 9; // Connect L298N ENA to Arduino pin 9
int servoPin = 10; // Connect servo signal pin to Arduino pin 10


These lines specify what pins the Motor Driver Board and the Servo is connected to. You can change this part of the code to change what pins control what.


void setup() {
 pinMode(motorAPin1, OUTPUT);
 pinMode(motorAPin2, OUTPUT);
 pinMode(motorEnablePin, OUTPUT);
 servoMotor.attach(servoPin);
 servoMotor.write(200);
}


This section tells the Arduino that the specified pins are outputs. It also sets the Servo pin and turns the Servo to 180 degrees which in our case is the default angle.


void loop() {
 // Turn motor A for 0.11 second
 digitalWrite(motorAPin1, HIGH);
 digitalWrite(motorAPin2, LOW);
 analogWrite(motorEnablePin, 255);
 delay(170);

 // Stop motor A
 analogWrite(motorEnablePin, 0);
 delay(2000);


This section turns the DC motor on and off quickly in order to get a small curve on the page.

If you want to learn more about the L298N motor driver, check out this website for a detailed guide!


 // Move servo to 180 degrees
 servoMotor.write(0);
 delay(2000);

 // Move servo back to 0 degrees
 servoMotor.write(200);
 delay(3000);
}


Finally, this part of the code turns the Servo motor to 180 degrees in order to flip the book and then turns it back!


Once you have uploaded your code, make sure to test it out with a book so it works!

When it does, you can use some glue like I did to permanently fix the Bases together.

Preparing the Tree

FFTS7DVLOA1YEYJ.jpg
FNAR03LLOA1YEZE.jpg
F7YFIJ4LOA1YEHQ.jpg

If you printed the Tree, there is one more step to follow!


Since the tree is so large, you will most likely have to print them in four pieces and stick them together using some glue.

In order to make the tree light up, you will need a light source that is preferably yellow and bright.

I used two large 10mm yellow LED powered by a coin cell battery for the light, however, I would recommend using something even brighter like an electric candle.

The pictures of the tree above were printed in white filament but having darker colours will make it harder to see the light

DO NOT use a real candle since it will melt and burn the plastic!

Testing

3D Printed Possessed Book Stand! - Halloween 2023

Finally, you can test it out!


Grab a hardcover book and place it under the roller. You may need to tweak your code and book placement in order to find the sweet spot!