Мазмұны:

Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтайды: 9 қадам (суреттермен)
Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтайды: 9 қадам (суреттермен)

Бейне: Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтайды: 9 қадам (суреттермен)

Бейне: Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтайды: 9 қадам (суреттермен)
Бейне: "Arduino негізіндегі көлікке арналған тұрақ сенсорын әзірлеу" 2024, Қараша
Anonim
Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтай алады
Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтай алады
Ардуино жаңа автокөлік стерео көмегімен CAN рульдік түймелерін сақтай алады
Ардуино жаңа автокөлік стерео көмегімен CAN рульдік түймелерін сақтай алады
Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтай алады
Ардуино арнайы автокөлік стерео көмегімен CAN рульдік түймелерін сақтай алады

Мен Volvo V70 -02 автокөлігінің түпнұсқалық стереоын жаңа стереоға ауыстыруды шештім, осылайша mp3, bluetooth және хэндсфри сияқты нәрселерді тамашалай аламын.

Менің көлігімде стерео үшін рульдік басқару элементтері бар, мен әлі де қолданғым келеді. Мен бұл проблема болады деп ойламадым, себебі нарықта менің көлігіме сәйкес келетін бірнеше адаптер бар. Алайда мен көп ұзамай олардың жоқ екенін білдім! (V70 адаптерлерінде CAN протоколының сәл өзгеше болуына байланысты -02 автокөліктерінде проблемалар болуы мүмкін сияқты.)

Сонымен не істеу керек? Ескі стерео сақталсын ба? Жұмыс істемейтін түймелермен өмір сүресіз бе? Әрине жоқ! Егер нарықта жұмыс істейтін адаптер болмаса, біз оны жасауымыз керек!

Бұл нұсқаулықты рульдік дөңгелектің түймелері CAN шинасы арқылы байланысатын көліктерге қолдануға болады (кейбір бейімделулермен).

1 -қадам: Стереоға командаларды қалай жіберуге болатынын біліңіз

Стереоға командаларды қалай жіберуге болатынын біліңіз
Стереоға командаларды қалай жіберуге болатынын біліңіз
Стереоға командаларды қалай жіберуге болатынын біліңіз
Стереоға командаларды қалай жіберуге болатынын біліңіз

Біріншіден, стерео қашықтан енгізудің қандай түрін күтетінін білу керек. Әдетте өндірушілер сізге бұл туралы айтпайды және сізде кері инженерия үшін жұмыс істейтін қашықтан басқару пультіне қол жетімді емес шығар.

Менің жаңа стерео (Кенвуд) пульті бір сымнан тұрады, мен оның қалай жұмыс істейтіні туралы ешнәрсе біле алмадым. Сонымен қатар, қашықтан енгізу үшін 3,5 мм ұясы бар. Мен де бұл туралы ештеңе біле алмадым. Бірақ басқа брендтер үшін 3,5 мм ұясы туралы кейбір ақпарат бар, олар әр түрлі командалар ұшы мен жеңі арасында (және міндетті түрде сақина мен жең арасында) белгілі бір қарсылықты қолдану арқылы анықталады. Мысалы, https://forum.arduino.cc/index.php?topic=230068.0. Сондықтан мен сынап көруге шешім қабылдадым, ол тақтаймен, резисторлармен және стереоға қосылған 3,5 мм штепсельмен жабдықталған. Бастапқыда ештеңе танылмады, бірақ стерео «оқу режимі» мәзіріне ие және әр түрлі қарсылықты қолдану кезінде командаларды сәтті орнатуға болады. Жетістік!

Алайда мен кейіннен бұл жерде қателескенімді білдім: стерео үйренген командалардың барлығы бірдей жұмыс істемейді. Мысалы, Оқу режимінде 30 кОм табылды, бірақ кейін жұмыс істемеді, мен орнатқан кейбір командалар үшін қарсылық айырмашылығы соншалықты аз болды, кейінірек қате команда іске қосылды.

Мен сізге резисторлар мен қосқыш түймелері бар тақтаны қолданғыңыз келетін барлық қашықтағы командалар үшін пайдалануды және олардың барлығы жұмыс істейтінін тексеруді ұсынамын.

Егер сіздің автокөлік стерео дыбысты дәл осылай қабылдай алмаса, онда сіз бұл шешімді бейімдеу үшін оның қалай жұмыс істейтінін анықтауыңыз керек. Егер сіз мүлде түсіне алмасаңыз, онда сізде мәселе бар.

2 -қадам: CAN автобусына қайда қосылуға болатынын біліңіз

CAN автобусына қайда қосылуға болатынын біліңіз
CAN автобусына қайда қосылуға болатынын біліңіз

CAN автобусына қосылу үшін жақсы орын табу керек. Сіз CAN арқылы байланысатын ескі стереоды ауыстыратындықтан, оны стереоның артында табуға болады. CAN шинасы бұралған сымдардан тұрады (CAN-L және CAN_H). Сіздің машинаңызға сенімді болу үшін электр схемасын қараңыз.

3 -қадам: CAN хабарламаларының кері инженериясы

CAN хабарламаларының кері инженериясы
CAN хабарламаларының кері инженериясы

Егер Google сізге CAN хабарламаларын тыңдау керектігін айтпаса, сізге CAN автобусына қосылып, кері инженерия жасау қажет болады. Мен Arduino Uno мен CAN қалқанын қолдандым. (CAN қалқаны сізге қажет емес, кейінірек көресіз, оның орнына нан тақтасында арзан компоненттерді қолдануға болады.)

Көлікке қосылу кезінде қандай жылдамдықты қолдану керектігін білу үшін Google -ге хабарласыңыз. (Әдетте сіз жоғары жылдамдықты және төмен жылдамдықты CAN желісі бар екенін білесіз. Сіз төмен жылдамдықты желіге қосыласыз.)

Сондай -ақ, Arduino -ны барлық CAN хабарламаларын сериялық интерфейске тіркеу үшін бағдарламалау қажет, осылайша оларды компьютердегі журнал файлына сақтауға болады. Стандартты Arduino IDE деректерді журнал файлына сақтамайды, бірақ сіз мысалы: Оның орнына шпатлевка.

Бағдарламаны жазуды бастамас бұрын CAN_BUS_Shield кітапханасын орнату қажет.

Бұл сіздің бағдарламаңызды бастауға көмектесетін бірнеше жалған код:

орнату()

{init сериялық қосылу init CAN кітапханасы} цикл () {егер CAN хабарламасы қабылданса {read CAN message format log log жазбаны сериялық журналға жазу жазбасы}}

Кеңестер:

CAN кітапханасының функциясына кіру үшін MCP_CAN класының данасын қолданасыз:

MCP_CAN m_can;

Бастауға болады:

while (m_can.begin ()! = CAN_OK)

{кешіктіру (1000); }

CAN хабарламаларын тексеріңіз және оқыңыз:

while (m_can.checkReceive () == CAN_MSGAVAIL)

{// CAN идентификаторын, хабарлама ұзындығын және хабар деректерін алу m_can.readMsgBufID (& m_canId, & m_msgLen, m_msgBuf); // Мына жерде хабар деректерімен бірдеңе жасаңыз}

Егер сізге қосымша көмек қажет болса, менің бағдарламамның сілтемесін кейінірек таба аласыз. CAN қалқан кітапханасы сонымен қатар мысалды қамтиды. Немесе ұқсас қадамды қамтитын mviljoen2 нұсқаулығын тексеріңіз.

Алдымен сізге деректерді сүзуге көмектесетін анықтама файлы қажет болады. Тұтануды радио режиміне ауыстырып, барлығын бірнеше минут бойы ешбір түймеге тигізбестен тіркеңіз.

Содан кейін түймелердің әрқайсысы үшін журналды бастаңыз, түймені басыңыз және тіркеуді тоқтатыңыз.

Аяқтағаннан кейін кандидаттарды табу үшін сілтеме журналындағы барлық нәрсені түйме журналдарынан сүзу қажет. Мен әлі де көптеген хабарламалар қалғанын білдім, сондықтан мен көбірек журналдар жасадым, содан кейін «А командасының кандидаттары барлық А-файлдарында және сілтеме файлдарының ешқайсысында болмауын» талап етті. Бұл маған тек бірнеше мүмкіндіктерді сынап көруге мүмкіндік берді.

Журналдарда көптеген хабарламалар болады, сондықтан сізге бұл үшін қандай да бір бағдарлама жазу немесе Excel бағдарламасын қолдану қажет болады. (Мен өз қажеттіліктерім үшін өте қатаң кодталған шарттары бар бағдарламаны қолдандым, сондықтан сіз қолдана алатын бағдарламаны ұсына алмаймын деп қорқамын.)

Ескерту: Сіз батырманың әрқашан бірдей хабарлама беретініне сенімді бола алмайсыз. Кейбір биттерде артатын есептегіштер болуы мүмкін және т.

Егер сізде Volvo V70 -02 болса, бұл сізге қажет:

  • Хабар идентификаторы: 0x0400066Byte0: 0x00, 0x40, 0x80 немесе 0xc0 (маңызды емес)
  • Байт1: 0х00 (маңызды емес)
  • Байт2: 0x00 (маңызды емес)
  • Байт3: 0x00-0x07 (маңызды емес)
  • Byte4: 0x1f (маңызды емес)
  • Байт 5: 0x40 (маңызды емес)
  • Байт 6: 0x40 (маңызды емес)
  • Byte7: Түймешік идентификаторы: 0x77 = дыбыс деңгейін жоғарылату, 0x7b = дыбыс деңгейін төмендету, 0x7d = келесі жол, 0x7e = алдыңғы жол.

Сіз пәрмендерді таптыңыз деп ойласаңыз, бағдарламаны тек қызықты хабарларды тіркейтін етіп өзгерту жақсы болар еді. Дұрыс хабарламаларды анықтағаныңызды тексеру үшін түймелерді басқан кезде сериялық журнал терезесіне қараңыз.

4 -қадам: жабдықтың прототипі

Жабдықтың прототипі
Жабдықтың прототипі

Сіздің аппараттық құралдарыңыз мыналарды білуі керек:

  1. CAN шинасына түскен командаларды анықтаңыз
  2. Стереоға басқа форматтағы командаларды жіберіңіз

Егер сізде жеткілікті орын болса, сіз бірінші бөлікке Arduino мен CAN қалқанын қолданып, екіншісіне қосымша жабдықты қоса аласыз. Дегенмен, кейбір кемшіліктер бар:

  • CAN қалқанының құны
  • Өлшемі
  • Arduino қуат көзі егер ол сіздің 12В автокөліктеріңізге тікелей қосылса бақытты болмайды (ол жұмыс істейтін шығар, бірақ оның өмірі қысқаруы мүмкін).

Сондықтан оның орнына мен келесі әрекеттерді қолдандым:

  • Atmega 328, «Arduino миы». (Кейбір нұсқалар бар, Arduino Uno нұсқасына тең нұсқаны алыңыз. Сіз оны Arduino жүктеушісімен немесе онсыз сатып ала аласыз.)
  • Сағат сигналына арналған 16 МГц кристалл + конденсаторлар.
  • MCP2551 CAN трансивері.
  • MCP2515 CAN контроллері.
  • TSR1-2450, 6,5-36 В-ты 5 В-қа түрлендіреді. (Прототипте қолданылмайды, себебі бағдарламалық қамтамасыз ету қуат көзіне мән бермейді.)
  • Стереоға командаларды жіберу кезінде қолданылатын CD4066B қосқышы.
  • Бір -екі резистор. (Мәндерді Eagle схемасынан кейінгі қадамда табуға болады.)

Бұл конфигурацияның жақсы жағы - ол Arduino және CAN қалқан кітапханасымен толық үйлесімді.

Егер сіз төрт түймеден артық жұмыс жасағыңыз келсе, CD4066B емес, басқа нәрсені қолданғыңыз келуі мүмкін. CD4066B төрт коммутатор ретінде сипатталуы мүмкін, олардың әрқайсысы Atmegas GPIO түйреуіштерінің бірімен басқарылады. Әр сөндіргішке стерео кіріс ретінде қолданылатын қарсылықты басқаруға болатын резистор қосылған. Сондықтан оны төрт түрлі пәрменді жіберу үшін оңай пайдалануға болады. Егер олар біріктірілсе, қосымша қарсылық мәндерін алуға болады. Дәл осы жерде мен айтқан қате шығады. Менде төрт түйме бар, бірақ мен олардың екеуін ұзақ және қысқа басу арқылы алты түрлі команданы беруді жоспарладым. Бірақ соңында мен алты жұмыс комбинациясын беретін резисторлардың комбинациясын таба алмайтынымды білдім. Оның орнына аналогтық шығыс сигналын стереоға (3,5 мм ұшы) жалғауға болар еді. (Назар аударыңыз, Atmega -де нақты аналогтық шығыс жоқ, сондықтан қосымша жабдық қажет болады.)

Тексеру мақсатында мен прототипіме қосылу үшін қарапайым «машина мен стерео» тренажерін жасадым. Бұл жөндеуді жеңілдетеді, егер сіз өзіңіздің көлігіңізде және бағдарламада отыруды ұнатпасаңыз, мен оны ұсына аламын.

Прототип суреттің төменгі тақтасында көрсетілген. Электрмен жабдықтау, бағдарламалау және сериялық тіркеу үшін ол Arduino Uno -ға қосылады, онда Atmega чипі алынып тасталды.

Үстіңгі тақта - бұл прототипті бастапқы сынау үшін қолданылатын автомобиль + стерео -тренажер.

Прототип + тренажер келесідей жұмыс істеуге арналған:

  • Тренажер тақтасындағы қосқыш түймелерінің бірін басыңыз. (Бұл сіздің руль дөңгелегінің түймелері.)
  • Тренажер бағдарламасы батырманы басуды анықтаған кезде, түйме басылғанша, әрбір 70 мс сәйкес CAN хабарламасын жібереді. (Себебі мен бұрын алған бөренелер менің көлігімде осылай жұмыс істейтінін көрсеткен.) Ол сонымен қатар автобустағы басқа қозғалысты модельдеу үшін көптеген «керексіз» хабарламаларды жібереді.
  • CAN хабарламалары CAN шинасында жіберіледі.
  • CAN хабарламалары прототип арқылы қабылданады.
  • MCP2515 хабарлама идентификаторына негізделген барлық байланысты емес хабарларды шығарады.
  • MCP2515 өңделуі керек хабарды алған кезде, ол хабардың кезекке қойылғанын көрсетеді.
  • Atmega хабарламаны оқиды және қай батырманы белсенді деп санауға болатынын шешеді.
  • Atmega сонымен қатар соңғы хабарлама қашан алынғанын қадағалайды, белгілі бір уақыттан кейін түйме босатылды деп есептеледі. (CAN хабарламалары түйменің басылғанын немесе босатылғанын білдірмейді, тек оның төмен екенін көрсетеді.)
  • Егер түйме белсенді деп саналса, онда CD4066B бір немесе бірнеше қосқыштары іске қосылады.
  • Тренажер (енді сіздің стерео рөлін атқарады) ұш пен жең арасында қарсылық бар екенін анықтайды. (Ұш 3,3В -қа және резистор арқылы аналогты кіріс түйреуішіне қосылады. Егер ешқандай пәрмен белсенді болмаса, бұл түйін 3,3В -ты оқиды, егер пәрмен белсенді болса, мән төмендейді және пәрменді анықтайды.
  • Пәрмен жұмыс істеп тұрғанда, тиісті жарық диодты қосылады. (Менде екі түйме үшін әр түрлі ұзақ / қысқа басуды қолдануды жоспарлағандықтан, алты жарық диодтары бар.)

Жабдықтың прототипі туралы толығырақ ақпарат алу үшін Eagle схемасын келесі қадамнан қараңыз.

Тренажер тақтасының аппараттық құралы туралы қосымша мәліметтер:

  • 16 МГц кристалл
  • 22 пФ конденсаторлар
  • Жарықдиодты резисторларды жарықдиодты қасиеттерге қарай таңдау керек
  • A7 және 3.3V қосылған резистор, мысалы, таңдаңыз. 2kOhm (сыни емес).
  • MCP2551 және MCP2515 қосылған резисторлар жоғары / төмен қарай тартылады. Мысалы, таңдаңыз 10 кОм.

(Немесе қаласаңыз, тренажердің «БОЛАДЫ бөлігі» үшін CAN қалқанын қолдануға болады.)

Жабдықты жобалау кезінде Atmega түйреуіштерінің Arduino түйреуіштерімен қалай салыстырылатынын білу маңызды.

(Қандай да бір жарықдиодты CD 4066B -ке тікелей қоспаңыз, ол тек төмен токты қабылдай алады. Мен шығымды алғаш рет тексергенде мен чиптің пайдасыз болып қалатынына тырыстым. Жақсы жері - мен олардың екеуін сатып алған едім. өте арзан.)

5 -қадам: сақтандырғышты бағдарламалау

Мүмкін сіз алдыңғы қадамда MCP2515 сағат сигналын шығаратын прототиптің жеке компоненттері жоқ екенін байқаған боларсыз. Себебі, біз қолдана алатын Atmega сағаты ретінде 16 МГц кристалы бар. Бірақ біз оны MCP2515 -ке тікелей қоса алмаймыз және әдепкі бойынша Atmega -де сағаттан тыс сигнал жоқ.

(Егер қаласаңыз, бұл қадамды өткізіп жіберіп, оның орнына қосымша сағатты қосуға болады.)

Дегенмен, біз GPIO түйреуіштерінің бірінде сағатты өшіру сигналын қосу үшін «сақтандырғыш бағдарламалау» деп аталатын нәрсені қолдана аламыз.

Алдымен сізге Arduino IDE қолданатын «board.txt» атты файлды табу керек. Сізге Arduino Uno жазбасын көшіру, оған жаңа атау беру және low_fuses мәнін өзгерту қажет болады.

Менің жаңа тақтайшам келесідей:

################################################################################################################################# #############Arduino Uno негізінде#Өзгерістер:#төмен_ сақтандырғыштар 16 МГц сағатын қосу үшін 0xff -тен 0xbf -ге өзгертілді#Atmega PB0/pin 14 = Arduino D8

clkuno.name = Сағатты өшіру (Arduino Uno)

clkuno.upload.protocol = arduino clkuno.upload.maximum_size = 32256 clkuno.upload.speed = 115200 clkuno.bootloader.low_fuses = 0xbf clkuno.bootloader.high_fuses = 0xde clkuno.bootloader.extended_toots cluno.bootloader.file = optiboot_atmega328.hex clkuno.bootloader.unlock_bits = 0xff clkuno.bootloader.lock_bits = 0xcf clkuno.build.mcu = atmega328p clkuno.build.f_cpu = 16000000L clkuno.build.core.core

##############################################################

Назар аударыңыз, сағаттың шығуы оның басқару битін 0 -ге орнату арқылы іске қосылады.

Тақтаның конфигурациялық файлында жаңа тақтаны құрғаннан кейін сізге Atmega -ге жаңа жүктеуші жүктеу керек болады. Мұны істеудің әртүрлі әдістері бар, мен https://www.arduino.cc/en/Tutorial/ArduinoToBreadboard бөлімінде сипатталған әдісті қолдандым.

Сіз мұны жасағаннан кейін, Atmega бағдарламасын жүктеген кезде Arduino Uno емес, жаңа тақта түрін таңдауды ұмытпаңыз.

6 -қадам: Бағдарламалық қамтамасыз ету

Бағдарламалық қамтамасыз ету
Бағдарламалық қамтамасыз ету

Кейбір бағдарламалық қамтамасыз етуді қосу арқылы мылқау аппаратты ақылды ету уақыты келді.

Міне, прототипке арналған жалған код:

lastReceivedTime = 0

lastReceivedCmd = none cmdTimeout = 100 setup () {D4-D7 бақылау түйреуіштерін конфигурациялау түйреуін қосу CAN сүзгісін CAN орнатуға болады} цикл () {егер бақылау түймесін қалпына келтіру (егер CAN хабарламасы қабылданса) {әр түйме пәрмені үшін {егер CAN хабары тиесілі болса) түймешік пәрмені {lastReceivedTime = now lastReceivedCmd = cmd}}} егер қазір> lastReceivedTime + cmdTimeout {lastReceivedCmd = none} әр түйме пәрмені үшін {if lastReceivedCmd - түйме пәрмені болса, {set command pin output = on} else {set pin pin output = off }}}

cmdTimeout шығарылған соңғы белсенді түймені қарастырғанша қанша уақыт күту керектігін шешеді. CAN хабарлама пәрмендерінің командалары шамамен әрбір 70 мс жіберілетіндіктен, ол маржадан үлкен болуы керек. Бірақ егер бұл үлкен болса, артта қалу тәжірибесі болады. 100 мс жақсы үміткер сияқты.

Бірақ күзетші деген не? Бұл апат кезінде бізді құтқара алатын пайдалы шағын аппараттық мүмкіндік. Дыбыс деңгейін жоғарылату пәрмені белсенді кезде бағдарламаның істен шығуына әкелетін қате бар деп елестетіп көріңіз. Содан кейін біз максималды дыбыс деңгейінде стереоға ие боламыз! Бірақ егер күзетші белгілі бір уақытқа қалпына келтірілмесе, ол күтпеген жағдай болды деп шешеді және жай ғана қалпына келтіреді.

жарамсыз орнату ()

{// wdt_enable (WDTO_250MS) циклі үшін ең көбі 250 мс рұқсат етіңіз; // басқа бастамалар} void loop () {wdt_reset (); // жұмыс жаса}

СҮЗУГЕ БОЛАДЫ ма? Сіз CAN контроллерін сүзгіге сәйкес келмейтін барлық хабарларды тастау үшін конфигурациялай аласыз, сондықтан бағдарламалық қамтамасыз ету бізге маңызды емес хабарламаларға уақыт жоғалтпайды.

белгісіз ұзын маска = 0x1fffffff; // Барлық 29 бит биттерін маскаға қосыңыз

белгісіз ұзын filterId = 0x0400066; // Бізге тек m_can.init_Mask (0, CAN_EXTID, маска) CAN хабарламасының мәні маңызды; // 0 маскасы 0-1 сүзгісіне қолданылады m_can.init_Mask (1, CAN_EXTID, маска); // 1-маска 2-5 m_can.init_Filt сүзгісіне қолданылады (0, CAN_EXTID, filterId); m_can.init_Filt (1, CAN_EXTID, filterId); m_can.init_Filt (2, CAN_EXTID, filterId); m_can.init_Filt (3, CAN_EXTID, filterId); m_can.init_Filt (4, CAN_EXTID, filterId); m_can.init_Filt (5, CAN_EXTID, filterId);

CAN кітапханасының кодын және CAN контроллерінің құжаттамасын тексеріп, сүзгі + масканы орнату туралы толығырақ біліңіз.

Сондай -ақ, CAN контроллерін хабарды (ол сүзілмеген) алған кезде үзіліс тудыратын етіп орнатуға болады. (Жоғарыда келтірілген мысалға кірмеген, бірақ менің бағдарламамда бұл үшін код бар.) Бұл жағдайда ол шын мәнінде ешқандай мән бермейді және егер сіз бағдарламалауға үйренбеген болсаңыз, бұл шатастыруы мүмкін.

Сонымен, бұл бағдарламалық қамтамасыз етудің прототипі болды. Бірақ бізге тренажер тақтасы үшін код қажет:

lastSentTime = 0

minDelayTime = 70 setup () {A0-A5 түйреуіштерін шығыс түйреуіштері ретінде конфигурациялау D4-D7 түйреуіштерін ішкі тартқышы бар кіріс түйреуіштері ретінде конфигурациялайды. init CAN} loop () {send «junk» msg set activeButton = әрбір түймешік үшін болмайды {егер түйме басылса {set activeButton = button}} егер activeButton! = ешқайсысы {егер қазір> lastSentTime + minDelayTime {жіберу түймешігінің пәрмені хабарлама жібере алады } lastSentTime = now} invalid = A7 түйреуішін оқыңыз (cmd) {if (min <invalid <max) {led on} else {led off}} 1 ms күтіңіз}

Бұл «қажетсіз» CAN хабарламаларын шамамен әр мс сайын жібереді, ал 70 мс сайын сәйкес пәрменді басқанда.

Әр түймеге тиесілі минималды және максималды айнымалылардың сәйкес мәндерін білу үшін әр түрлі түймелерді басу кезінде A7 түйреуішіндегі кірісті тіркеу қажет болуы мүмкін. (Немесе сіз оны есептей аласыз, бірақ кірісті оқу сізге дәлірек мән береді.)

Пин -режимдерді бағдарламалау кезінде аздап абай болу керек. Егер сіз ішкі тартқышты шығыс түйреуіш ретінде кездейсоқ орнатсаңыз, онда сіз жоғары шығуды орнатқанда Arduino -ға зақым келтіретін ықтимал таңбашаны жасайсыз.

Егер сіз менің бағдарламаларымды тексергіңіз келсе, оларды мына жерден жүктеуге болады:

  • Хабарламаларды тіркеу бағдарламасы
  • Тренажер тақтасына арналған бағдарлама
  • Прототипке / соңғы тақтаға арналған бағдарлама

Сіз бұл бағдарламалар жалған кодқа сәйкес келмейтінін білуіңіз керек, оларда қажет емес көптеген «қосымша» заттар бар және егер сіз объектілі бағдарламалауды білмесеңіз, оны оқу қиын болуы мүмкін..

7 -қадам: соңғы аппараттық құрал

Соңғы аппараттық құрал
Соңғы аппараттық құрал
Соңғы аппараттық құрал
Соңғы аппараттық құрал
Соңғы аппараттық құрал
Соңғы аппараттық құрал

Егер сіз өз бағдарламаңызға риза болсаңыз (модельдеу тақтасының көмегімен соңғы тестілеуден кейін машинада прототипті сынауды ұмытпаңыз), нағыз аппараттық құралдарды құрастыру уақыты келді.

Мұнда сізде үш нұсқа бар:

  • Жылдам және лас - заттарды ПХД прототип тақтасында дәнекерлеңіз.
  • Hardcore DIY - өзіңіздің жеке ПХД -ны кесіңіз.
  • Жалқау әдіс - компоненттерді дәнекерлеу үшін кәсіби ПХД тапсырыс беру.

Егер сіз асығыс болмасаңыз, мен соңғы нұсқаны ұсына аламын. Егер сізге тек осындай шағын ПХД қажет болса, оны Қытайдан тапсырыс беру өте арзан. (Содан кейін сіз он бөлікке ие болуыңыз мүмкін, сондықтан сіз дәнекерлеу қателерін төлей аласыз.)

ПХД тапсырыс беру үшін сізге дизайнды Gerber форматында жіберу қажет болады. Бұл үшін әр түрлі бағдарламалық қамтамасыз ету бар. Мен Eagle -ды қолдандым, оны мен ұсына аламын. Сіз оны үйренуге бірнеше сағат күте аласыз, бірақ содан кейін ол жақсы жұмыс істейді. Мұндай шағын тақталар үшін сіз оны ақысыз пайдалана аласыз.

Дизайн жасаған кезде абай болыңыз. Сіз дұрыс емес нәрсе жасағаныңызды білу үшін жеткізуді төрт апта күткіңіз келмейді.

(Егер сізде жақсы дәнекерлеу дағдылары болса, сіз бетіне орнатылатын компоненттерді жобалай аласыз және өте кішкентай адаптерді ала аласыз. Мен жасамадым.)

Содан кейін, мысалы, тапсырыс беріңіз. https://www.seeedstudio.com/fusion_pcb.html. Сіздің дизайныңыздан Gerber файлдарын жасау бойынша нұсқауларды орындаңыз. Нәтиженің жақсы екеніне көз жеткізу үшін алдын ала қарауды да алуға болады.

(Ақырында, схемалық суретте көрсетілгеннен басқа R4-R7 үшін басқа резисторларды таңдау керек болды. Оның орнына 2k, 4.7k, 6.8k және 14.7k қолдандым.)

Есіңізде болсын - Atmega түйреуішінің нөмірленуін Arduino түйреуішімен шатастырмаңыз!

Мен сізге Atmega чипін тікелей дәнекерлеуді емес, розетканы қолдануды ұсынамын. Содан кейін оны қайта бағдарламалау қажет болған жағдайда оны оңай жоюға болады.

8 -қадам: автокөлікті орнату

Автокөлікті монтаждау
Автокөлікті монтаждау
Автокөлікті монтаждау
Автокөлікті монтаждау

Енді ең қызықтысы - оны көлігіңізге салып, қолдана бастаңыз! (Сіз оған корпус жасағаннан / сатып алғаннан кейін.)

Егер сіз автокөлікте прототипті толығымен сынап көрген болсаңыз, бәрі мінсіз жұмыс істеуі керек.

(Жоғарыда айтқанымдай, мен резисторларды ауыстырып, бағдарламаға өзгерістер енгізуге тура келмеді.)

Сондай -ақ, оны стерео артына немесе басқа жерге орнату керек пе екенін қарастырыңыз. Мен қолғап қорапшасының үстінен жақсы жер таптым, оған ешнәрседен айырылмай, қолғап қорапшасының ішінен қол жеткізе аламын. Егер мен оны кейінірек жаңартуды шешсем, бұл пайдалы болуы мүмкін.

Ақырында менің түймелерім қайтадан жұмыс істейді! Оларсыз мен қалай екі ай өмір сүре аламын?

9 -қадам: Болашақ жақсартулар

Жоғарыда айтылғандай, егер мен осы нұсқаның 2.0 нұсқасын жасасам, онда мен икемділік үшін 4066B -ны басқа нәрсемен (мүмкін сандық потенциометрмен) ауыстырамын.

Сіз жасай алатын басқа да көптеген нәрселер бар. Мысалы, bluetooth модулін қосыңыз және телефонға қашықтан басқару құралын жасаңыз. Немесе gps модулі, содан кейін сіз үйге жақындаған кезде дыбыс деңгейін автоматты түрде көтере аласыз және барлық көршілеріңіз сіздің керемет музыкаңызды тыңдай алатындай етіп «терезелерді төмендету» CAN хабарламасын жібере аласыз.

Ұсынылған: