Persistence of view page

Author: Belciug Matei
Group: 335CA

Introduction

My project consists of a spinning arm with a led strip on it that can display a square page. By utilizing the effect called persistence of view which means observing the illusion of a source of light that is no longer there, a page is displayed by having the arm spin at very high speeds in a motion similar to a clock limb's. Its purpose is to create such displays for user defined pictures having a resolution of 32×32. The user can utilize a custom mobile app to draw the desired design and save it locally on the phone and upload through wifi the desired image to the device to be displayed. I think this is useful for entertainment purposes as it looks visually appealing and it showcases an interesting visual effect (the aforementioned persistence of view effect).

General description

Block Diagram

The Stationary Base

The Base serves as the structural foundation and provides the mechanical energy required for the system.

  1. Power Management: A high-capacity 2S Lithium-Ion battery pack (18650 cells)provides a nominal voltage of 7.4V. This is managed by a BMS (Battery Management System) module, which ensures balanced charging and protection. This rail powers both the Arduino Nano and the high-speed RS-385 DC Motor.
  2. Speed Control Logic: The Arduino Nano acts as the dedicated motor controller. It reads an analog signal from a 10k Potentiometer via an ADC. Based on this input, it generates a PWM signal to drive the IRLZ44N MOSFET, which regulates the motor speed through ground switching.
  3. Status Monitoring: The Arduino Nano utilizes the I2C protocol to communicate with an LCD display, providing the user with real-time feedback on system parameters.
  4. Synchronization Reference: A fixed Base Magnet is mounted on the chassis. It acts as the physical “zero-point” reference for the rotating arm.

The Spinning Arm

The arm is an autonomous unit that handles high-speed image processing and synchronization.

  1. Processing & Connectivity: The ESP32 is the core of the arm. It manages the wireless data reception and the high-speed timing required for the POV effect.
  2. Independent Power Supply: To avoid the complexity of slip rings, the arm carries its own 3.7V LiPo battery, rechargeable via a TP4056 module. An MT3608 Boost Converter steps this voltage up to a stable 5V to power the ESP32 and the LED strip. A Voltage Divider allows the ESP32 to monitor the battery's health through an ADC pin.
  3. Rotational Synchronization: Every time the arm passes the base magnet, the A3144 Hall Effect Sensor triggers an ISR (Interrupt Service Routine) on the ESP32. This allows the software to calculate the exact duration of a full rotation and synchronize the start of the image frame.
  4. Visual Output: Once synchronized, the ESP32 pushes image data to the SK9822 LED strip using the SPI protocol. By refreshing the LEDs at precise intervals throughout the 360° rotation, a square image is formed in the air.

Mobile Communication

The interaction between the user and the hardware is handled wirelessly to allow for real-time updates.

  1. Data Transfer: A Custom Mobile App allows the user to draw or select images. This data is converted into a coordinate matrix and transmitted to the ESP32 via WiFi using the UDP/TCP protocol.
  2. Dynamic Updating: Because the ESP32 stores the received data in a frame buffer, the user can update the displayed image “on the fly” without stopping the motor or connecting any cables.

Hardware Design

Component list

I. The Spinning Arm

1. Microcontroller: ESP32 DevKitC V4

2. LED Strip: SK9822

3. Rotation Sensor: A3144 Hall Effect Sensor (Digital output).

4. Logic Battery: 3.7V LiPo Battery, capacity: 500mAh

5. Voltage Regulator: MT3608 Boost Converter Module

6. Charging Module: TP4056 Lithium Battery Charger with Micro-USB

7. Resistors for ADC: 1x 0.25W 10kΩ and 1x 0.25W 22kΩ

8. Capacitor 1000µF 10V

Component Shape Size (L x W x H)
LiPo Battery 40mm x 30mm x 4mm
ESP32 DevKit 55mm x 28.5mm x 13mm (with antenna)
MT3608 Module 37mm x 17mm x 7mm
TP4056 Module 27.5mm x 17mm x 5mm
Hall Sensor 17mm x 4mm x 1mm
II. The Base

