This shows you the differences between two versions of the page.
|
pm:prj2026:vlad.radulescu2901:andrei.simion2107 [2026/05/21 22:41] andrei.simion2107 |
pm:prj2026:vlad.radulescu2901:andrei.simion2107 [2026/05/25 13:40] (current) andrei.simion2107 |
||
|---|---|---|---|
| Line 72: | Line 72: | ||
| Cubul va fi pus pe suportul de carton destinat. O data apasat butonul, robotul va incepe sa faca o secventa de citiri astfel incat fiecare dintre cele 24 fete ale cubului sa fie citite. Acestea vor fi organizate in "fete" care vor fi trimise extern prin serial catre laptop, unde un script python asteapta inputul. Acest lucru a fost facut deoarece modul in care solutia este cautata (printr-un BFS bidirectional) nu permite rularea pe placa datorita memoriei limitate (undeva la 10MB de memorie utilizat in worst case). Scriptul va trimite rezultatul catre placa, care va afisa pe LCD secventa de pasi necesara rezolvarii cubului. Atentie! Pentru rezolvarea corecta a cubului, acesta nu trebuie rotit, secventa este data pentru orientarea cubului obtinuta o data cu finalizarea scanarii. | Cubul va fi pus pe suportul de carton destinat. O data apasat butonul, robotul va incepe sa faca o secventa de citiri astfel incat fiecare dintre cele 24 fete ale cubului sa fie citite. Acestea vor fi organizate in "fete" care vor fi trimise extern prin serial catre laptop, unde un script python asteapta inputul. Acest lucru a fost facut deoarece modul in care solutia este cautata (printr-un BFS bidirectional) nu permite rularea pe placa datorita memoriei limitate (undeva la 10MB de memorie utilizat in worst case). Scriptul va trimite rezultatul catre placa, care va afisa pe LCD secventa de pasi necesara rezolvarii cubului. Atentie! Pentru rezolvarea corecta a cubului, acesta nu trebuie rotit, secventa este data pentru orientarea cubului obtinuta o data cu finalizarea scanarii. | ||
| + | Pentru 'calibrarea' senzorului de culoare am decis ca este mai util sa lucrez cu procentaje din lumina reflectata, decat cu valorile in sine, | ||
| + | deoarece valoarea in sine poate varia extrem de usor datorita luminii ambientale. Astfel prin intermediul procentajelor, indiferent de lumina ambientala, valorile au doar un mic joc, care poate fi surprins printr-o plaja mai mare de valori in if-ul principal fiecarei culori. | ||
| ==== 1. Mediu de dezvoltare ==== | ==== 1. Mediu de dezvoltare ==== | ||
| Line 80: | Line 82: | ||
| Singura librarie 3rd party utilizata de mine este <Stepper.h> deoarece cand am incercat sa actionez bobinele pe baza pinilor, pentru a roti motoarele acestea isi pierdeau toata puterea, nemaiputand roti cubul rubik. | Singura librarie 3rd party utilizata de mine este <Stepper.h> deoarece cand am incercat sa actionez bobinele pe baza pinilor, pentru a roti motoarele acestea isi pierdeau toata puterea, nemaiputand roti cubul rubik. | ||
| - | Ledul LCD va fi activat pe baza scheletului de laborator prin intermediul i2c.Am renuntat la librariile folosite intial: LiquidCrystal_I2C și Adafruit_TCS34725. Ambele componente sunt controlate folosind un driver I2C (TWI), utilizand direct registrii TWCR, TWSR si TWDR. | + | Ledul LCD si Senzorul de culoare vor fi activate pe baza scheletului de laborator prin intermediul i2c. Am renuntat la librariile folosite intial: LiquidCrystal_I2C și Adafruit_TCS34725. Ambele componente sunt controlate folosind un driver I2C (TWI), utilizand direct registrii TWCR, TWSR si TWDR. |
| + | |||
| ==== 3. Functii implementate ==== | ==== 3. Functii implementate ==== | ||
| Line 106: | Line 110: | ||
| ==== Demonstratie ==== | ==== Demonstratie ==== | ||
| https://youtube.com/shorts/Ai0RA_c0vEM | https://youtube.com/shorts/Ai0RA_c0vEM | ||
| + | |||
| + | ==== Download sursa ==== | ||
| + | Click <html> <a href="https://github.com/Simmy2004/Rezolvator-Cub-Rubik-2x2x2"> here</a></html>. | ||