Orodha ya maudhui:
- Hatua ya 1: Kusoma sensorer za Backup
- Hatua ya 2: Kuunda Picha ya Bitmap na Kuiweka kwenye Kadi ya MicroSD
- Hatua ya 3: Kuunganisha vifaa
- Hatua ya 4: RA8875 Onyesha Dereva na Ubunifu wa Picha
- Hatua ya 5: Kupakia Mchoro
- Hatua ya 6: 3D Chapisha Kesi ya LCD
- Hatua ya 7: Kugawanyika Bandari ya OBD-II Kwa hivyo Arduino Ina Nguvu tu Wakati Gari Inafanya Mbio
Video: Uonyesho wa Gari la Arduino: Hatua 7 (na Picha)
2024 Mwandishi: John Day | [email protected]. Mwisho uliobadilishwa: 2024-01-30 12:52
Niliunda uchunguzi wa bodi (OBD-II) kwa kutumia onyesho la msingi la 7 TFT LCD kutoka Adafruit, Teensy 3.6, Freematics OBD-II I2C Adapter, na sensorer zingine za cheep nilizozipata kwenye Amazon. Onyesho lina kurasa mbili: moja ya wakati Honda Accord yangu iko kwenye gari na moja kwa wakati iko kinyume.
Wakati gari langu linapoendesha, RPM, MPH, asilimia ya mzigo wa injini, joto la betri, joto la kabati, na joto la kupoza injini huonyeshwa (kuna takwimu zingine kadhaa za gari zinazopatikana kuonyesha ikiwa mtu hataki hizi).
Wakati gari langu liko nyuma, Arduino IDE Teensy 3.6 inayoambatana inasoma picha ya michoro ya gari langu niliyoipata mkondoni, kuionyesha, na kisha kusoma sensorer za chelezo. Sensorer nne kila moja ina umbali wa miguu pamoja na uhuishaji nyuma ya gari ambayo hubadilisha rangi kulingana na jinsi kitu kilivyo karibu na gari (kijani kibichi ina maana <miguu 5, kijani na manjano inamaanisha miguu ya 2.6, na kijani, manjano, na nyekundu inamaanisha <1 mguu).
Mwishowe, niliongeza uwezo wa kupunguza onyesho usiku.
Matokeo ya mwisho yanaonekana vizuri na hufanya kazi vizuri sana kwenye gari langu. Niliishia kuiweka kwenye kiweko cha katikati, ambayo ilikuwa mchakato mwingine kabisa ambao sitaingia katika hii inayoweza kufundishwa. Orodha ya sehemu ambazo nilikuwa nikitengeneza onyesho hili la LCD ziko hapa chini.
1) Freematics OBD-II Adapter - $ 35
2) Sensorer za Backup - $ 15
3) 7 Onyesho la LCD la TFT - $ 38
4) Dereva wa Uonyesho wa LCD wa SPI - $ 35
5) Vijana 3.6 - $ 30
6) Shifter ya kiwango - $ 4
7) 74HC125 Tri State Buffer IC - $ 6 kwa pakiti 2 (nina hakika unaweza kupata cheeper hii mahali pengine)
8) Kadi ya MicroSD> = 1 GB - $ 4
9) Waya, capacitors, na vipinga.
10) LP3470-2.93 Nguvu kwenye Rudisha IC - $ 2
11) (hiari): Sensor ya Joto la DS18B20 - $ 8
12) (hiari): OBD-II Splitter - $ 10
13) (hiari): Ongeza kamba ya fuse ya mzunguko - $ 8 kwa pakiti ya 5
Hatua ya 1: Kusoma sensorer za Backup
Hatua hii ni ngumu kwa sababu sensorer hizi za mawasiliano huwasiliana na transceiver na kisha kwa LCD ndogo kama inavyoonekana kwenye picha hapo juu. Nilitaka njia ya kuondoa maonyesho yao na kutumia yangu mwenyewe. Kwa msaada wa wavuti niliyoipata baada ya kuzunguka-zunguka (Kukamata sensorer za kuegesha nyuma), niliweza kusoma itifaki ya mawasiliano ya wamiliki ambayo transceiver hutuma kwa skrini ya LCD. Kwa sababu fulani, itifaki ya mawasiliano sio ile ya kawaida kama I2C, UART, CAN, USB, nk na itifaki hutofautiana kulingana na muuzaji. Ninapendekeza sana ununue seti niliyounganisha hapo juu ikiwa utatumia nambari yangu kwa sababu iliandikwa haswa kwa sensorer hizo.
Kabla ya kukata LCD waliyotoa, nilichunguza waya tatu zinazojiunga na transceiver na LCD. Kulikuwa na waya nyekundu + 5V, waya mweusi chini, na waya wa samawati. Baada ya kuunganisha oscilloscope yangu kwa waya wa bluu na ardhi, niliona athari inayofanana na picha iliyoonekana hapo juu lakini sio haswa (nilitumia picha kutoka kwa wavuti iliyounganishwa hapo juu). Ufuatiliaji wangu ulikuwa na kuanza kwa muda mrefu wa HIGH, ikifuatiwa na bits 17 zaidi za muda mfupi. Biti 0-5 baada ya kuanza kidogo hazikuwa na habari muhimu. Bits 6-8 zinahusiana na sensorer A, B, C, au D. Bits 9-16 inalingana na urefu wa mita. Nilijumuisha mchoro wa Arduino IDE ambao unasoma sensorer na hutoa data juu ya kiweko cha serial.
Hatua ya 2: Kuunda Picha ya Bitmap na Kuiweka kwenye Kadi ya MicroSD
Nilitumia programu ya kuhariri picha bure inayoitwa GIMP kupanda na kubadilisha ukubwa wa picha ya gari langu kutoka kwa mtazamo wa juu. Kisha nikasafirisha picha hiyo kama picha ya bitmap 24 inayoitwa "car.bmp" ambayo ni saizi 110 na saizi 250. Nilipakia hii kwenye kadi ya MicroSD na kuweka kadi ya MicroSD katika Mdhibiti wangu mdogo wa Vijana 3.6.
Sababu kuu nilikwenda na Teensy 3.6 badala ya UNO ilikuwa kasi ambayo Teensy angeweza kusoma kadi ya SD na kuonyesha picha hiyo kwa kutumia dereva wa onyesho la RA8875. Kutumia UNO, mchakato huo ulichukua sekunde 8, wakati Teensy 3.6 ilichukua sekunde 1.8.
Hatua ya 3: Kuunganisha vifaa
Adafruit ina muonekano mzuri wa 7 TFT LCD ambayo inaendeshwa na IC inayoitwa RA8875. Nilichagua onyesho hili na kuonyesha dereva kwa sababu mbili. Kwanza, kuna maktaba makubwa yaliyoandikiwa maonyesho hayo. Pili, dereva wa onyesho anaweza kuzungumza na microcontroller yoyote juu ya SPI, ikimaanisha hakuna waya nyingi zinazounganisha microcontroller kwa RA8875.
Kuna pande mbili chini ya usanidi huu. Kwanza ni ukweli kwamba kuna mdudu wa vifaa na bodi ya RA8875 kutoka Adafruit inayohitaji utumiaji wa bafa ya ICH ya 74HC125 ikiwa unataka kutumia kifaa chochote cha SPI kama kadi ya SD. Ili kuelewa zaidi mdudu wa vifaa, tafadhali soma jukwaa lifuatalo. Pili, ni kiasi gani cha muda inachukua kwa picha kutumwa kwa LCD. Pia, muda mrefu unachukua kwa picha kupelekwa kwa LCD ni kwa sababu ya unganisho la SPI, ambalo limepunguzwa na kasi ya saa ya watawala na idadi kubwa ya data ambayo inapaswa kutumwa kwa dereva wa onyesho waya chache sana.
Niliunda skimu ya Fritzing ili kila mtu ambaye angependa kuunda onyesho hili aweze kusoma kwa urahisi kile pini kwenye Teensy 3.6 unganisha. Nilijumuisha faili ya.frz hapa chini. Vipengele viwili tu ambavyo havijaandikwa lebo ni capacitors, ambayo ni 1F 16V capacitor electrolytic na 100μF kauri capacitor. Nilijumuisha hizi ili kuhakikisha kuwa nguvu ya Mdhibiti Mdogo wa Vijana ilikuwa thabiti DC + 5V na haikuwa na spikes za voltage (inaweza kuwa sio lazima lakini nilijumuisha kwa sababu usambazaji wa voltage ya gari inaweza kubadilika haraka kulingana na mzigo kwenye betri).
Vitu vichache vya kutaja juu ya vifaa. Kwanza, mabadiliko ya kiwango huchukua ishara yoyote ya 5V na kuibadilisha kuwa voltage salama ya 3.3V Teensy 3.6. Hii ni muhimu kwa adapta ya OBD I2C pamoja na transceiver ya sensa ya chelezo. Pili, mistari ya I2C ya ujana inahitaji 4.7kΩ kuvuta vipinga. Tatu, vipinga vinne vinavyounganisha "waya ya wakati wa usiku" (waya wa kupunguzwa) na "waya ya kushirikisha chelezo" ni muhimu kutumika kama mgawanyiko wa voltage ili kuleta ishara za 12V-13V chini hadi ishara 2.5-3V.
UPDATE 7/22/18: Nimepata sensorer ya ndani ya joto ya moduli ya OBD-I2C ikitoa nambari za kushangaza sana. Wakati mwingine ingefanya kazi, lakini wakati mwingi, moduli hiyo ilikuwa ikitoa joto juu ya digrii 400 F. Kwa sababu ya hii, niliamua kuongeza sensa yangu ya joto ya ds18b20. Unakaribishwa zaidi kutumia aina yoyote ya sensorer ya joto hapa, lakini itabidi uhariri nambari ya Arduino.
Sasisha 3/1/19: Vijana 3.6 haianzi wakati kuna baridi kali. Niliongeza nguvu kwenye mzunguko wa upya ili kuhakikisha kuwa ina buti vizuri.
Hatua ya 4: RA8875 Onyesha Dereva na Ubunifu wa Picha
Dereva wa kuonyesha RA8875 ana maktaba inayoitwa Adafruit_RA8875, ambayo nilitumia wakati wa kuunda maumbo ambayo yanaonekana kwenye ukurasa wa kwanza na ukurasa wa pili. Maktaba ya RA8875 inaweza tu kuunda mistari, mstatili, mstatili mviringo, pembetatu, viwiko, na miduara, kwa hivyo michoro lazima zibunwe kwa njia ya ujanja kuunda maumbo magumu zaidi. Kwa mfano, pete ya kijivu kwenye ukurasa wa kwanza kwa kweli ni duara kamili ya kijivu ya kipenyo kikubwa ikifuatiwa na mduara mweusi kamili wa kipenyo kidogo. Pia, sehemu moja ndogo ya ukurasa wa sensorer chelezo ina pembetatu 2 zilizopangwa kwa njia ambayo hufanya umbo la poligoni. Nilifanya hivyo ili niweze kubadilisha rangi ya sehemu ya kibinafsi ya ukurasa wa sensorer chelezo. Faili ya Arduino ya onyesho ina safu ya vidokezo ambavyo nilikuwa nikifuatilia mahali pembetatu na maumbo mengine yalikuwa.
Nilitumia wavuti hii nzuri kuchagua rangi za RGB565 na kuzifafanua kwenye mchoro ili niweze kutumia rangi zisizo chaguomsingi ambazo tayari zimefafanuliwa mapema kwenye maktaba ya Adafruit_RA8875.
Kwa upande wa fonti, maktaba ya Adafruit_RA8875 inasaidia tu moja isipokuwa utoe maoni sehemu ya maktaba, ambayo hukuruhusu kutumia fonti za maktaba ya Adafruit_GFX. Nilijumuisha maktaba ya Adafruit_RA8875 iliyobadilishwa hapa chini. Nilitoa maoni tu kwa mistari michache ya nambari kisha nikaweza kutumia fonti kwenye maktaba ya Adafruit_GFX. Pia, kutumia fonti ya sehemu 7 ambayo nilitumia katika mradi huu, tafadhali hakikisha faili ya "FreeSevenSegNumFont.h" ambayo niko kwenye folda ya fonti kwenye maktaba ya Adafruit_GFX.
Hatua ya 5: Kupakia Mchoro
Ili kupakia mchoro kwenye Teensy 3.6, utahitaji kusanikisha Teensyduino. Kisha utahitaji kuchukua nafasi ya maktaba ya Adafruit_RA8875 na Adafruit_GFX katika eneo la maktaba ya vijana (sio eneo lako la kawaida kwenye hati). Kwenye Mac, ilibidi nibofye kulia kwenye ikoni ya programu ya Arduino kwenye programu, na kisha nenda kwa / Yaliyomo / Java / vifaa / ujana / avr / maktaba. Kwenye windows, nina hakika iko chini ya gari lako la C katika faili za Programu x86, Arduino, na kisha folda ya vifaa huko. Mara tu unapofanya hivyo, utahitaji kubadilisha eneo la sketch katika programu ya Arduino kwa kuihariri kwa mapendeleo mahali ambapo maktaba zako za ujana ziko (i.e. /Applications/Arduino.app/Contents/Java/hardware/teensy/avr).
UPDATE 7/22/16: Kwa sababu ya swala ya sensorer ya joto ya ndani niliyozungumza hapo awali, ilibidi niweke sensa ya joto ya moduli ya DS18B20. Utaona michoro 4 za arduino kwenye faili ya zip. Tafadhali pakia mchoro wa nambari ya kuonyesha_kama unataka kutumia sensorer ya ndani ya joto ya moduli ya OBD-II I2C. Tafadhali pakia onyesho_code_with_new_temperature_sensor mchoro ikiwa unataka kutumia moduli ya DS18B20 niliyounganisha hapo juu.
UPDATE 11/17/17: Nilirekebisha mende kadhaa kwenye programu hiyo ikiwa ni pamoja na DS18B20 ikitoa joto la 185 Fahrenheit, onyesho haliwashi kabisa wakati wa baridi, na saizi zinakwama kwenye rangi isiyofaa wakati onyesho limepungua.
Kisha, tumia picha niliyo nayo hapo juu kuhakikisha mipangilio yako ya ujana inafanana na picha. Niligundua kuvunja ujana hadi 240MHz hakuruhusu adapta ya I2C OBD-II kuwasiliana na kijana. Mwishowe, bonyeza tu pakia.
Niliandika maoni mazuri sana kwenye faili za mchoro wa arduino. Tafadhali angalia hapo kwa maelezo ya jinsi programu inavyofanya kazi. Tafadhali jisikie huru kuwasiliana nami na maswali yoyote. Nitajaribu kuwajibu kwa kadiri ya uwezo wangu. Bahati njema!
Hatua ya 6: 3D Chapisha Kesi ya LCD
Niliunda kifuniko cha juu na chini cha LCD cha 3D ili kulinda onyesho la 7. Nimeambatanisha faili za sehemu za mwanzilishi wa. IPT na faili za. STL.
Nilijumuisha pia sehemu inayoitwa backup_sensor_ring.ipt, ambayo ni pete inayofaa karibu na sensorer hizo za chelezo nilizoziunganisha hapo juu. Gari langu tayari lilikuwa na mashimo ya sensorer ya kuchakata kabla ambayo yalikuwa makubwa sana kwa sensorer za chelezo nilizonunua kwenye Amazon, kwa hivyo ilibidi niunde pete ambayo itatoshea kwenye sensorer za chelezo. Ikiwa utachimba kwenye bumper yako na kipande cha kuchimba cha mviringo kilichojumuishwa kwenye seti, hautahitaji sehemu hii.
Hatua ya 7: Kugawanyika Bandari ya OBD-II Kwa hivyo Arduino Ina Nguvu tu Wakati Gari Inafanya Mbio
Niligundua muda mfupi baada ya kusanikisha onyesho langu kuwa onyesho lilikuwa likiwashwa kila wakati, hata wakati gari ilikuwa imezimwa. Kuangalia pinout ya OBD-II, niligundua kuwa laini ya nguvu ya 12V kwa kiunganishi cha OBD-II kila wakati imeunganishwa moja kwa moja na betri.
Ili kuzunguka hii, nilinunua mgawanyiko wa OBD-II, nikata waya kwenda kubandika 16 kwenye moja ya viunganisho viwili kwenye mgawanyiko, kisha nikaunganisha waya hiyo iliyokatwa na kuongeza waya wa mzunguko.
Kisha, kwa kutumia multimeter yangu, nilikwenda kwenye sanduku la fuse la upande wa dereva na kupima fyuzi zilizopo ili kuona ni fyuzi gani ilipata nguvu baada ya ufunguo kugeuzwa kuwa moto.
Mwishowe, niliunganisha nyongeza ya waya wa mzunguko kwenye fuse ambayo nilipata ili onyesho sasa liwashe tu wakati gari langu linaendesha. Tafadhali fanya utafiti juu ya jinsi ya kuongeza vizuri mzunguko kwenye gari lako. Nimeona mafunzo haya ya youtube kuwa nzuri.
Ilipendekeza:
GoBabyGo: Fanya Gari-kwa Gari inayodhibitiwa na Joystick: Hatua 10 (na Picha)
GoBabyGo: Fanya Gari-kwa Gari inayodhibitiwa na Joystick: Iliyoundwa na profesa wa Chuo Kikuu cha Delaware, GoBabyGo ni mpango wa ulimwengu ambao unaonyesha watu wa kawaida jinsi ya kurekebisha magari ya wapanda-toy ili waweze kutumiwa na watoto wadogo walio na uhamaji mdogo. Mradi huo, ambao unajumuisha kubadilisha kanyagio cha mguu f
Uonyesho wa LCD wa I2C / IIC - Tumia LCD ya SPI kwa Uonyesho wa LCD wa I2C Kutumia SPI kwa Moduli ya IIC Na Arduino: Hatua 5
Uonyesho wa LCD wa I2C / IIC | Tumia LCD ya SPI kwa Uonyesho wa LCD wa I2C Kutumia SPI kwa Moduli ya IIC Pamoja na Arduino: Halo jamani kwani kawaida SPI LCD 1602 ina waya nyingi sana kuungana kwa hivyo ni ngumu sana kuiunganisha na arduino lakini kuna moduli moja inayopatikana sokoni ambayo inaweza badilisha onyesho la SPI kuwa onyesho la IIC kwa hivyo basi unahitaji kuunganisha waya 4 tu
Uonyesho wa LCD wa I2C / IIC - Badilisha LCD ya SPI kwa Uonyesho wa LCD wa I2C: Hatua 5
Uonyesho wa LCD wa I2C / IIC | Badilisha LCD ya SPI kwa Onyesho la LCD la I2C: kutumia spi LCD kuonyesha inahitaji miunganisho mingi sana kufanya ambayo ni ngumu sana kufanya hivyo nimepata moduli ambayo inaweza kubadilisha i2c lcd kwa spi lcd ili tuanze
GARI-INO: Uongofu wa Jumla wa Gari ya Kale ya RC Pamoja na Udhibiti wa Arduino na Bluetooth: Hatua 5 (na Picha)
CAR-INO: Uongofu kamili wa Gari ya zamani ya RC na Arduino na Udhibiti wa Bluetooth: UtanguliziHi, katika mafundisho yangu ya kwanza ningependa kushiriki nawe uzoefu wangu wa kubadilisha gari la zamani la rc kutoka 1990 kuwa kitu kipya. Ilikuwa xsmas 1990 wakati Santa alinipa hii Ferrari F40, gari lenye kasi zaidi ulimwenguni! … wakati huo.T
Jinsi ya Kuunda: Gari ya Kuendesha Gari ya Arduino: Hatua 7 (na Picha)
Jinsi ya Kujenga: Gari ya Kuendesha Kujiendesha ya Arduino: Gari ya Kuendesha ya Arduino ni mradi ulio na chasisi ya gari, magurudumu mawili yenye injini, moja 360 ° gurudumu (isiyo na motor) na sensorer chache. Inaendeshwa na betri 9-volt kwa kutumia Arduino Nano iliyounganishwa kwenye ubao wa mkate wa mini kudhibiti mo