This shows you the differences between two versions of the page.
|
pm:prj2025:mdinica:cristian.popescu03 [2025/05/29 22:56] cristian.popescu03 [Software Design] |
pm:prj2025:mdinica:cristian.popescu03 [2025/05/30 01:10] (current) cristian.popescu03 [Jurnal] |
||
|---|---|---|---|
| Line 28: | Line 28: | ||
| * Ecranul va fi folosit pentru afișarea aplicațiilor și conținutului. | * Ecranul va fi folosit pentru afișarea aplicațiilor și conținutului. | ||
| * Funcția capacitivă a modulului permite utilizatorului sa navigheze prin aplicații și să controleze anumite funcționalități ale acestora. | * Funcția capacitivă a modulului permite utilizatorului sa navigheze prin aplicații și să controleze anumite funcționalități ale acestora. | ||
| + | * Ecranul dispune de un Touch Pen pentru a crește precizia. | ||
| ^ ^ Pin ^ Pin ESP32 ^ Descriere ^ | ^ ^ Pin ^ Pin ESP32 ^ Descriere ^ | ||
| Line 160: | Line 161: | ||
| * Revenirea la homescreen se face prin apăsarea butonului HOME, sau în cazul aplicației de muzică la sfârșitul ultimei melodii. | * Revenirea la homescreen se face prin apăsarea butonului HOME, sau în cazul aplicației de muzică la sfârșitul ultimei melodii. | ||
| * La fiecare revenire, homescreen-ul este actualizat. Dacă utilizatorul s-a conectat la Wi-Fi, atunci vremea si timpul sunt actualizate cu date in timp real. | * La fiecare revenire, homescreen-ul este actualizat. Dacă utilizatorul s-a conectat la Wi-Fi, atunci vremea si timpul sunt actualizate cu date in timp real. | ||
| - | |||
| ** Main loop ** | ** Main loop ** | ||
| - | <code> | + | <code cpp> |
| void loop() { | void loop() { | ||
| - | // If button is pressed, toggle the display | + | // If button is pressed, toggle the display |
| - | if (button_pressed) { | + | if (button_pressed) { |
| - | button_pressed = false; | + | button_pressed = false; |
| - | toggle_display(); | + | toggle_display(); |
| - | } | + | } |
| - | // Check and handle any gesture | + | // Check and handle any gesture |
| - | if (get_sensor_flag()) | + | if (get_sensor_flag()) |
| - | handle_gesture(); | + | handle_gesture(); |
| - | // If the screen is off, return | + | // If the screen is off, return |
| - | if (!screen_on) { | + | if (!screen_on) { |
| - | idle(); | + | idle(); |
| - | return; | + | return; |
| - | } | + | } |
| - | // If the clock timer updated the time, draw the new time | + | // If the clock timer updated the time, draw the new time |
| - | if (update_time) { | + | if (update_time) { |
| - | update_time = false; | + | update_time = false; |
| - | draw_clock_time(); | + | draw_clock_time(); |
| - | } | + | } |
| - | // Check for any touch | + | // Check for any touch |
| - | uint16_t touch_x = 0, touch_y = 0; | + | uint16_t touch_x = 0, touch_y = 0; |
| - | bool touch = tft.getTouch(&touch_x, &touch_y); | + | bool touch = tft.getTouch(&touch_x, &touch_y); |
| - | if (!touch) | + | if (!touch) |
| - | return; | + | return; |
| - | // If user exited app, redraw homescreen | + | // If user exited app, redraw homescreen |
| - | if (check_app_use(touch_x, touch_y)) | + | if (check_app_use(touch_x, touch_y)) |
| - | draw_homescreen(); | + | draw_homescreen(); |
| } | } | ||
| </code> | </code> | ||
| Line 224: | Line 223: | ||
| {{pm:prj2025:mdinica:cristian.popescu03:music_app_v1.jpeg?700x800|Music app}} | {{pm:prj2025:mdinica:cristian.popescu03:music_app_v1.jpeg?700x800|Music app}} | ||
| + | |||
| + | == ESPhone v2.0 == | ||
| + | |||
| + | {{pm:prj2025:mdinica:cristian.popescu03:esphone_with_battery.jpeg?225x450|ESPhone}} | ||
| + | {{pm:prj2025:mdinica:cristian.popescu03:keyboard.jpeg?225x450|ESPhone keyboard}} | ||
| + | {{pm:prj2025:mdinica:cristian.popescu03:bytechat.jpeg?225x450|ESPhone ByteChat app}} | ||
| + | |||
| + | {{pm:prj2025:mdinica:cristian.popescu03:esphone_pm.jpeg?700x850|Paint app again}} | ||
| + | |||
| + | {{pm:prj2025:mdinica:cristian.popescu03:back_with_espen_holder.jpeg?700x510|ESPhone with ESPen holder}} | ||
| ===== Concluzii ===== | ===== Concluzii ===== | ||
| - | ===== Download ===== | + | După multe zile de debugging și o grămadă de fire lipite, pot să spun că am reușit să creez ceea ce mi-am propus: un telefon ușor de folosit, greu de asamblat. Am învățat o grămadă de lucruri noi, mai ales pe partea de embedded, și sigur nu o să uit această experiență prea curând. |
| ===== Jurnal ===== | ===== Jurnal ===== | ||
| + | <note> | ||
| + | * 15.04.2025 -> M-am decis în legătură cu tema proiectului. | ||
| + | * 22.04.2025 -> Am comandat ecranul TFT LCD 2.8". | ||
| + | * 28.04.2025 -> Am desenat UI pentru aplicații. | ||
| + | * 5.05.2025 -> Am comandat un kit Plusivo, ESP32 DevKit-V1 si un APDS9960. | ||
| + | * 11.05.2025 -> M-am apucat să dezvolt "OS-ul" pentru ESPhone. | ||
| + | * 15.05.2025 -> Am cumpărat o placă de test. De asemenea, am implementat aplicația de desenat, de redat muzică, conectat la WiFi și schimbat culoarea fundalului. | ||
| + | * 22.05.2025 -> Am cumpărat fire pentru momentul când voi lipi piesele pe placa de test. | ||
| + | * 27.05.2025 -> Am implementat aplicația de mesagerie si galerie foto. | ||
| + | * 28.05.2025 -> Am lipit componentele pe placa de test. | ||
| + | * 29.05.2025 -> Am finalizat ESPhone. | ||
| + | </note> | ||
| ===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
| + | |||
| + | Resurse Software: | ||
| + | * https://github.com/Bodmer/TFT_eSPI | ||
| + | * https://github.com/Bodmer/TJpg_Decoder | ||
| + | * https://randomnerdtutorials.com/esp32-tft-touchscreen-display-2-8-ili9341-arduino/ | ||
| + | * https://randomnerdtutorials.com/esp32-ntp-timezones-daylight-saving/ | ||
| + | * https://randomnerdtutorials.com/esp32-date-time-ntp-client-server-arduino/ | ||
| + | * https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv | ||
| + | * https://projecthub.arduino.cc/tmekinyan/playing-popular-songs-with-arduino-and-a-buzzer-546f4a | ||
| + | * https://github.com/hibit-dev/buzzer | ||
| + | * https://randomnerdtutorials.com/esp32-pwm-arduino-ide/ | ||
| + | * https://randomnerdtutorials.com/esp32-useful-wi-fi-functions-arduino/ | ||
| + | * https://cataas.com/ | ||
| + | * https://www.weatherapi.com/ | ||
| + | Resurse Hardware: | ||
| + | * https://www.youtube.com/watch?v=rq5yPJbX_uk&list=LL&index=1&t=832s&pp=gAQBiAQB | ||
| + | * https://www.youtube.com/watch?v=gj-H_agfd6U | ||