Skip to content

Prometheus Version 1

Andrew Lee edited this page Jan 7, 2018 · 20 revisions

Note, this version is the prototype hardware set-up which was superseded by Prometheus version 2. Although useful for rapid prototyping purposes, I would personally recommend you try to build based on version 2 as it has numerous improvements such as structural strength, single power source, better sound quality, and better aesthetics.


version1

Components

ITEMS DESCRIPTION QUANTITY
Raspberry Pi 3B Runs all the logic and supplies 5V to the motor driver x1
5V @1.0A+ Power Supply Powers the Pi x1
L293D Motor Driver that is will either allow the circuit to the vibrator, or disallow x1 (I would bulk buy more)
Breadboard Prototyping and connecting everything x1
Wires Breadboard wires. Make sure they can withstand some amount of current (12V), if you don't have a Pi breadboard ribbon, get female to male in addition to male to male x10-x20
Breadboard Barrel Plugs (5.5x2.1mm) You will need 2 breadboard pluggable barrel plugs: one for the 12V power in, and one to power the SSV12 Bed Vibrator x2
USB Audio Interface (Optional) Default Pi TRS output quality is terrible, so this provides a way to get okay audio x1
SonicAlert SS12V Bed Shaker (Or some other vibration capable device) Bed shaker, runs 12V @ 0.5A (peak 12V @ 1.0A) Center Pin Positive x1
12V @ 1A DC Power Supply The main point here is that it is DC, and that it can supply 12V @ 1A or greater than 1A x1
Arduino based Nixie Clock You have some of freedom here, but I personally chose GRA & AFCH NCS 314 which runs on Arduino (not included) x1

Wiring

Version 1 uses two different circuits. The 12V circuit powers the bed vibrator and the nixie display while the 5V circuit powers the Raspberry Pi and the L293D. The 5V circuit is necessary because you cannot run the Raspberry Pi on the 12V circuit without the risk of doing irreparable damage.

Pi

The main Prometheus program is run on the Raspberry Pi. The Raspberry Pi is responsible for hosting a small website which acts as the user interface for the alarms, getting accurate time from the web (which it will use to check if the user supplied alarm time matches the current time at the beginning of every minute), sending the logical signals to the L293D motor driver chip (to enable or disable the 12V current to the bed vibrator) via GPIO pins, and outputting alarm sounds (to a external sound system).

L293D Motor Driver

The L293D motor driver is a bi-directional motor driving chip which enables or disables a 12V current (or even reverses the direction of the current) based on 3 digital logical signals. (For our purposes, think of it as a standard room light switch that is controlled digitally rather than through a physical flip of the switch.) *Although it fits within the capabilities of the L293D, we definitely don't want to reverse the current for fear of damaging the Bed Vibrator.

Observe the following L293D schematic.

L293D

This means that we need the following connections to supply power to the chip (both the 12V circuit that the chip controls, and the 5V that controls the chip).

L293D Pin Description
4 Connects to the RPi's 5V GND
5 Connects to the RPi's 5V GND
8 Connects with the 12V+ power.
9 Connects to RPi's 5V+
12 12V Ground
13 12V Ground

To power the bed vibrator, we want to wire the bed vibrator to the L293D circuit as follows:

L293D Pin Description
3 The cathode (+) for the Bed Vibrator
6 The anode (-) for the Bed Vibrator

The logical signal to enable the 12V circuit is:

L293D Pin Digital Boolean
1 True
2 True
7 False

Furthermore, the logical signal to disable the 12V circuit is:

L293D Pin Digital Boolean
1 False
2 True/False
7 True/False

Programmatically, I am sending False to all three connections, but as long as you disable Enable1, the circuit is stopped.

Therefore, in order to use Pi GPIO pin 17 as the Enable1, Pi GPIO pin 5 as Input1, and Pi GPIO pin 6 as Input2, connect the RPi GPIO pins to L293D pins as follows:

L293D Pin Description
1 Connects to the Pi GPIO Pin 17
2 Connects to the Pi GPIO Pin 5
7 Connects to Pi GPIO Pin 6

If you need help to figure out the GPIO pin numbers, check out this chart: GPIO


Schematic

schematic


Wrap-Up

The rest should be self-explanatory. Here are some pictures to help you get you started with the wiring.

pic1 pic2 pic3 pic4 pic5