Sadržaj:
- Korak 1: Očitavanje sigurnosnih senzora
- Korak 2: Stvorite bitmap sliku i stavite je na microSD karticu
- Korak 3: Povezivanje hardvera
- Korak 4: RA8875 upravljački program zaslona i grafički dizajn
- Korak 5: Prijenos skice
- Korak 6: 3D ispis LCD kućišta
- Korak 7: Razdvajanje OBD-II porta tako da Arduino ima snagu samo dok automobil radi
Video: Arduino zaslon automobila: 7 koraka (sa slikama)
2024 Autor: John Day | [email protected]. Zadnja promjena: 2024-01-30 09:35
Napravio sam ugrađeni zaslon za dijagnostiku (OBD-II) koristeći 7-inčni TFT LCD iz Adafruit-a, Teensy 3.6, Freematics OBD-II I2C adapter i neke jeftine sigurnosne senzore koje sam pronašao na Amazonu. Zaslon ima dvije stranice: jedan za vrijeme kada je moja Honda Accord u pogonu i jedan za kada je u rikverc.
Kad je moj automobil u pogonu, prikazuju se RPM, MPH, postotak opterećenja motora, napon baterije, temperatura kabine i temperatura rashladne tekućine (postoji nekoliko drugih statistika vozila dostupnih za prikaz ako ih ne želite).
Kad je moj automobil u rikverc, Arduino IDE kompatibilan Teensy 3.6 čita animiranu bitmap sliku mog automobila koju sam pronašao na internetu, prikazuje je, a zatim čita sigurnosne senzore. Sva četiri senzora imaju udaljenost u stopama plus animaciju iza automobila koja mijenja boju ovisno o tome koliko je objekt blizu auta (samo zelena znači <5 stopa, zelena i žuta znači <2,6 stopa, a zelena, žuta, a crveno znači <1 stopa).
Konačno, dodao sam mogućnost zatamnjivanja zaslona noću.
Krajnji rezultat izgleda odlično i vrlo dobro funkcionira u mom automobilu. Čak sam ga na kraju i instalirao na središnju konzolu, što je bio sasvim drugi proces u koji se neću upuštati u ovom uputstvu. Popis dijelova koje sam koristio za izradu ovog LCD zaslona nalazi se ispod.
1) Freematics OBD -II adapter - 35 USD
2) Sigurnosni senzori - 15 USD
3) 7 TFT LCD zaslon - 38 USD
4) Upravljački program LCD zaslona temeljen na SPI - 35 USD
5) Tinejdžerski 3,6 - 30 USD
6) Razina pomaka - 4 USD
7) IC State Buffer IC 74HC125 -6 USD za 2 pakiranja (siguran sam da biste ovo jeftinije mogli pronaći negdje drugdje)
8) MicroSD kartica> = 1 GB - 4 USD
9) Žica, kondenzatori i otpornici.
10) LP3470-2,93 IC pri resetiranju - 2 USD
11) (izborno): temperaturni osjetnik DS18B20 - 8 USD
12) (izborno): OBD -II razdjelnik - 10 USD
13) (izborno): Dodajte kabel osigurača u krug - 8 USD za paket od 5 komada
Korak 1: Očitavanje sigurnosnih senzora
Ovaj korak je lukav jer ti sigurnosni senzori komuniciraju s primopredajnikom, a zatim s malim LCD -om, kao što se vidi na gornjoj slici. Htio sam način da se riješim njihovog prikaza i upotrijebim svoj. Uz pomoć web stranice koju sam pronašao nakon guglanja (hakiranje senzora za parkiranje unatrag) uspio sam pročitati vlasnički komunikacijski protokol koji primopredajnik šalje na LCD zaslon. Iz nekog razloga komunikacijski protokol nije tipičan poput I2C, UART, CAN, USB itd., A protokol se razlikuje ovisno o dobavljaču. Toplo preporučujem da kupite komplet koji sam gore povezao ako ćete koristiti moj kôd jer je posebno napisan za te senzore.
Prije nego što sam odspojio LCD koji su mi dali, ispitao sam tri žice koje spajaju primopredajnik i LCD. Tu je bila +5V crvena žica, uzemljena crna žica i plava žica. Nakon što sam spojio svoj osciloskop s plavom žicom i masom, vidio sam trag sličan onoj na gornjoj slici, ali ne baš (upotrijebio sam sliku s gore navedene web stranice). Moj je trag imao VISOKO dulji startni bit, nakon čega je slijedilo 17 bitova kraćeg trajanja. Bitovi 0-5 nakon početnog bita nisu imali korisne informacije. Bitovi 6-8 odgovaraju senzoru A, B, C ili D. Bit 9-16 odgovara duljini u metrima. Uključio sam Arduino IDE skicu koja čita senzore i izbacuje podatke preko serijske konzole.
Korak 2: Stvorite bitmap sliku i stavite je na microSD karticu
Koristio sam besplatni softver za uređivanje fotografija pod nazivom GIMP za obrezivanje i promjenu veličine slike automobila s pogleda odozgo. Zatim sam izvezao sliku kao 24 bitnu sliku pod nazivom "car.bmp" koja ima 110 piksela po 250 piksela. Postavio sam ovo na microSD karticu i stavio microSD karticu u svoj Teensy 3.6 mikrokontroler.
Glavni razlozi zašto sam otišao s Teensy 3.6 umjesto s UNO -om bila je brzina kojom je Teensy mogao čitati SD karticu i prikazivati sliku pomoću upravljačkog programa za zaslon RA8875. Korištenjem UNO -a proces je trajao oko 8 sekundi, dok je Teensy 3.6 trajao 1,8 sekundi.
Korak 3: Povezivanje hardvera
Adafruit ima jako lijep 7 -inčni TFT LCD koji pokreće IC koji se naziva RA8875. Ovaj zaslon i upravljački program zaslona odabrao sam iz dva razloga. Prvo, postoje opsežne biblioteke unaprijed napisane za zaslon. Drugo, upravljački program zaslona može razgovarati s bilo kojeg mikrokontrolera preko SPI -ja, što znači da nema toliko žica koje povezuju mikrokontroler s RA8875.
Postoje dva nedostatka ove postavke. Prvo je činjenica da postoji hardverska greška s RA8875 pločom iz Adafruit-a koja zahtijeva upotrebu trostrukog međuspremnika ICH 74HC125 ako želite koristiti bilo koji uređaj temeljen na SPI-u, poput SD kartice. Da biste u potpunosti razumjeli hardversku grešku, pročitajte sljedeći forum. Drugo, relativno je dugo vrijeme potrebno za slanje slika na LCD. Također, dugo vrijeme potrebno za slanje slike na LCD zaslon je posljedica SPI veze, koja je ograničena brzinom takta mikrokontrolera i velikom količinom podataka koje je potrebno poslati upravljačkom programu zaslona preko vrlo malo žica.
Napravio sam shemu Fritzinga tako da svatko tko želi stvoriti ovaj zaslon može lako pročitati na što se povežu pinovi na Teensy 3.6. U nastavku sam uključio.frz datoteku. Jedine dvije komponente koje nisu označene su kondenzatori, koji su 1F 16V elektrolitički kondenzator i 100μF keramički kondenzator. Uključio sam ih kako bih bio siguran da je napajanje Teensy mikrokontrolera stalno DC +5V i da ne sadrži nikakve skokove napona (možda nije potrebno, ali uključio sam ih jer opskrba automobila naponom može brzo varirati ovisno o opterećenju baterije).
Nekoliko stvari koje treba spomenuti o komponentama. Prvo, mjenjač razine uzima bilo koji 5V signal i pretvara ga u siguran napon od 3.3V Teensy 3.6. To je potrebno za OBD I2C adapter, kao i primopredajnik rezervnog senzora. Drugo, I2C linije za tinejdžere zahtijevaju otpornike od 4,7 kΩ. Treće, četiri otpornika koji povezuju "žicu za noćno vrijeme" (žicu za prigušivanje) i "žicu za uključivanje sigurnosne kopije" neophodna su da posluže kao razdjelnik napona kako bi se signali 12V-13V sveli na signale od oko 2.5-3V.
AŽURIRANJE 22. 7. 18: Otkrio sam da senzor unutarnje temperature modula OBD-I2C odašilje vrlo čudne brojeve. Ponekad bi to uspjelo, ali većinu vremena modul je izlazio s temperaturama iznad 400 stupnjeva F. Zbog toga sam odlučio dodati vlastiti senzor temperature ds18b20. Ovdje možete koristiti bilo koju vrstu temperaturnog senzora, ali ćete morati urediti Arduino kôd.
UPDATE 3/1/19: Teensy 3.6 ne počinje kada je izuzetno hladno. Dodao sam sklop za resetiranje napajanja kako bih se uvjerio da se ispravno pokreće.
Korak 4: RA8875 upravljački program zaslona i grafički dizajn
Upravljački program zaslona RA8875 ima biblioteku pod nazivom Adafruit_RA8875, koju sam koristio pri stvaranju oblika koji se vide na prvoj i drugoj stranici. Knjižnica za RA8875 može stvarati samo linije, pravokutnike, zaobljene pravokutnike, trokute, elipse i krugove, pa se grafike moraju osmisliti na pametan način za stvaranje složenijih oblika. Na primjer, sivi prsten na prvoj stranici zapravo je puni sivi krug većeg promjera nakon kojeg slijedi puni crni krug manjeg promjera. Također, jedan mali dio stranice rezervnog senzora sadrži 2 trokuta raspoređena tako da čine oblik poligona. Učinio sam to kako bih mogao promijeniti boju pojedinog odjeljka stranice senzora sigurnosne kopije. Arduino datoteka za prikaz sadrži niz točaka pomoću kojih sam pratio gdje su trokuti i drugi oblici.
Koristio sam ovu sjajnu web stranicu za odabir boja RGB565 i definiranje istih na skici kako bih mogao koristiti boje koje nisu zadane već unaprijed definirane u biblioteci Adafruit_RA8875.
Što se tiče fontova, knjižnica Adafruit_RA8875 podržava samo jedan ako ne komentirate dio biblioteke, koji vam omogućuje korištenje fontova biblioteke Adafruit_GFX. U nastavku sam uključio izmijenjenu biblioteku Adafruit_RA8875. Upravo sam komentirao nekoliko redaka koda i tada sam mogao koristiti fontove u biblioteci Adafruit_GFX. Također, za korištenje 7 -segmentnog fonta koji sam koristio u ovom projektu, provjerite je li datoteka "FreeSevenSegNumFont.h" u mapi fontova u knjižnici Adafruit_GFX.
Korak 5: Prijenos skice
Da biste skicu prenijeli na Teensy 3.6, morate instalirati Teensyduino. Tada ćete morati zamijeniti biblioteke Adafruit_RA8875 i Adafruit_GFX na mjestu za male knjižnice (nije vaše tipično mjesto u dokumentima). Na Mac -u sam morao desnom tipkom miša kliknuti ikonu aplikacije Arduino u aplikacijama, a zatim otići do/Contents/Java/hardware/teensy/avr/libraries. Na Windowsima sam prilično siguran da se nalazi pod vašim pogonom C u programskim datotekama x86, Arduino, a zatim i u hardverskoj mapi. Nakon što to učinite, morat ćete promijeniti mjesto skice u aplikaciji Arduino tako da je uredite u postavkama gdje god se nalazile vaše knjižnice za tinejdžere (tj. /Applications/Arduino.app/Contents/Java/hardware/teensy/avr).
AŽURIRANJE 22. 7. 16: Zbog problema s unutarnjim osjetnikom temperature o kojem sam ranije govorio, morao sam instalirati senzor temperature modula DS18B20. Vidjet ćete 4 arduino skice u zip datoteci. Molimo prenesite skicu display_code ako želite koristiti unutarnji osjetnik temperature OBD-II I2C modula. Molimo, prenesite skicu prikaza_koda_ s_novom_temperaturom_senzora ako želite koristiti DS18B20 modul koji sam gore povezao.
AŽURIRANO 17.11.17.: Ispravio sam nekoliko grešaka u softveru, uključujući DS18B20 koji daje temperaturu od 185 Fahrenheita, zaslon se uopće ne uključuje po hladnom vremenu, a pikseli zaglave u pogrešnoj boji kada je zaslon zatamnjen.
Zatim upotrijebite gornju sliku kako biste bili sigurni da vaše postavke za tinejdžere odgovaraju slici. Otkrio sam da overclocking tinejdžera na 240MHz ne dopušta I2C OBD-II adapteru da komunicira s tinejdžerima. Na kraju, samo kliknite upload.
Napisao sam prilično opsežne komentare u arduino skicama. Tamo potražite objašnjenje kako softver radi. Za sva pitanja slobodno me kontaktirajte. Pokušat ću na njih odgovoriti najbolje što mogu. Sretno!
Korak 6: 3D ispis LCD kućišta
Napravio sam 3D tiskani gornji i donji poklopac LCD -a za zaštitu zaslona od 7 . Priložio sam datoteke. IPT izumiteljskih dijelova kao i. STL datoteke.
Uključio sam i dio pod nazivom backup_sensor_ring.ipt, koji je prsten koji stane oko onih sigurnosnih senzora koje sam gore povezao. Moj automobil je već imao prethodno izbušene rupe za rezervne senzore koje su bile prevelike za sigurnosne senzore koje sam kupio na Amazonu, pa sam morao stvoriti prsten koji će stati na rezervne senzore. Ako ćete bušiti u braniku s uključenim kružnim bušilicom u setu, ovaj dio vam neće trebati.
Korak 7: Razdvajanje OBD-II porta tako da Arduino ima snagu samo dok automobil radi
Ubrzo nakon instaliranja zaslona shvatio sam da je zaslon uvijek uključen, čak i kad je automobil bio isključen. Gledajući u OBD-II pinout, otkrio sam da je naponski vod od 12V na OBD-II konektoru uvijek spojen izravno na bateriju.
Da bih to riješio, kupio sam OBD-II razdjelnik, prerezao žicu koja ide na pin 16 na jednom od dva konektora na razdjelniku, a zatim sam tu izrezanu žicu spojio na žicu za dodavanje kruga.
Zatim sam, koristeći svoj multimetar, otišao do kutije s osiguračima na strani vozača i testirao postojeće osigurače kako bih vidio koji je osigurač dobio napajanje nakon što je ključ bio u kontaktu.
Na kraju sam spojio žicu za dodavanje strujnog kruga s osiguračem koji sam pronašao tako da se zaslon sada uključuje samo dok mi auto radi. Istražite kako pravilno dodati krug u automobil. Smatrao sam da je ovaj tutorial za YouTube dobar.
Preporučeni:
KAMENI LCD zaslon za nadzornu ploču automobila: 5 koraka
KAMENI LCD zaslon za nadzornu ploču automobila: Brzim razvojem gospodarstva i postupnim poboljšanjem potrošnje, automobili su postali svakodnevna potreba običnih obitelji, a svi više pažnje posvećuju udobnosti i sigurnosti automobila. Automobilski indus
DIY pametni robotski alati za praćenje automobila Kompleti za praćenje automobila Fotoosjetljivi: 7 koraka
DIY Pametni roboti za praćenje automobila Kompleti za praćenje Automobil Fotoosjetljivi: Dizajn SINONING ROBOT -a Možete kupiti od robota za praćenje Robotski čip TheoryLM393 usporedite dva fotootpornika, kada LED dioda s jednog bočnog fotootpornika na BIJELOJ strani motora odmah će se zaustaviti, s druge strane motora okreni se pa
TTGO (kolor) zaslon s mikropythonom (TTGO T-zaslon): 6 koraka
TTGO (kolor) zaslon s Micropythonom (TTGO T-zaslon): TTGO T-zaslon je ploča temeljena na ESP32 koja uključuje zaslon u boji od 1,14 inča. Ploča se može kupiti za nagradu manju od 7 USD (uključujući dostavu, nagrada viđena na banggood -u). To je nevjerojatna nagrada za ESP32 uključujući zaslon. T
Pretvaranje bilo kojeg R/C automobila u Bluetooth aplikaciju za kontrolu R/C automobila: 9 koraka
Pretvaranje bilo kojeg R/C automobila u Bluetooth aplikaciju za upravljanje R/C automobilom: Ovaj projekt prikazuje korake za promjenu običnog automobila na daljinsko upravljanje u Bluetooth (BLE) upravljački automobil s robotskom pločom Wombatics SAM01, aplikacijom Blynk i MIT App Inventor. mnogi su jeftini RC automobili s puno značajki poput LED prednjih svjetala i
FinduCar: pametan ključ automobila koji vodi ljude do mjesta parkiranja automobila: 11 koraka (sa slikama)
FinduCar: ključ pametnog automobila koji vodi ljude do mjesta parkiranja automobila: Kako bi se riješili gore navedeni problemi, ovaj projekt predlaže razvoj pametnog ključa za automobil koji bi ljude mogao usmjeriti do mjesta na kojem su parkirali automobil. I moj plan je integrirati GPS u ključ automobila. Nema potrebe koristiti aplikaciju za pametne telefone za praćenje