9. Motor: RS-385 DC Motor (6V - 12V high-speed motor|]]

10. Controller: Arduino Nano Atmega328P compatible

11. IRLZ44N N-channel 49A, 55V

12. 1N4007 rectifier diode

13. Base Batteries: 2x 18650 Li-ion Cells 2500mAh, 3.7V, Samsung 25R

14. Battery Holder: Dual-slot 18650 Holder (Series connection for 7.4V - 8.4V|]]

15. Base Charger: BMS Module 2S Li-ion Battery Charger 3.7V 4A OKYN609

16. Magnet: Neodymium Magnet 5mm x 2mm

17. Power Switch: ON/OFF toggle switch.

18. 1602 LCD Display

19. Slider Linear Potentiometer

20. Resistors: 2x 0.25W 10kΩ

Electrical Schematics

I. The Spinning Arm Schematic

II. The Base Schematic

Software Design

For the implementation of the arduino and esp code, Arduino IDE was used. For the implementation of the phone application, kodular.io was used.

The phone app

The first screen presents the user with 4 buttons: create image, load image, connect to device and upload.

The first button lets the user create a drawing on a 32×32 grid, the user has access to different colours, zooming, scrolling, an eraser, a save button that offers persistent storage on the device, renaming option (after saving for the first time) and the option to return back. As the user returns back to the main menu, the newly created image will be uploaded there.

Alternatively the user can also select the load save button which takes them to a screen that displays the saves previously made, in a chronological order and a search bar. After the user selects a save they are prompted to either delete, rename or load it as they please. Similarly to the save screen, after the user chooses to load one, the file will appear in the main menu.

The connect button shows a list of possible devices to connect to and the user may select whichever they want to connect to. After a successful connection, the name of the connection will be displayed in the main menu as well to indicate that the connection is stable.

Last but not least, if the user's app is connected to a device and the user selected a picture, pressing upload will send the picture to the desired destination via WIFI.

The base Arduino code

This code acts as the central controller for the project's stationary base, managing the power delivery and the user interface.

Key Functions:

Battery Monitoring (ADC): The code reads the analog signal from a voltage divider connected to the 7.4V battery pack. It converts this signal into a human-readable voltage value (e.g., 8.2V) and displays it on the first line of the LCD. This allows the user to monitor battery health in real-time.

Manual Speed Selection (ADC): The code monitors the position of the slide potentiometer. It divides the slider's physical travel into four equal segments, representing “Speed 1” through “Speed 4.”

Motor Power Regulation (PWM): Based on the selected speed level, the Arduino generates a Pulse Width Modulation (PWM) signal on Pin 9. This signal controls the MOSFET, which acts as a high-speed switch to regulate the motor's rotation. The code is calibrated so that “Speed 4” provides just enough power to reach the target of 2400 RPM without overstressing the 3D-printed arm.

Visual Feedback (I2C): On the second line of the LCD, the code displays the current speed level (1–4) and a visual progress bar. It uses the I2C communication protocol to send this data to the display using only two wires, keeping the wiring clean.

Results

As the project's physical implementation could not be completed in time, unfortunately there is not much to say about the results it achieved, however by all indications of the parts that were completed in time, the project would make for an interesting display piece or decoration.

Conclusions

In order to scale up this project a paradigm shift is needed when it comes to the arm design, because for achieving a bigger size better balance is required, and for better balance some components that are now placed on the arm have to be moved off of it and connected to it through a slip ring. Another difficulty comes from the material used for the arm itself, as it needs to be both heat resistant and very strong to withstand the high rpm, especially at the end of the arm where the force applied to it is strongest. Lastly a smarter charging mechanism would be using some pogo pins for charging the arm from the base, this way the user does not have to worry about loading 2 different components for the device to work.

As for the project concept, it requires a balanced amount of effort in electrical design, physics, software and 3D design, making it an interesting and perfect engineering task because it tests the wide range of skills an engineer needs.

Download

pm/prj2026/bianca.popa1106/matei.belciug.txt · Last modified: 2026/05/25 15:38 by matei.belciug
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0