Posted 9 Apr 2017 (edited) · Report post Bună tuturor! De un timp nu am mai fost prea activ pe aici așa că deja era cazul să fac și eu ceva în folosul comunității pe forum. În ultimele luni am umblat foarte mult cu mașina pe drumuri lungi, în majoritatea cazurilor pe întuneric. Ca navigație am folosit un GPS care se montează pe parbriz și telefonul pentru Waze dar de un timp în țară am folosit doar Waze pe telefon. Problema este că mă deranjează un pic că trebuie să "renunț" la telefon să am navigație (telefonul este conectat prin bluetooth la HU deci nu este o problemă majoră, pot face convorbiri și când rulează Waze-ul) și nu prea îmi place să țin telefonul pe soare de aceea am montat un suport pe HU și acolo țin telefonul doar că acolo nu este chiar în fața mea. Alt minus cu telefonul, diagonala mai mică. Soluția mea: Ecran RTI original de fabrică pe care "rulează" Android. Mai ușor zis decăt făcut... O mică avertizare în prealabil...nu prea am experiență nici în domeniul de electronică și nici prea multă experiență în programare hardware (căteva proiecte cu controlere PIC, aprindere LED-uri și chesti de genu). Primul pas a fost să-mi iau un ecran original RTI cu tot cu mecanizmul de urcare/coborăre. Am luat de la colegul @MarianBr ecranul, încă o dată țin să îi mulțumesc pentru piesă, preț și seriozitate. Îl recomand dacă aveți nevoie de orice. Pași următori au fost studierea problemelor și soluționarea lor. Prima problemă, ecranul. Display-ul de la Volvo...este un pic mai complicat...decăt monitoarele cu care sunt obișnuit. După căteva nopți căutând pe internet am înțeles cu ce și cum o pot porni. A doua problemă, îmi trebuia un device care rulează Android cât de cât bine, și aici am găsit o soluție vă detaliez mai jos. Așa am ajuns la această configurație: După cum se vede sunt trei componente, ecranul RTI original Volvo, un Arduino Mega (pe imaginea asta, dar deja am schimbat-o cu un Nano care este mult mai mic) și un Odroid (un fel de Raspberry Pi dar care rulează foarte bine Android). Un pic mai în detaliu: RTI-ul este în primul rând conectat la 12V, masă (acum masa alimentator 12V) și 12V ACC (după cum am înțeles, nu am studiat încă, ACC-ul de 12V există doar când motorul este pornit. Poate mă lămuriți mai repede). Toate acestea vin la conectorul din dreapta, cel albastru a RTI-ului. În al doilea rând RTI-ul este conectat la un Arduino (o platformă electronică open-source, un controler electronic). Arduinoul se connectează la doi pini prin conectorul din stânga a RTI-ului, cel verde. PIN-ul 7 se conectează la masa Arduino-lui (pin 7 este masa și pe RTI), pe Arduino se vede ușor care sunt conectorii de masă, este trecut GND. Iar PIN-ul 4 de pe RTI se conectează la PIN-ul TX0 pe Arduino, Acesta este firul de comunicație între Arduino și RTI (serial communication), este o comunicație unidirecțională. Arduino-ul trimite comenzi către RTI. PIN-ul TX0 nu este musai în cazul plăci Mega, findcă are mai mulți pini TX (Transmit) dar la Arduino Nano este doar un pin TX0. În al treilea rând (este ultima) RTI-ul este conectat la placa Odroid, dar numai pentru transmiterea imaginii din Odroid la RTI. Odroidul are un CVBS out, adică o ieșire video composit care se conectează la PIN-ul 10 tot din conectorul din stânga de la RTI (cel verde). Iar Odroidul are nevoie de o masă care acum este legat la Arduino dar poate fi conectat la orice masă (nu de lemn). În imaginea de jos puteți să vedeț mai clar ce am încercat să explic: Odroidul transmite semnal video NTSC iar RTI-ul este setat tot pe NTSC. Partea un pic mai complicată este programarea plăci Arduino dar dacă cineva dintre voi a mai scris câteva rânduri de C, C++, Pascal sau poate chiar PHP poată să programeze controlerul. Idea este că RTI-ul trebuie să primească în continu comanda de a rămâne "alive" adică aprins. Comanda de "alive" nu este altceva decât transmiterea modului de afișare a imaginii care poate fi RGB, NTSC sau PAL. Arduino-ul în cazul meu transmite în continu (cu un delay de 100 ms) comanda de NTSC (cod HEX: 0x4C), după aceasta trebuie trimis luminozitatea (are 16 valori) și încă nu am aflat de ce dar împreună cu fiecare comandă trimisă RTI-ul trebuie să primească comanda HEX de 0x83. Probabil este un fel de end of line character, adică sfărșit de comandă. Exemplu pentru comandă trimisă către RTI pentru a se aprinde, luminozitate maximă și modul de afișare să fie NTSC: 0x4C 0x2F 0x83 (explicație: NTSC | BRIGHTNESS | END OF LINE) - și acesta trebuie trimis în continu câtre RTI. Pentru închiderea ecranului trebuie trimis comanda 0x46 0x2F 0x83 (luminozitatea în acest caz nu contează). Dacă cineva vrea să încerce sau are întrebări voi încerca să răspund. Un video cu totul conectat și cum funcționează: În videoul de mai sus am avut o mică problemă cu RTI-ul, după ce l-am desfăcut de n-șpe ori am uitat să conectez un conector...cel care se ocupa de oprirea motorului electric la sfârșitul cursei, am rezolvat problema cu reconectarea conectorului. Ecranul nu este chiar strălucitor dar pentru acum este ok, niște imagini: Probleme rămase: Cea mai mare problemă, tebuie să găsesc un mod de safe shutdown pentru Odroid, dacă o închid prin tăierea alimentației am toate șansele să corup OS-ul din când în când. Găsirea toate firelor pe mașină și instalarea. Un mod de controlare a Odroidului, deocamdată folosesc un mouse. Deocamdată voi încerca să fac două lucruri: 1. Am un touchscreen de 6.2 fără controller și driver, o să folosesc un Arduino nano să fac un controler/driver mouse pentru acest touchscreen și o voi pune peste ecranul RTI-ului (nu se va vedea că este acolo). 2. Un touchpad instalat în spatele schimbătorului de viteză în locașul unde este suportul de pahare. Acolo dacă vreau închid capacul și nu se va vedea. Și mai sunt alte mici probleme. Aaaah și vreau să schimb ecranul...poate cu ceva mai mare (unul de 7" dar atunci trebuie să modific carcasa). Am deja un ecran de 7"...la care am reușit să prăjesc controlerul timițând 12V pe masa controlerului...am reușit să o pornesc schimbând câte ceva și niște bypass-uri dar se încălzește în căteva secunde dar cum am aproape 0 cunoștințe în domeniu va fi cale lungă să o repar. Sper că nu v-am plictisit cu postul meu un pic mai lung. Edited 9 Apr 2017 by arpi2390 6 people like this Share this post Link to post Share on other sites
Posted 9 Apr 2017 · Report post Am mai făcut un pic de progres azi (ieri am început să pun totul la un loc și să încep proiectul), acum pot controla totul cu 2 butoane, adică un buton pentru ridicare/coborăre și un buton pentru luminozitate. Aici deja am folosit Arduino Nano care se vede un pic în fața laptop-ului cu cablul USB albastru. Progresul de azi: Nu prea am văzut pe forum astfel de proiecte de aceea am vrut să detaliez cât mai bine ce am făcut, sper să fie de folos cuiva. Dar dacă credeți că este prea mult electronică și programare în post și prea puțin de Volvo atunci mă mai abțin cu detaliile. Mai vreau să fac un simplu AUX IN pentru HU-uri (cred că va merge pe orice HU de pe platforma P2) tot cu Arduino Nano pe care să o dezvolt pe parcurs să fie un fel de Yatour/Grom. 4 people like this Share this post Link to post Share on other sites
Posted 9 Apr 2017 · Report post Felicitări . Oricum exista IMIV care face acelasi lucru ba chiar are si audio in . Totusi vorbim despre un RTI si tehnologie veche de 14 ani . Nu puteai si tu sa apari acum 6 ani când am dat 300usd pe un IMIV? Cum ai reusit sa ridici ecranul ? Stiu ca se poate face cu un PIC . Share this post Link to post Share on other sites
Posted 9 Apr 2017 (edited) · Report post Știu de iMIV dar am preferat să fac eu ceva din simplu motiv că vreau să schimb ecranul original cu ceva care are o rezoluție mai mare și atunci nu prea o să mai am nevoie de interfața video a iMIV-ului sau ceea ce am făcut eu mai sus. Va fi un ecran plug&play cu intrare HDMI care va fi conectat la Odroid, doar că încă nu am ajuns acolo. Tot ce va rămâne din ce am făcut până acum este coborărea/ridicarea, controlat de Arduino. Am explicat mai sus, RTI-ul are un pin pentru comunicare de tip "serial communication" unde așteaptă 3 valori, una este modul de afișare video (NTSC, PAL, RGB), al doilea valoare este luminozitatea, iar ultima cred că este un fel de end of line, adică RTI-ul înțelege că poate executa comanda anterioară dar nu am găsit nimic pe net care să confirme acest lucru. Cele trei valori trebuie trimise în continu, altfel ecranul se stinge și coboară la loc. Am dat și un exemplu mai sus: 0x4C 0x2F 0x83 (NTSC | luminozitate maximă | end of line) De restul se ocupă RTI-ul, când primește comanda ridică ecranul. Se poate și cu PIC controller dar este mult mult mai ușor să programezi un Arduino, are limbajul de programare foarte aproape de C/C++. Arduino-ul în acest caz se comportă exact ca un PIC doar că mie-mi era mult mai ușor să o programez. Dacă cineva are nevoie de codul de sursă sau orice altă explicație să-mi ziceți. Edited 9 Apr 2017 by arpi2390 2 people like this Share this post Link to post Share on other sites
Posted 9 Apr 2017 · Report post Legat de audio in, teoretic este la fel de "ușor" de făcut și programat ca ceea ce am făcut până acum pentru RTI. HU-ul când pornește așteaptă un semnal de la toate perifericele legate de el și dacă te ai conectat în acest ciclu HU-ul îți permite să transmiți audio prin LEFT/RIGHT pe mufa care intră în spatele HU-ului. Problema deocamdată este că nu am doar un HU care este pe mașină. Dar dacă are cineva un HU603/HU803 (prefer HU803) de vânzare la un preț foarte bun...ca să experimentez... @Bogdan G Legat de câți ani are mașina, teoretic acest lucru merge și pe S60-uri din 2009 (acolo sunt numai 8 ani ) care sunt pe platforma P2 (sau orice ce este pe platforma P2) și din ce am studiat pe net are trebui să meargă și la V50/S40 care are navigația cu mecanismul de rabatare, aici nu știu la care și cum. 1 person likes this Share this post Link to post Share on other sites
Posted 10 Apr 2017 (edited) · Report post Felicitari pentru initiativa si tutorial! Edited 10 Apr 2017 by Brava Share this post Link to post Share on other sites
Posted 10 Apr 2017 (edited) · Report post Mersi. Postez și codul sursă pentru Arduino dacă cineva vrea să încerce: volvo_rti_arduino_controller.txt Cu codul de sus dacă totul este conectat RTI-ul o să se pornească, dacă schimbați partea int current_display_mode = RTI_NTSC; cu int current_display_mode = RTI_OFF; și trimiteți codul din nou pe Arduino RTI-ul o să se oprească și ecranul va retrage. Dar tot trebuie să rescrieți codul în Arduino, este doar un cod de a testa totul (cel care am folosit în primul video). Aici aveți o variantă cu două butoane conectate la Arduino pe PIN 5 (ON/OFF) respectiv PIN 6 (BRIGHTNESS) care merge și stand alone (de sine stătător): volvo_rti_arduino_controller_push_button.txt - este codul pe care am folosit în al doilea video Nici unul din versiuni de sus nu este cel final, sunt doar pentru teste. Tot ce vă trebuie este un Arduino și să descărcați IDE-ul Arduino (editorul), trebuie să conectați totul și să dați copy paste la codul de sus. Totul ar trebui să pornească, după ce pornește RTI-ul PIN-ul 10 este open pentru surse video (în acest caz NTSC dar puteți să schimbați la partea: int current_display_mode = RTI_NTSC; cu valorile RTI_PAL, RTI_RGB - RGB-ul nu merge pe PIN 10, are 4 alte pin-uri, 3 pentru culori Red, Green, Blue și un pin pentru RGB sync). Nu știu cât de bine am explicat...dar dacă cineva vrea să încerce puteți să-mi scrieți dacă aveți probleme. Am uitat să spun, RTI-ul se conectează la 12V!!! să nu încercați un voltaj mai mare că o să prăjiți RTI-ul, iar polaritatea este importantă, PIN 1 este PLUS și PIN 5 MINUS (PIN 2 tot PLUS și PIN 4 tot minus - cred că este un fel de backup), PIN-ul din mijloc PIN 3 este tot PLUS de 12V. Toate acestea la conectorul din dreapta, cel albastru. Edited 10 Apr 2017 by arpi2390 5 people like this Share this post Link to post Share on other sites
Posted 10 Apr 2017 · Report post P.S. O să fac 2-3 diagrame cu conecțiunile care trebuie făcute când o să am un pic de timp. 5 people like this Share this post Link to post Share on other sites
Posted 21 Apr 2017 · Report post Felicitari si de la mine! Share this post Link to post Share on other sites