This shows you the differences between two versions of the page.
pm:prj2023:apredescu:badii [2023/05/07 19:09] teodora.olteanu [Hardware Design] |
pm:prj2023:apredescu:badii [2023/05/25 20:33] (current) vlad_nicolae.badii [Results] |
||
---|---|---|---|
Line 1: | Line 1: | ||
====== Wrench Arduino LED Mask ====== | ====== Wrench Arduino LED Mask ====== | ||
- | ===== Introducere ===== | + | ===== Introduction ===== |
- | <note tip> | ||
The Wrench Light-Up Mask Project is a creative undertaking that aims to bring the popular video game character, Wrench, to life. The main inspiration for the project comes from Wrench's iconic mask that lights up and changes colors in the game Watch Dogs 2. The project involves building a real-life version of this mask, complete with working LED lights and a design that closely resembles the original. | The Wrench Light-Up Mask Project is a creative undertaking that aims to bring the popular video game character, Wrench, to life. The main inspiration for the project comes from Wrench's iconic mask that lights up and changes colors in the game Watch Dogs 2. The project involves building a real-life version of this mask, complete with working LED lights and a design that closely resembles the original. | ||
- | </note> | ||
- | ===== Descriere generală ===== | ||
- | <note tip> | + | ===== General Description ===== |
+ | |||
The Arduino UNO is the central component, controlling the wireless communication with the HC-06 module and the LED matrix display. The 9V battery holder provides power to the Arduino UNO and the LED matrix display. The on/off switch on the battery holder allows the user to turn the system on and off as needed. | The Arduino UNO is the central component, controlling the wireless communication with the HC-06 module and the LED matrix display. The 9V battery holder provides power to the Arduino UNO and the LED matrix display. The on/off switch on the battery holder allows the user to turn the system on and off as needed. | ||
Line 18: | Line 18: | ||
{{:pm:prj2023:apredescu:clipboard01.jpg?300|}} | {{:pm:prj2023:apredescu:clipboard01.jpg?300|}} | ||
- | </note> | + | |
===== Hardware Design ===== | ===== Hardware Design ===== | ||
Line 24: | Line 24: | ||
These are the first components I believe I will require, though they may alter as project experiments progress: | These are the first components I believe I will require, though they may alter as project experiments progress: | ||
- | 3D printer | + | * 3D printer |
- | HC-06 wireless bluetooth module | + | * HC-06 wireless bluetooth module |
- | Arduino UNO | + | * Arduino UNO |
- | 9V battery holder with an on/off switch | + | * 9V battery holder with an on/off switch |
- | x2 white 8x8 LED matrix with MAX7219 module | + | * x2 white 8x8 LED matrix with MAX7219 module |
+ | {{:pm:prj2023:apredescu:led_bdy.jpg?300|}} | ||
+ | {{:pm:prj2023:apredescu:blt_bdy.jpg?300|}} | ||
Line 38: | Line 40: | ||
- | <note tip> | ||
- | 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 pre-programmed LED matrix eyes and alphabet are kept in the memory of the Arduino as binary arrays. Each array has a key value associated with it that corresponds to the expression to which it is linked. Although this can be altered at the top of the code, the Arduino by default shows the X eyes when it is powered on because this has been set as "key1". |
+ | |||
+ | While certain facial expressions, like a wink, include numerous frames, others have just one with a blinking animation in between. While the Arduino waits for a bluetooth signal to update the expression, it will continue to loop the existing expression in the meantime. | ||
+ | |||
+ | Each byte in the 8-bit array used to encode the photos corresponds to one row of the image. Each byte's bit representation corresponds to the state of each pixel in the associated row of the image. | ||
+ | |||
+ | Some of them are: | ||
+ | * heart[]: This code represents an image of a heart. | ||
+ | * heart2[]: This code represents an image of a slightly more filled-in heart. | ||
+ | * heart3[]: This code represents an image of a fully filled-in heart. | ||
+ | * equal[]: This code represents the equal sign "=". | ||
+ | * tilde[]: This code represents a tilde "~". | ||
+ | * minus[]: This code represents a minus sign "-". | ||
+ | * dollar[]: This code represents a dollar sign "$". | ||
+ | * exclamation[]: This code represents an exclamation mark "!". | ||
+ | * O[]: This code represents the letter "O". | ||
+ | * smallo[]: This code represents the letter "o". | ||
+ | * at[]: This code represents the "at" symbol "@". | ||
+ | * semicolon[]: This code represents a semicolon ";". | ||
+ | * semicolonblink[]: This code represents a blinking semicolon ";". | ||
+ | * nineEye[]: This code represents a nine-eyed character. | ||
+ | * negation[]: This code represents a negation sign "¬". | ||
+ | * tripleDot[]: This code represents three dots "...". | ||
+ | * tripleDotBlink[]: This code represents blinking three dots "...". | ||
+ | * star[]: This code represents a star "*". | ||
+ | * bracket[]: This code represents a bracket. | ||
+ | * bracketBlink[]: This code represents a blinking bracket. | ||
+ | * invader1a[] and invader1b[]: These codes represent two frames of an animation of an invader character. | ||
+ | * invader2a[] and invader2b[]: These codes represent two different frames of an animation of another invader character. | ||
+ | * t[]: This code represents the letter "T". | ||
+ | * lenny[]: This code represents the "Lenny" face meme. | ||
+ | * musicNote[]: This code represents a music note. | ||
+ | * leftQuote[] and rightQuote[]: These codes represent the left and right quotation marks, respectively. | ||
+ | |||
+ | Through the bluetooth receiver, the Arduino can be connected to an Android device, such as a phone or tablet. This authorizes you to instruct the Ardiuno to modify the values displayed. The Bluetooth module will show up with its default name, such as "HC-06," if the name has not been altered. | ||
+ | |||
+ | Once I install the app, I open it and I see a list of all paired devices. I press on the one corresponding to the name of the Bluetooth module and wait for the devices to connect. Now, I should be able to change the LEDs to different expressions by clicking buttons on the screen. | ||
+ | |||
+ | The Wrench Mask WD2, built using Arduino, utilizes the **delay** and **timers** functions to control the timing and duration of LED illumination, creating captivating visual effects. Additionally, it incorporates **serial communication** to establish a connection with a compatible device, allowing customization of the LED patterns in real-time. | ||
+ | |||
+ | ===== Results ===== | ||
<note tip> | <note tip> | ||
- | Care au fost rezultatele obţinute în urma realizării proiectului vostru. | + | The result of my efforts is a fully functional, Bluetooth-controlled Wrench mask that offers an immersive experience. I am pleased to report that the mask includes 48 different set expressions that can be controlled with blinking and transition animations for a realistic look. The best part? It closely mirrors the in-game character, which was the primary goal of this project. The journey was long, but seeing the mask come to life made it worth the effort |
</note> | </note> | ||
- | ===== Concluzii ===== | + | {{:pm:prj2023:apredescu:wrench.png?600|}} |
+ | ===== Conclusions ===== | ||
+ | I embarked on this journey to recreate the iconic light-up mask of Wrench, a character from the game Watch Dogs 2. There were already some fantastic tutorials out there, but I believed there was room for improvement. Inspired by these existing projects, I decided to build and code my own version. The process was challenging and took a month to complete, but I was satisfied with the outcome. The final product has several unique features, like being wirelessly controlled via a custom-built Dedsec themed Android application, having 48 preset expressions with blinking and transition animations, and the ability to draw custom expressions, display messages, and adjust speed and brightness. The mask is portable, powered by a single, easily replaceable 9V battery, and closely resembles the in-game character more than most other tutorials I have come across. | ||
===== Download ===== | ===== Download ===== | ||
- | <note warning> | + | 8-) |
- | 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ă ;-). | + | {{:pm:prj2023:apredescu:vlad_badii_arduino_wrench_mask.txt|}} |
- | 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**. | ||
- | </note> | ||
- | ===== Jurnal ===== | + | app for controlling on bluetooth: https://github.com/bdykdz/wrench |
- | <note tip> | ||
- | Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului. | ||
- | </note> | ||
- | ===== Bibliografie/Resurse ===== | + | ===== Bibliography/Resources ===== |
<note> | <note> | ||
- | Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe **Resurse Software** şi **Resurse Hardware**. | + | * Tutorial for working with these LED Matrices : https://www.youtube.com/watch?v=H6Vs98-Cev0 |
+ | * Tutorial for creating an app to connect the Arduino using Bluetooth: https://www.youtube.com/watch?v=aE8EbDmrUfQ | ||
+ | * Wrench Random Moments throughout the game so i can see more emojis to code in the matrix: https://www.youtube.com/watch?v=raY9ui5PEzU | ||
+ | * Arduino_datasheet: https://docs.arduino.cc/static/32b4941b81a2c6a5308e0e9bd348d0e6/A000066-datasheet.pdf | ||
</note> | </note> | ||
<html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Export to PDF</a></html> | ||