This is an old revision of the document!
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
This project is divided into three functional layers: the Stationary Base, the Rotating Unit (Spinning Arm), and the Mobile Interface.
The Stationary Base
The Base serves as the structural foundation and provides the mechanical energy required for the system.
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.
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.
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.
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.
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.
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.
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.
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.
Phone Communication
The interaction between the user and the hardware is handled wirelessly to allow for real-time updates.
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.
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-WROOM-32
-
2. LED Strip: SK9822
-
-
3. Rotation Sensor: A3144 Hall Effect Sensor (Digital output).
-
-
4. Logic Battery: 3.7V LiPo Battery, capacity: 500mAh
-
datasheet: not needed
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Ω
-
-
datasheets: not needed
8. Capacitor 1000µF 10V
-
datasheet: $loc$
II. The Base
9. Motor: RS-385 DC Motor (6V - 12V high-speed motor|]]
-
datasheet: $loc$
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
-
datasheet: not needed
14. Battery Holder: Dual-slot 18650 Holder (Series connection for 7.4V - 8.4V|]]
-
datasheet: not needed
15. Base Charger: BMS Module 2S Li-ion Battery Charger 3.7V 4A OKYN609
-
datasheet: not needed
16. Magnet: Neodymium Magnet 5mm x 2mm
-
datasheet: not needed
17. Power Switch: ON/OFF toggle switch.
-
datasheet: not needed
18. 1602 LCD Display
buying site: not needed (already owned)
Aici puneţi tot ce ţine de hardware design:
listă de piese
-
diagrame de semnal
rezultatele simulării
Software Design
Descrierea codului aplicaţiei (firmware):
mediu de dezvoltare (if any) (e.g. AVR Studio, CodeVisionAVR)
librării şi surse 3rd-party (e.g. Procyon AVRlib)
algoritmi şi structuri pe care plănuiţi să le implementaţi
(etapa 3) surse şi funcţii implementate
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF