Introduction: OUIJA

As the Halloween season approaches, new projects arise. As we well know, Halloween is the day of the dead, a day that makes us remember those who left a void among us. Our project allows the connection with those who are no longer there, with those we miss, through a portal, the Ouija board.

We are based on the idea of the Ouija board as a "portal" to talk to the beyond, to ask questions, to have an interaction between the "spirit" and the player having the board as a means of communication. That's why we see the need not only to create a valid and functional code but to understand how the player would act with the program. For what, before to begin to program, we carry out a diagram of flow to know what to make and what would happen in each situation.

Our main idea consisted in that when the user touched the board, that is to say, when the user kept both hands above the board and made a question, the pointer of the ouija would move toward Yes or toward Not as an answer. For the code, we had to program ranges of performance for the motor that we wanted to use, since on the board the Yes and the No were opposed (one on each side). Also, we wanted the answers to be random, so we had to establish those parameters, with a previous study behind.



To carry out this project we used different electric components, tools and materials as the following ones:

1. Elegoo uno R3. Controller Board

2. Breadboard Jumper Wires and Female - to - male Dupont Wire

3. Pressure/Force sensor

4. Protoboard

5. Servo Motor

6. USB Cable

7. Laser cutting machine

8. Magnets

9. Wood

For the construction of the box we used a four-millimetre wood. Magnets for the unions and expanded porexpand.

Step 2: TinkerCad Schema

Here we have our TinkerCad schema that simulates our code.

After the whole approach, we bought a force/pressure sensor and started experimenting with it. The sensor is a very simple component and easy to connect. To understand how it works, we recommend trying it out to see if it works correctly, so we show you how to connect it and the code used: photo of the force sensor.

From the understanding of this component, we conclude that the sensor would serve as a key to start and end the pointer's journey. So we learn to regulate the force applied, from "if" and "else". Then, we determine the type of motor we would need. Although the Ouija board can be controlled in different ways, such as with a stepper motor, we use a servo motor because we want to limit the angle of the action instead of working with the steps it will have to browse.

Thanks to the understanding of the pressure sensor, we define that the servo motor moves to an angle (Yes position), when there is a force between 10 and 800. The cursor will move to the opposite angle (No position), when the force is greater than 800 and will return to the initial position, for us the 0 position (or 90º angle) when there is no pressure on the board. That is when the force is less than 10. All these units can be varied depending on where the sensor is placed and how much interaction you want to put in.

Step 3: Flow Diagram and Code


int servoPin = 8;

float servoPosition;

float startPosition;

Servo myServo;

long randNum;

int i = 0;

int PressurePin = A1;

int fuerza;

void setup() {

// put your setup code here, to run once:




void loop() {

// put your main code here, to run repeatedly

fuerza = analogRead(PressurePin);

if (fuerza > 10) {



if (fuerza < 800) {


servoPosition = servoPosition + i;

} else if (fuerza > 800) {


servoPosition = servoPosition - i;


} else if (fuerza < 10) {

i = 0;

servoPosition = 90;






First, we established the measures of the box where all the Arduino components would be. From the Solidworks program, we created a base of 300 mm by 200 mm, and a height of 30 mm. We used a 4 mm thick wood. After passing the plans to the corresponding program, we cut the wood with the laser machine.

The Ouija board was another story. First we had to look for a photograph or vectorized illustration of the boards to be able to engrave it on the wood. We did the same for the cursor. When we had all the main components, we started to introduce the electronics. We positioned the servomotor in the center of the box, the Arduino and the protoboard on one side (specifically on the left) and finally we decided where to place the pressure sensor. We placed on the right side a base of expanded porexpan and above it, the sensor.

Taking into account the position of the user's hands, on top we put more porexpan, so that when the user places his hands on it, the interaction takes place. Regarding the union of the upper cover and the box, we use small magnets held by cork structures.

For the servomotor, we designed a methacrylate arm from two spokes: the mini-servomotor and the magnet part, so as not to generate much moment in the servo. This piece can be made of other materials, and to join it with the servo gear we use Superglue, although we recommend hot silicone or a custom screw. Under the cursor, a magnet is hooked that is attracted by the magnet of the servo, thus making the movement possible.

Step 5: Conclusion

Once the work has been completed, we can determine that the methodology we have followed in order to carry it out can be divided into two parts. On the one hand, the work has consisted in the analysis of what we wanted it to do, understanding and translating the information of its journey into a flowchart. This analysis has helped us to generate the structure of the code. Thanks to the flowchart we have realized the importance of each step followed and it allows us to develop the second part of the project.

Regarding the practical part, it has been a trial and error process, not a linear evolution. Understanding the function of each component has helped us when applying it to the Ouija board, as there are many ways to generate movement and provoke interaction. We are proud of the way we have dealt with the various obstacles, such as the restriction of the angles in the servo motor or the way we solved the junction between the analog and electronic elements. The different options offered by Arduino are interesting, allowing us to design and materialize our ideas and proposals. We realise how easy it is to create interactive products in a kindly way.