Library Book Reminder
I was part of a Digital Making and Learning course at my university, and our final project aimed to solve real problems. Now I have pretty terrible object permanence and have a pricey habit of forgetting to turn my library books in on time.
So I aimed to solve that problem, by creating a library book reminder board, which I have been lovingly calling my Book Buddy.
In this instructable, I will walk you through step-by-step to help you create your very own Book Buddy!
Supplies
Materials
- A piece of a wooden plank, any size will do, just try to get a piece that is not too thick, since we will be cutting holes into it later.
- two external buttons (These are the ones I used)
- one LED light of whatever color you'd like (This is the one I used)
- Adhesive whiteboard
- Circuit playground (I used the classic version)
- Alligator clips (These are the ones I used)
- An easel (optional)
- Whiteboard marker
- A type of strong adhesive (I used J-B Weld)
Tools
- a drill
- small square-shaped file (Similar to ones found in these sets)
- measuring tape
- a pencil
- a permanent marke
Step 1: Measuring the Board
The first thing you'll need to do is measure and mark the board to map out where the buttons, LED light, and whiteboard sticker are going to sit.
I left about an inch of space between the edge of the board and the whiteboard and left a space at the top of the board for the light and buttons to sit. Then I put the buttons evenly spaced between the top of the whiteboard and the top of the wooden board, and I evenly spaced them out between the left and right edges of the board to the best of my ability.
Make sure to mark these lightly with a pencil! Once everything is placed we will erase any marks that are still visible!
Step Two: Placing the Whiteboard
Once the plan has been mapped out on the wooden board, measure and cut out a piece of the adhesive whiteboard to match the space you drew on the board. Then simply remove the back layer of the whiteboard and lay the sticker on flat. I used an old hardcover book to flatten the whiteboard out and squeeze out any bubbles.
Step 3: Trace the External Buttons and LED Light
Go back to the markings that you put on the board for the button and light placements. Take your pencil and lightly trace around the edges of each button and light.
It's ok if they aren't perfect! We will adjust these later when we actually cut them out, we just need a base to work from.
Step 4: Cut the Holes
Now we can start cutting out the holes for our buttons and LED light.
For the LED light, just use a drill bit that is roughly the same size as the circle that you drew for the LED light. It's generally safer to err on the small side, as it is easier to make the hole bigger than to make it smaller.
The square buttons will take a bit more time.
First, drill a hold in the center of the squares that are drawn on the board. Then take the square-shaped filer and start to shape the holes into squares. I recommend checking the size of the holes frequently by placing the button on these holes to see if it will fit. Keep filing until the buttons can be inserted nicely into the slots.
Step 5: Securing the Buttons and Light
It is important that we secure the buttons on the board so they do not pop out the back when pressed.
You could add an adhesive around the edge of the button to secure it to the board. I personally used J-B Weld apoxy to secure mine. If you use J-B Weld, be sure to follow the instructions of the product carefully. You can also add glue to the LED light as well if it is not staying in the board.
Step 6: Getting Started on Coding
Now we will begin coding for our Circuit Playground.
Follow this link to the makecode website that we will be using.
Click the "New Project" button to get started. You should be greeted with this screen. In the far left corner you will see the circuit playground, and to the right of that is the menu. This menu holds all of the functions that we will be using to code our project.
Step 7: Creating Variables and Assigning Pins
First, we will need to create two separate variables.
Click the pink Variable tab in the menu, and click "Make a Variable." The first variable we will create will be titled "Days" and the second variable will be titled "Sound."
From there, we want to assign the two external buttons to the pins on our circuit playground. First click the purple Input tab on the menu. Find the block that says "on [button A] [click]" and drag it onto the workspace. We will need two of those blocks.
Then go back to the Variables tab and drag the block that says "set [sound] to 0" and place it into the space on our input blocks. They should lock into place so that the variables block is sandwiched inside each of the purple input blocks.
On the first input block, change [button A] to [pin A5]. Then on the attached variable block change [sound] to [days] and where it says 0 change it to 15. On the second input block, change [button A] to [pin A2], and change the variable to [days] as well. Do not change the numerical value on this block.
Step 8: Start and Countdown Coding
The next block of code we will create will establish the state of the product when the circuit playground is first turned on. Take an "On Start" block from the green Loops tab and drag it onto the workspace. Then add two "set [variable] to 0" blocks to it. Change one variable to days and the other to sound. Leave the numerical value at 0.
Now we will create our nested countdowns that will allow the Book Buddy to count down to two weeks. First, take a "forever" block from the green Loops tab and place it on the workspace. Then locate the block in the Loops tab that says "while [true] do" and attach it to our "forever" block. Inside the "while [true]" block, we will insert a "pause" block from the loops tab and a "change [variable] by 0" block. Make sure that the "pause" block is above the variable one.
Open the light blue Logic tab and pull the block that says "0=0" that is listed under "comparison." Drag this block over the [true] slot. Then return to the Variables tab and drag the circular block that says "days." This block will go where the first 0 is in the blue logic block. Then use the drop down menu on the logic block and change the equals sign (=) to a greater than sign (>). Change the second 0 to 1.
Open the dark purple Math tab and find the circular block that says "0-0" and insert it into the number slot on the pink variable block. Change the second 0 to 1.
Now, the circuit playground code only counts in milliseconds, but we want our countdown to track days. So we need to change the milliseconds to 86400000, which is the number of ms in a day.
These two blocks of code are now finished. Refer to the pictures to ensure that the coding is the same.
Step 9: Light and Sound Indicator Coding
Now that the countdown is created, we need to create the coding that lets the circuit playground know when to alert us that time is up.
First, take another "forever" block from the green loops tab and move it onto the workspace. Go to the Logic tab and add an "if [true] then" block to the "forever" block. Replace the "true" with another "0=0" block from the logic tab, and replace the first 0 with the circular "days" block.
Next, you'll need to click the dropdown button on the menu titled "advanced" and locate the "pins" tab. Find the one that says "digital write pin [A0] to LOW" and place it inside the "if true" block. Click the [A0] dropdown on that block and change it to "A3." Beneath the "digital pin" block, add a "set [variable] to 0" block from the variables tab.
Right click on the "forever" block and click duplicate. On this duplicated block of code, change the 0 in the logic block to 1, click the "low" on the pin block which will change it to "high", and change the 0 in the variable block to 1.
Now, the circuit playground will recognize that once the countdown has reached one, it will turn on the light and start the sound coding (which we will build next). It will also recognize that once the clear button has been pressed, and the days variable is set back to 0, it will turn off the light and stop playing any sound.
Refer to the pictures to make sure that the coding is the same.
Step 10: Sound Indicator Coding
The last bit of coding we will build will tell the Circuit Playground to play a sound every hour once the countdown has completed.
First, place another "forever" loop from the Loops tab onto the workspace. Add a "if [true] then" block from the logic tab inside the "forever" block. Replace the "true" with a "0=0" tab, and replace the first 0 with a circular "Sound" variable block, similar to the previous blocks we created. Change the second 0 to 1.
Locate the orange Music tab within the menu. Insert a "set volume [0]" block and a "play sound [ba ding]" block inside of the blue logic block. Make sure the "volume block" is above the "play sound" block. Circuit playground tend to be quiet, so I changed to volume to 200. You can choose any of the sounds that are found in the dropdown menu on the "play sound" block, but I chose the Jump Up sound for my project.
Now, we want to sound to repeat every hour. So beneath the "play sound" block, we need to add another green "pause" block from the Loops tab. Change the number to 3600000.
With that block finished, we are done coding! Refer to the pictures to double check your code. Download the code and connect your circuit playground to your computer and drag and drop the downloaded code into the circuit playground.
Step 11: Setting Up the Book Buddy
From here, you will need connect everything together using your alligator clips. Attach an alligator clip to a prong on one side of the "clear" button and attach the other side to the A2 pin on the circuit playground. Clip another to a prong on the other side of that same button and connect it to a ground pin. Do the same for the "start" button, with one clip connecting a prong from the button to the A5 pin, and a prong on the other side of the button to a ground pin. Then connect the longer prong on the LED light to the A3 pin, and the other prong to a ground pin.
Attach the battery pack to the circuit playground and it's good to go.
Be careful! Make sure that the two alligator clips on the buttons are attached to prongs on opposite sides of the button. If they are attached to prongs along the same side, it will not work.
Step 12: Labeling the Book Buddy
On the front of the book buddy, using a permanent marker, label the "clear" and "start" buttons. I also wrote "Book Titles" at the top of the whiteboard.
Step 13: Enjoy!
Now the book buddy is ready to go! I placed mine on an old easel to keep it upright, but it would do fine leaning up against a wall or the back of a bookshelf.
This project is easy to change to your own need. Simply change the label on the whiteboard and change the amount of days and/or time on the countdowns to fit your own needs.
For example, my brother mentioned using it to help my family remember to eat leftovers in the fridge before they went bad by shortening the countdown to a day or two. It's easy to adjust the final product to fit whatever your needs may be.