Introduction: BookPusher

This work is one of the Hacking Project for your Book Self.

This arms will help you pick books up.

Step 1: Preparation

1.Mesure the size of your book self (For example: our book self size)

2.Deside the setting (In our case, we use three cut corner file cases and two books)

3.Prepare All Materials following the list

 Material List:

  • Arduino UNO ×1
  • Servo Motor (Tower Pro SG 5010) ×5
  • DC 5V 2.0A Converter Power Supply Adapter (External power supply for Servo Motors) ×1
  • Battery Holder (for 4 AAA batteries) (External power supply for Arduino UNO) ×1
  • Medium Breadboard ×1
  • 10KΩ resistors ×5
  • Push Button Switch ×5
  • Jumpwires (multiple)
  • Tape and super glue

Step 2: Soldering the Switches

Watch the reference video for details

Step 3: Make Arms and Container With Laser Cutter

  1. Measure the size of the connector to the motor and the size of the push button
  2. Draw on Adobe Illustrator : Arm1,Arm2 (In our case, we combined 3 layers of 4mm MDF, having the first layer cut with shape of the connector to the motor), and Box (make sure there's enough space to place on the shelf and space for breadboard, Arduino and batteries, and we used 4mm MDF)
  3. Cut with laser cutter and resemble
  4. Make sure the arm won't hit the shelf like back board when moving after setting in the book self, if so, remake it!

Step 4: Coding and Upload to Arduino

//Write the code and set the angle of the arm movement.

//This is a code for controling 5 servo motors

#include <servo.h>; //Read Arduino library for controling Servo Motor
Servo myservo1; 
Servo myservo2;
Servo myservo3;
Servo myservo4;
Servo myservo5;
const int buttonPin1 = 8; // pushbutton pin 
const int servoPin1 = 2; //  servo pin
const int buttonPin2 = 9;
const int servoPin2 = 3;
const int buttonPin3 = 10;
const int servoPin3 = 4;
const int buttonPin4 = 11;
const int servoPin4 = 5;
const int buttonPin5 = 12;
const int servoPin5 = 6;
int buttonState1 = 0; //local variable to hold the pushbutton states
int buttonState2 = 0;
int buttonState3 = 0;
int buttonState4 = 0;
int buttonState5 = 0;
void setup() {
  Serial.begin(9600); //Set up the serial data
  myservo1.attach (servoPin1);
  pinMode (buttonPin1, INPUT); //Set up the pushbutton pins to be an input
  myservo2.attach (servoPin2);
  pinMode (buttonPin2, INPUT);
  myservo3.attach (servoPin3);
  pinMode (buttonPin3, INPUT);
  myservo4.attach (servoPin4);
  pinMode (buttonPin4, INPUT);
  myservo5.attach (servoPin5);
  pinMode (buttonPin5, INPUT);
  myservo1.write(90); // Set up the first angle of servo motor
void loop() {
  buttonState1 = digitalRead (buttonPin1);
  buttonState2 = digitalRead (buttonPin2);
  buttonState3 = digitalRead (buttonPin3);
  buttonState4 = digitalRead (buttonPin4);
  buttonState5 = digitalRead (buttonPin5);
Serial.println(buttonState1); // indicate teh buttonState1 data on Serial monitor
  if (buttonState1 == HIGH){
    myservo1.write (90); //decide the angle of motor
    myservo1.write (0);
    delay (1500);
  if (buttonState2 == HIGH){
    myservo2.write (0);
    delay (1500);
  if (buttonState3 == HIGH){
    myservo3.write (0);
    delay (1500);
  if (buttonState4 == HIGH){
    myservo4.write (0);
    delay (1500);
if (buttonState5 == HIGH){<br>    myservo5.write(90);
    myservo5.write (0);
    delay (1500);

Step 5: Build Up

Build up according to the set-up graph, and watch the video for more details

Step 6: Checking Up

Make sure that

  1. all buttons work,
  2. everything fits in the box,
  3. wires are long enough, and
  4. cable can reach the plug.

Step 7: Setting Up

  1. Set up the motors according to your bookshelf's setting
  2. Use tape to set to the position first
  3. Make sure each arm and motor work
  4. Use super glue to stable the motors!

Step 8: Enjoy It in Your Life

OK! The work is totally completed !!

Let's enjoy using this product and device following things for your own work !

  1. size of your bookshelf
  2. cut corner file cases
  3. shape of arms
  4. shape of container box
  5. codes
  6. set-up graph
First Time Author Contest 2018

Participated in the
First Time Author Contest 2018

Epilog Challenge 9

Participated in the
Epilog Challenge 9