Мазмұны:
- 1 -қадам: резервтік сенсорларды оқу
- 2 -қадам: Нүктелік кескінді құру және оны MicroSD картасына енгізу
- 3 -қадам: жабдықты қосу
- 4 -қадам: RA8875 дисплей драйвері және графикалық дизайн
- 5 -қадам: Эскизді жүктеу
- 6 -қадам: СКД корпусын 3D басып шығару
- 7-қадам: OBD-II портын бөлу, сондықтан Arduino автокөлік жұмыс істеп тұрған кезде ғана қуатқа ие болады
Бейне: Arduino автокөлік дисплейі: 7 қадам (суреттермен)
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:25
Мен Adafruit-тен 7 дюймдік TFT СКД, Teensy 3.6, Freematics OBD-II I2C адаптері мен Amazon-да тапқан кейбір резервтік датчиктерді қолдана отырып, борттық диагностикаға (OBD-II) негізделген дисплей жасадым. Дисплейде екі бет бар: бірі менің Honda Accord автокөлігімен жүргенде, екіншісі кері бағытта болғанда.
Менің автокөлігім қозғалыс кезінде RPM, MPH, қозғалтқыштың жүктеме пайызы, аккумулятордың кернеуі, салонның температурасы және қозғалтқыштың салқындатқышының температурасы көрсетіледі (егер бұл қажет болмаса, көліктің басқа статистикасын көрсетуге болады).
Менің көлігім кері бағытта болған кезде, Arduino IDE үйлесімді Teensy 3.6 менің машинамның анимациялық нүктелік кескінін интернеттен тауып оқиды, көрсетеді және резервтік сенсорларды оқиды. Төрт сенсордың әрқайсысының футтық қашықтықтары бар, сонымен қатар объектінің көлікке қаншалықты жақын орналасқандығына байланысты түсі өзгеретін көліктің артындағы анимациясы бар (тек жасыл - <5 фут, жасыл және сары - <2.6 фут, жасыл, сары, және қызыл <1 фут) дегенді білдіреді.
Ақырында мен түнде дисплейді күңгірттеу мүмкіндігін қостым.
Соңғы нәтиже керемет көрінеді және менің көлігімде өте жақсы жұмыс істейді. Мен тіпті оны орталық консольге орнатуды аяқтадым, бұл мүлдем басқа процесс, мен бұл нұсқаулыққа кіре алмаймын. Мен осы LCD дисплейді жасау үшін пайдаланған бөліктердің тізімі төменде.
1) Freematics OBD -II адаптері - $ 35
2) резервтік сенсорлар - $ 15
3) 7 дюймдік TFT СКД дисплейі - 38 доллар
4) SPI негізіндегі LCD дисплей драйвері - $ 35
5) Teensy 3.6 - 30 доллар
6) Level Shifter - $ 4
7) 74HC125 Tri State Buffer IC -2 пакет үшін 6 доллар (бұл чиперді басқа жерден табуға болатынына сенімдімін)
8) MicroSD картасы> = 1 ГБ - $ 4
9) Сымдар, конденсаторлар және резисторлар.
10) LP3470-2.93 Қуатты қалпына келтіру IC - $ 2
11) (міндетті емес): DS18B20 температура сенсоры - $ 8
12) (міндетті емес): OBD -II Splitter - $ 10
13) (міндетті емес): 5 қорапқа сақтандырғыш сымын қосыңыз - $ 8
1 -қадам: резервтік сенсорларды оқу
Бұл қадам қиын, себебі бұл резервтік датчиктер трансивермен, содан кейін жоғарыдағы суретте көрсетілгендей шағын СКД -мен байланысады. Мен олардың дисплейінен құтылудың және менікін қолдануды қалаймын. Біраз гуглингтен кейін (кері тұрақ сенсорларын бұзу) тапқан веб -сайттың көмегімен мен трансивер СКД экранына жіберетін меншікті байланыс хаттамасын оқи алдым. Белгілі бір себептермен байланыс протоколы I2C, UART, CAN, USB және т. Егер сіз менің кодты қолданатын болсаңыз, мен сенсорлар үшін арнайы жазылғандықтан, жоғарыда мен байланыстырған жинақты сатып алуды ұсынамын.
Олар берген СКД ажыратпас бұрын мен трансивер мен СКД қосылатын үш сымды тексердім. +5В қызыл сым, жерге қара сым және көк сым болды. Көк сым мен жерге осциллографты қосқаннан кейін мен жоғарыда көрсетілген суретке ұқсас ізді көрдім, бірақ дәл емес (мен жоғарыдағы сілтеменің веб -сайтынан суретті қолдандым). Менің ізімнің ұзақтығы өте жоғары болды, содан кейін ұзақтығы 17 қысқа. Бастау битінен кейінгі 0-5 биттерде пайдалы ақпарат болмады. 6-8 разрядтар A, B, C немесе D датчиктеріне сәйкес келеді. 9-16 биттер метрдегі ұзындыққа сәйкес келеді. Мен сенсорларды оқитын және деректерді сериялық консоль арқылы шығаратын Arduino IDE эскизін қостым.
2 -қадам: Нүктелік кескінді құру және оны MicroSD картасына енгізу
Мен GIMP деп аталатын фотосуреттерді өңдеуге арналған ақысыз бағдарламалық жасақтаманы пайдаланып, көлігімнің суретін жоғарыдан қиып алдым. Содан кейін мен кескінді «car.bmp» деп аталатын 24 биттік нүктелік кескін ретінде экспорттадым, ол 110 пиксельден 250 пиксельге дейін. Мен мұны microSD картасына жүктедім және microSD картасын Teensy 3.6 микроконтроллеріне қойдым.
UNO орнына Teensy 3.6 -мен барудың негізгі себептері - Teensy -дің SD картасын оқу жылдамдығы және RA8875 дисплей драйвері арқылы суретті көрсету. UNO көмегімен процесс шамамен 8 секундқа созылды, ал Teensy 3.6 1,8 секундқа созылды.
3 -қадам: жабдықты қосу
Adafruit -те RA8875 деп аталатын IC басқаратын шынымен жақсы көрінетін 7 дюймдік TFT LCD бар. Мен бұл дисплей мен дисплей драйверін екі себеп бойынша таңдадым. Біріншіден, дисплейге алдын ала жазылған үлкен кітапханалар бар. Екіншіден, дисплей драйвері сөйлесе алады. кез келген микроконтроллер SPI арқылы, яғни микроконтроллерді RA8875 -ке қосатын сымдар көп емес.
Бұл орнатудың екі кемшілігі бар. Біріншіден, SD картасы сияқты SPI негізіндегі кез келген құрылғыны пайдаланғыңыз келсе, 74HC125 IC үш буферлік IC буферін пайдалануды қажет ететін Adafruit RA8875 тақтасы бар аппараттық қате бар. Аппараттық қатені толық түсіну үшін келесі форумды оқыңыз. Екіншіден, суреттерді СКД -ге жіберуге кететін салыстырмалы ұзақ уақыт. Сондай -ақ, суреттің СКД -ге жіберілуіне қажет ұзақ уақыт микроконтроллерлердің сағат жылдамдығымен және дисплей драйверіне жіберілуге тиісті деректердің үлкен көлемімен шектелген SPI қосылымына байланысты. сымдар өте аз.
Мен Fritzing схемасын жасадым, сондықтан бұл дисплейді жасағысы келетін кез келген адам Teensy 3.6 -дегі түйреуіштерді қосуды оңай оқи алады. Мен төменде.frz файлын қостым. Таңбаланбаған жалғыз екі компонент - 1F 16В электролиттік конденсатор және 100 мкФ керамикалық конденсатор болып табылатын конденсаторлар. Мен оларды Teensy микроконтроллерінің қуаты тұрақты DC +5V тұрақты екеніне көз жеткізу үшін енгіздім және кернеудің көтерілуі жоқ (қажет емес шығар, бірақ мен оларды енгіздім, себебі автокөліктің кернеуі батареядағы жүктемеге байланысты тез өзгеруі мүмкін).
Компоненттер туралы айту керек бірнеше нәрсе. Біріншіден, деңгей ауыстырғыш кез келген 5В сигналды қабылдайды және оны 3.3V Teensy 3.6 қауіпсіз кернеуге айналдырады. Бұл OBD I2C адаптеріне, сондай -ақ резервтік сенсорлық трансиверге қажет. Екіншіден, жасөспірімдердің I2C желілері 4,7 кОм тартылатын резисторларды қажет етеді. Үшіншіден, «түнгі сым» (күңгірттеу сымы) мен «қосалқы сым» қосатын төрт резистор 12В-13В сигналдарын шамамен 2,5-3В сигналға дейін төмендету үшін кернеу бөлгіш ретінде қызмет ету үшін қажет.
22.07.18 ЖАҢАРТУ: Мен OBD-I2C модулінің ішкі температура сенсоры өте таңқаларлық сандар шығаратынын таптым. Кейде бұл жұмыс істейді, бірақ көбінесе модуль 400 градустан жоғары температураны шығарады. Осыған байланысты мен өзімнің ds18b20 температура датчигін қосуды шештім. Сіз мұнда температура сенсорының кез келген түрін қолдана аласыз, бірақ сізге Arduino кодын өңдеу қажет болады.
3/1/19 ЖАҢАРТУ: Teensy 3.6 өте суық болған кезде басталмайды. Мен оның дұрыс жүктелгеніне көз жеткізу үшін қалпына келтіру тізбегін қостым.
4 -қадам: RA8875 дисплей драйвері және графикалық дизайн
RA8875 дисплей драйверінде Adafruit_RA8875 деп аталатын кітапхана бар, мен оны бірінші және екінші бетте көрінетін пішіндерді жасау кезінде қолдандым. RA8875 кітапханасы тек сызықтар, тіктөртбұрыштар, дөңгелектелген тіктөртбұрыштар, үшбұрыштар, эллипстер мен шеңберлер жасай алады, сондықтан графиканы күрделі пішіндерді жасау үшін ақылды түрде жобалау қажет. Мысалы, бірінші беттегі сұр сақина - бұл үлкенірек диаметрі бар толық сұр шеңбер, одан кейін кішірек диаметрлі қара қара шеңбер. Сондай -ақ, резервтік сенсор парағының бір кішкене бөлігінде көпбұрыш пішінін беретін 2 үшбұрыш бар. Мен мұны резервтік сенсор бетінің жеке бөлімінің түсін өзгерту үшін жасадым. Дисплейге арналған Arduino файлында үшбұрыштар мен басқа фигуралардың қай жерде болғанын қадағалап отыратын нүктелер жиыны бар.
Мен бұл керемет веб-сайтты RGB565 түстерін таңдау және оларды эскизде анықтау үшін қолдандым, сондықтан мен Adafruit_RA8875 кітапханасында алдын ала анықталған әдепкі емес түстерді қолдана аламын.
Қаріптер тұрғысынан, Adafruit_RA8875 кітапханасы қаріптерді Adafruit_GFX кітапханасын пайдалануға мүмкіндік беретін кітапхана бөліміне түсініктеме бермейінше тек біреуін қолдайды. Мен төменде өзгертілген Adafruit_RA8875 кітапханасын қостым. Мен кодтың бірнеше жолын түсіндірдім, содан кейін қаріптерді Adafruit_GFX кітапханасында қолдана алдым. Сонымен қатар, мен осы жобада қолданған 7 сегментті қаріпті қолдану үшін, мен Adafruit_GFX кітапханасындағы қаріптер қалтасында тұрған «FreeSevenSegNumFont.h» файлына көз жеткізіңіз.
5 -қадам: Эскизді жүктеу
Эскизді Teensy 3.6 -ге жүктеу үшін сізге Teensyduino орнату қажет болады. Содан кейін сізге Adafruit_RA8875 және Adafruit_GFX кітапханаларын жасөспірімдер кітапханасының орнына ауыстыру қажет болады (құжаттардағы сіздің әдеттегі орныңыз емес). Mac жүйесінде маған Arduino қосымшасындағы белгішені тінтуірдің оң жақ түймесімен нұқып, содан кейін/Contents/Java/hardware/teensy/avr/library өтуге тура келді. Терезелерде бұл сіздің x86, Arduino бағдарламалық файлдарындағы C дискіде, содан кейін аппараттық қалтада екеніне сенімдімін. Мұны жасағаннан кейін сізге Arduino қосымшасындағы нобай орнын өзгерту қажет болады, оны жасөспірімдерге арналған кітапханаларыңыздың қалауы бойынша (мысалы, /Applications/Arduino.app/Contents/Java/hardware/teensy/avr) өзгертуге болады.
22.07.16 ЖАҢАРТУ: Мен жоғарыда айтқан ішкі температура сенсоры мәселесіне байланысты DS18B20 модульдік температура сенсорын орнатуға тура келді. Сіз zip файлында 4 arduino эскизін көресіз. OBD-II I2C модулінің ішкі температура датчигін қолданғыңыз келсе display_code нобайын жүктеңіз. Егер мен жоғарыда байланыстырған DS18B20 модулін қолданғыңыз келсе, display_code_with_new_temperature_sensor эскизін жүктеңіз.
17.11.17 ЖАҢАРТУ: Мен DS18B20 температурасын 185 Фаренгейт шығаратын, суық мезгілде дисплей мүлдем қосылмайтын және дисплей күңгірттенген кезде пиксель дұрыс түске түспейтін DS18B20 бағдарламалық жасақтамасындағы бірнеше қателерді жойдым.
Содан кейін, жоғарыдағы суретті қолданыңыз, бұл сіздің жас кезіңіздегі суреттерге сәйкес келеді. Мен жасөспірімдерді 240 МГц-ке дейін үдеткішпен қарау I2C OBD-II адаптерінің жасөспірімдермен байланысуға мүмкіндік бермейтінін байқадым. Соңында жүктеуді нұқыңыз.
Мен arduino эскиз файлдарына өте кең түсініктемелер жаздым. Бағдарламалық жасақтама қалай жұмыс істейтіні туралы түсініктеме алу үшін осында қараңыз. Барлық сұрақтар бойынша маған хабарласыңыз. Мен оларға мүмкіндігінше жауап беруге тырысамын. Іске сәт!
6 -қадам: СКД корпусын 3D басып шығару
Мен 7 дюймдік дисплейді қорғау үшін 3D басып шығарылған СКД үстіңгі және астыңғы қақпағын жасадым. Мен. IPT өнертапқышының бөлік файлдарын, сондай -ақ. STL файлдарын тіркедім.
Мен сондай -ақ backup_sensor_ring.ipt деп аталатын бөлікті енгіздім, бұл сақина мен жоғарыда байланыстырылған резервтік датчиктерге сәйкес келеді. Менің көлігімде Amazon-да сатып алған резервтік сенсорлар үшін тым үлкен болатын алдын ала бұрғыланған резервтік сенсор тесіктері болды, сондықтан резервтік сенсорларға сәйкес келетін сақина жасау керек болды. Егер сіз бамперіңізге жинақтағы дөңгелек бұрғымен бұрғылайтын болсаңыз, сізге бұл бөлшек қажет болмайды.
7-қадам: OBD-II портын бөлу, сондықтан Arduino автокөлік жұмыс істеп тұрған кезде ғана қуатқа ие болады
Мен дисплейді орнатқаннан кейін көп ұзамай дисплей үнемі қосулы екенін түсіндім, тіпті машина өшіп тұрса да. OBD-II түйреуішіне қарап, мен OBD-II коннекторына 12В электр желісі әрқашан тікелей батареяға қосылғанын анықтадым.
Осыны айналып өту үшін мен OBD-II сплиттерін сатып алдым, бөлгіштегі екі қосқыштың біреуіндегі 16-штырмадағы сымды кесіп алдым, содан кейін сол сымды тізбек сымына жалғадым.
Содан кейін мен мультиметрді қолдана отырып, жүргізушінің бүйіріндегі сақтандырғыш қорапшасына барып, сақтандырғышты тексердім, ол кілт тұтануға айналғаннан кейін қандай сақтандырғыштың қуат алғанын білу үшін.
Ақырында, мен сақтандырғышқа электр сымын қостым, сондықтан дисплей енді менің машинам жұмыс істеп тұрған кезде ғана қосылады. Көлігіңізге электр тізбегін қалай дұрыс қосу керектігін зерттеңіз. Мен бұл youtube оқулығын жақсы деп таптым.
Ұсынылған:
Автокөлік симуляторы Arduino педальдары: 7 қадам (суреттермен)
Автокөлік симуляторы Arduino Pedals: Менде автокөлік тренажерын құру жобасы бар, мен бір мақсат-нағыз жарыс машинасында отырғандай сезіну. Бұл нұсқаулықта мен өз педальдарымды автокөлік тренажерына қалай салу керектігін түсіндіремін. Әрине, сіз осындай заттарды сатып ала аласыз, бірақ мен қалаймын
Жаңадан бастаушының автокөлік соқтығысуын болдырмайтын автокөлік: 7 қадам
Жаңадан бастаушының автокөлік соқтығысуын болдырмайтын автокөлік: Сәлеметсіз бе! Менің жаңадан үйренетін нұсқаулыққа қош келдіңіз, соқтығысуды болдырмайтын және GPS навигациясы бар өздігінен жүретін роботты автокөлікті қалай жасауға болады. Жоғарыда роботты көрсететін YouTube бейнесі бар. Бұл нағыз автономияны көрсетудің үлгісі
Университет қалашығының студенттерге арналған автокөлік картасы: 7 қадам (суреттермен)
Университет қалашығының студенттерге арналған автокөлік картасы: Көптеген студенттер университеттің кампусында қайда тұруға болатынын ойлайды. Бұл мәселені шешу үшін мен Юта штатының университетінің кампусының негізгі алаңының жарықтандырылған автокөлік картасын жасадым. Карта студенттерге автотұрақтың қандай мүмкіндіктері бар екеніне тез қарауға арналған
Автокөлік Raspberry Pi: 10 қадам (суреттермен)
Raspberry Pi Car Mount: Мен өз көлігіме монитор мен Raspberry PI орнатудың жолын іздедім. Менің жағдайыма желіде ештеңе сәйкес келмейтін сияқты, сондықтан мен осы 3D басып шығарылған қондырғыны ойлап таптым. Ол 3D басып шығарылған негізді, түрлі аппараттық құралдарды (бұрандалар, ілмектер және т.б.) және сатып алынған планшетті қолданады
Arduino мен TFT дисплейі арқылы нақты уақытты қалай жасауға болады - 3,5 дюймдік TFT дисплейі бар Arduino Mega RTC: 4 қадам
Arduino мен TFT дисплейі көмегімен нақты уақытты қалай жасауға болады | 3,5 дюймдік TFT дисплейі бар Arduino Mega RTC: Менің Youtube каналыма кіріңіз. Кіріспе:- Бұл жазбада мен 3,5 дюймдік TFT сенсорлы СКД, Arduino Mega көмегімен «Нақты уақыттағы сағат» жасаймын. 2560 және DS3231 RTC модулі… .Бастамас бұрын… бейнесін менің YouTube каналымнан қараңыз .. Ескерту:- Егер сіз Arduin қолдансаңыз