This shows you the differences between two versions of the page.
|
pm:prj2026:bianca.popa1106:matei.belciug [2026/05/22 18:00] matei.belciug |
pm:prj2026:bianca.popa1106:matei.belciug [2026/05/25 15:38] (current) matei.belciug |
||
|---|---|---|---|
| Line 5: | Line 5: | ||
| ===== Introduction ===== | ===== Introduction ===== | ||
| - | |||
| - | | Component | Shape Size (L x W x H) | | ||
| - | | **LiPo Battery** | **40mm x 30mm x 4mm** | | ||
| - | | **ESP32 DevKit** | **48.5mm x 28.5mm x 13mm** | | ||
| - | | **MT3608 Module** | **37mm x 17mm x 7mm** | | ||
| - | | **TP4056 Module** | **27.5mm x 17mm x 5mm** | | ||
| - | | **Hall Sensor** | **1.7mm x 0.4mm x 0.1mm** | | ||
| 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 32x32. 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). | 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 32x32. 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). | ||
| Line 84: | Line 77: | ||
| * buying site: [[https://www.emag.ro/condensator-electrolitic-1000uf-10v-dc-impedanta-joasa-nichicon-upw1a102mpd6-t222280/pd/D1J3K9MBM/|Capacitor sale]] | * buying site: [[https://www.emag.ro/condensator-electrolitic-1000uf-10v-dc-impedanta-joasa-nichicon-upw1a102mpd6-t222280/pd/D1J3K9MBM/|Capacitor sale]] | ||
| * datasheet: {{:pm:prj2026:bianca.popa1106:upw0j220mdd-capacitor.pdf|Capacitor datasheet}} | * datasheet: {{:pm:prj2026:bianca.popa1106:upw0j220mdd-capacitor.pdf|Capacitor datasheet}} | ||
| + | |||
| + | | 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 == | == II. The Base == | ||
| Line 151: | Line 151: | ||
| ===== Software Design ===== | ===== 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. | ||
| - | <note tip> | + | ==== The phone app ==== |
| - | 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 | + | |
| - | </note> | + | |
| - | ===== Rezultate Obţinute ===== | + | The first screen presents the user with 4 buttons: create image, load image, connect to device and upload. |
| - | <note tip> | + | The first button lets the user create a drawing on a 32x32 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. |
| - | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | |
| - | </note> | + | |
| - | ===== Concluzii ===== | + | 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. |
| - | ===== Download ===== | + | 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. |
| - | <note warning> | + | 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. |
| - | 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**. | + | ==== The base Arduino code ==== |
| - | </note> | + | |
| - | ===== Jurnal ===== | + | This code acts as the central controller for the project's stationary base, managing the power delivery and the user interface. |
| - | <note tip> | + | Key Functions: |
| - | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | + | |
| - | </note> | + | |
| - | ===== Bibliografie/Resurse ===== | + | 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. |
| - | <note> | + | 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." |
| - | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | |
| - | </note> | + | 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 ===== | ||
| - | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | + | [[https://github.com/MTY621/PM-Project|Github repo]] |