This is an old revision of the document!
Autor: Dragoș Manolea
Pentru a realiza acest proiect, am folosit diferite biblioteci de Python:
Alte biblioteci ce pot fi folosite pentru implementarea cu o singura placuta de Arduino:
Folosind un script de Python, preiau informatiile din Assetto Corsa, pe care ulterior, folosind biblioteca Serial, le trimit catre doua placute de Arduino. Cele doua placute de Arduino asteapta un numar exact de octeti pe seriala (4 bytes), pentru a fi sigur ca datele primite sunt aceleasi cu cele trimise.
In functie de valoarea primita, folosind metoda de map() pentru a translata spatiul de valori 750 rpms (motor la relantiu) → 7500 rpms (turatia maxima) in spatiul de valori 50Hz → 350Hz. Ceasurile de E36 functioneaza pe baza de frecventa. Pe masina, viteza este citita de un senzor care se afla in diferential. Un ciclu in diferential este reprezentat de un dinte si o pauza. Astfel, in Arduino as avea nevoie de un semnal dreptunghiular care specifica frecventa, avand un duty cycle de 50%. Acest lucru este oferit de functia tone() din Arduino.
Diferential de E36:
Senzor turatie:
O problema de care m-am lovit in timp ce testam codul a fost aceasta: numarul de octeti asteptati de catre Arduino. Initial, asteptam un numar pozitiv de octeti, ceea ce nu era corect. Existau situatii in care primeam 3 sau 5 octeti, iar viteza se schimba de la 140 km/h la 3 km/h. Teribil!
Cu ajutorul cunostintelor de PM si SO dobandite in acest semestru, plus muuuuulte ore de cautat pe internet si testat, am reusit sa duc la bun sfarsit acest proiect, pe care eu il vad original. Am trecut prin foarte multe stari emotionale, de la agonie la extaz si inapoi, dar pot spune ca satisfactia de la final a meritat fiecare efort.
Ii incurajez pe toti cei care si-au gasit o pasiune sa isi depaseasca mereu limitele si sa devina din ce in ce mai buni.