Мазмұны:
- 1 -қадам: Сымдарды жалғау
- 2 -қадам: бағдарламалау
- 3 -қадам: ИК жарықдиодты экрандау
- 4 -қадам: Хабарласыңыз
Бейне: UChip - IR арқылы сериялық!: 4 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Қазіргі уақытта сымсыз байланыс біздің жобалардағы басты мүмкіндікке айналды және сымсыз байланыс туралы айтатын болсақ, менің ойыма бірінші кезекте Wi-Fi немесе BT келеді, бірақ Wi-Fi немесе BT байланыс протоколдарын басқару оңай жұмыс емес және көп шығындалады. MCU ресурстары, менің қосымшамды кодтау үшін аз орын қалдырады. Сондықтан мен рөлдерді бөлу және жоғары еркіндікке қол жеткізу үшін әдетте микроконтроллерге сериялық қосылған сыртқы Wi-Fi/BT модулін таңдаймын.
Алайда, кейде Wi-Fi мен BT төмен жылдамдықты және қысқа байланыс қашықтығын қажет ететін кейбір қосымшалар үшін «асып кетеді». Сонымен қатар, Wi-Fi немесе BT пайдалану смартфонды немесе құрылғыны тиісті аутентификациямен қосу қажеттілігін білдіреді.
Сізге сыртқы жарықты қосу/өшіру немесе шамның қарқындылығын өзгерту немесе электр қақпасын ашу қажет екенін елестетіп көріңіз. Wi-Fi немесе BT қолданған дұрыс па?
Қоршаған орта мен қосымшаларға байланысты инфрақызыл инфрақызыл толқын ұзындығы бойынша сымсыз байланыс ыңғайлы болуы мүмкін. Сыртқы компоненттері аз (3 дискретті компоненттер!) Және uChip (Arduino үйлесімді тақтасы өте кішкентай) енгізілген IR үстіндегі серия сіз іздеген шешім болуы мүмкін!
Материалдық есеп (бір Tx-Rx құрылғысы үшін):
1 x uChip
1 x IR светодиоды: эмиссияның шыңы 950нм
1 x TSOP-38238 (баламалы)
1 x 1KOhm резисторы
Аппараттық құрал
1 x нан тақтасы/прото тақта
1 x Қара пластикалық түтік: ішкі диаметрі ИК жарықдиодтымен бірдей, құбыр TSOP қабылдағышымен сөйлесуді болдырмау үшін қажет.
1 х алюминий фольга (3 см х 3 см)
1 x таспа
КЕҢЕС: Қажет емес RX/TX аппараттық құралын схемадан алып тастау немесе эскизде тиісті кодты қосу/өшіру арқылы бір бағытты байланыс қажет болған жағдайда, тек қана TX немесе тек қана RX құрылғысын жасауға болады.
1 -қадам: Сымдарды жалғау
Схемаға сәйкес компоненттерді біріктіріңіз.
Қарапайым схемаға бірнеше ескертулер. TSOP-38238 2,5 В-тан 5 В-қа дейінгі қуат көзіне рұқсат беретін және ең көп дегенде 0,45 мА жұтатындықтан (сіз деректер кестесін ОСЫ жерден таба аласыз), мен ресиверді тиісінше жерге және электрмен қамтамасыз ететін екі түйреуіш арқылы қуаттандырамын. Бұл талап бойынша ресиверді қосуға/өшіруге және аппараттық сымдарды орнатуға өте қарапайым мүмкіндік береді. Сонымен қатар, сізге бір бағытты байланыс қажет болса, TSOP-38238-ді өшіру/қосу арқылы (Tx/Rx) жалғыз құрылғыны жасауды таңдауға болады.
Тізбек қалай жұмыс істейді?
Бұл өте қарапайым. TSOP шығыс түйреуіші сенсор 38 кГц жиілігінде 6 немесе одан да көп импульсті пойызды анықтағанда төмен тартылады, екінші жағынан мұндай сигнал болмаған кезде жоғары тартылады. Осылайша, сериялық деректерді инфрақызыл желі арқылы беру үшін, схема - диодты катодты төмендететін TX сериялық сигналымен модуляцияланған 38 кГц PWM бар жарықдиодты анодты қуаттау.
Демек, TX0 сериясының жоғары деңгейінде жарық диоды біржақты немесе біржақты емес (импульстер жоқ) және TSOP шығыс штыры жоғары тартылады. Сериалда төмен деңгейді жібере отырып, жарық диодты қуатпен қамтамасыз етеді және қолданылатын PWM сигналына сәйкес ИҚ импульсін шығарады; сондықтан TSOP шығысы төмен тартылады.
Беріліс тікелей болғандықтан (0-> 0 және 1-> 1) қабылдағышта инвертор немесе басқа логика қажет емес.
Мен PWM жұмыс циклін қосымшаға сәйкес таңдау арқылы жарықдиодты оптикалық шығыс қуатын реттеймін. Жұмыс циклы неғұрлым жоғары болса, оптикалық шығыс қуаты соғұрлым жоғары болады, сондықтан сіз хабарды әрі қарай жібересіз.
Есіңізде болсын, біз әлі де импульсті жасауымыз керек! Осылайша, сіз 90% жұмыс циклінен асып кетпеуіңіз керек, әйтпесе TSOP сигналды импульс ретінде анықтамайды.
Сізге көбірек қуат қажет пе?
Ток күшейту үшін 1 кОм резистордың мәнін төмендетуге болады ма?
Мүмкін, тым талапшыл болмаңыз! SAMD21 деректер кестесінде көрсетілгендей, порт түйреуішін қалыптыдан (PINCFG. DRVSTR = 1 және VDD> 3V) күштірек жүргізген кезде MCU түйреуішінен алатын максималды ток 7 мА шектеледі.
Дегенмен, стандартты конфигурация (бұл Arduino IDE кітапханалары әдепкі бойынша қабылдаған) ағымдағы токты 2 мА дейін шектейді. Сондықтан 1kOhm пайдалану әдепкі параметрлермен ағымдағы шекті береді!
Ток күшін арттыру тек электрлік компоненттерге ғана қатысты емес. Қысқаша:
- Резисторды өзгертіңіз (оның минималды мәні шамамен 470Ohm -> VDD/470 ~ 7mA);
- Сәйкес PORT-> PINCFG-> DRVSTR мәнін 1-ге орнатыңыз;
Мен бұл мүмкіндікті қосатын кодты алдағы жаңартуда беремін.
Есіңізде болсын, MCU түйреуіштерінен оның шегіне жақын ағып кету және ағып кету - бұл жақсы әдіс емес. Шынында да, бұл MCU қызмет ету мерзімі мен сенімділігін төмендетеді. Сондықтан мен ұзақ уақыт пайдалану үшін қалыпты дискінің беріктігін сақтауды ұсынамын.
2 -қадам: бағдарламалау
«IRSerial.ino» эскизін uChip -ке жүктеңіз (немесе сіз қолданатын Arduino үйлесімді тақта).
Егер сізге PWM генерациялайтын түйреуішті өзгерту қажет болса, TCC таймеріне қосылған түйреуішті пайдаланғаныңызға көз жеткізіңіз, себебі кодтың бұл нұсқасы тек TCC таймерімен жұмыс істейді (бұл ақпаратты тақтаның «variant.c» бөлімінен қараңыз)). Мен кодты болашақ жаңартуларда TC таймерін пайдалану үшін қосамын.
Код өте қарапайым. PIN_5 төмен (TSOP GND қамтамасыз етеді) және PIN_6 жоғары (TSOP қуаттандырады) орнатқаннан кейін, MCU PWM кодын PIN_1 -де іске қосады, таймердің мерзімін орнатады және сәйкес жиілікті модуляциямен салыстырады (менің жағдайда бұл 38 кГц) және жұмыс цикл (әдепкі бойынша 12,5%). Бұл PWM түйреуіштеріндегі analogWrite () стандартты функциясын қолдана отырып және тек PER_REG (периодтық регистр) мен CC (түсіруді салыстыру) регистрін өзгерту арқылы жасалады (жазбаша код-бұл wiring_analog кітапханасынан қиып алу). Қажетті жиілікті сәйкесінше PER_REG өзгеретін TSOP сенсорына қарай орнатуға болады (бұл таймердің есептегішін қалпына келтірудің жоғарғы шегі), ал CC кезеңдік мәнге пропорционалды түрде жұмыс циклінің қажетті пайызына орнатылады.
Әрі қарай, код дұрыс жіберу жылдамдығының көмегімен сериялық портты орнатады, ол 2400bps. Неліктен мұндай жылдамдық төмен? Жауап TSOP мәліметтер парағында, оны мына жерден табуға болады. TSOP қажетсіз ауысуды болдырмау үшін шуды қабылдамайтын жоғары сүзгілерге ие болғандықтан, TSOP шығыс түйреуішін төмендету үшін бірнеше импульсті пойызды жіберу қажет (импульстер саны TSOP нұсқасына байланысты, 6 - бұл типтік мән). Дәл осылай, TSOP шығысы 10 импульске немесе одан да көп уақытқа барабар минималды уақыт өткеннен кейін жоғары тартылады. Демек, TSOP шығысын модуляциялық TX0 сигналы ретінде орнату үшін келесі теңдеуді ескере отырып, өткізу жылдамдығын орнату қажет:
Сериялық беру <PWM_frekquency/10
38 КГц жиілігін қолдану нәтижесінде 3800 секундтан төмен жылдамдыққа әкеледі, бұл рұқсат етілген «стандартты» рұқсат беру жылдамдығы бұрын болжанғандай 2400 пиксельді құрайды.
Бауд жылдамдығын арттырғыңыз келе ме? Екі нұсқа бар.
Ең оңай нұсқа - TSOP -ты жоғары жиілікке өзгерту (TSOP38256 сияқты), бұл сізге өткізу жылдамдығын екі есе арттыруға мүмкіндік береді (4800bps).
Жеткіліксіз?! Содан кейін қарапайым IR LED+фотодиод пен күшейту схемасын қолдана отырып, өзіңіздің оптикалық байланысыңызды жасауыңыз қажет. Алайда, бұл шешім шудың жіберілетін деректерге әсерін болдырмау үшін көптеген кодтау мен электрониканы меңгеруді қажет етеді, сондықтан оны іске асыру мүлде оңай емес! Алайда, егер сіз өзіңізді сенімді сезінсеңіз, сіз өзіңіздің TSOP жүйесін жасауға тырысасыз!:)
Ақырында, мен сериялық мониторда деректерді жіберу және алу үшін пайдаланатын SerialUSB портын (2400bps) орнаттым.
Цикл () функциясы екі серия бойынша деректерді өтуге қажетті кодты қамтиды және SerialPassthrough үлгісінен тікелей сериялардың атауын өзгерту арқылы көшіріледі.
3 -қадам: ИК жарықдиодты экрандау
Егер сіз «IRSerial.ino» кодын жүктегеннен кейін жоғарыдағы схеманы қоссаңыз, Arduino IDE -дегі сериялық мониторды тексеріп, жолды жіберіп көріңіз. Сіз uChip дәл жіберетін нәрсені алатынын көретін шығарсыз! IR светодиоды мен сол құрылғының TSOP арасындағы оптикалық байланысқа байланысты схемада кросс-әңгіме бар!
Міне, бұл жобаның қиын бөлігі, әңгімелесудің алдын алады! IR арқылы екі жақты сериялық байланыс жасау үшін цикл үзілуі керек.
Біз циклды қалай бұзамыз?
Бірінші нұсқа, сіз PWM жұмыс циклін төмендетесіз, осылайша жарық диодты оптикалық қуат шығынын азайтады. Дегенмен, бұл тәсіл сонымен қатар сенімді сериялық IR арнасын алатын қашықтықты азайтады. Екінші нұсқа - IR жарықдиодты экрандау, осылайша бағытты ИҚ «сәулесін» жасайды. Бұл сынақ пен қателік мәселесі; Ақырында, алюминий фольга мен таспаға оралған қара пневматикалық ауа шлангінің көмегімен (электр оқшаулауын қамтамасыз ету) мен кросс -әңгімені бұза алдым. Трансляциялаушы IR светодиодты түтікке қою сол құрылғының TX пен RX арасындағы байланысты болдырмайды.
Менің шешімімді көру үшін суретке қараңыз, бірақ басқа әдістерді қолданыңыз және/немесе өз ұсыныстарыңызды беріңіз! Бұл мәселенің абсолютті шешімі жоқ (егер сізге бір бағытты арна қажет болмаса) және сізге схеманың орналасуын, PWM жұмыс циклін және инфрақызыл қалқанды сіздің қажеттіліктеріңізге сәйкес реттеу қажет болуы мүмкін.
Айқас сөйлемді үзгеннен кейін, IR шағылыстыратын беттерде ИҚ толқын ұзындығының шағылуын пайдаланатын Tx-Rx құрылғысында цикл құру арқылы сіздің құрылғыңыз әлі де жұмыс істейтінін тексере аласыз.
4 -қадам: Хабарласыңыз
Барлығы осы
Сіздің сериялық инфрақызыл құрылғы байланысуға дайын, оларды инфрақызыл желі арқылы жіберуге, өзіңізге ұнайтын нәрсені қосуға/өшіруге немесе жасырын жасыратын сенсордың күйін тексеруге дайын!
Байланыс сенімді болатын қашықтық WiFi немесе BT құрылғысы сияқты көп емес. Дегенмен, бұл бағытты (жарық диодты диафрагма мен енгізілген ИҚ қорғаныш жүйесіне байланысты), бұл кейбір қосымшаларда өте пайдалы болуы мүмкін!
Жақында мен жүктеген қосымшалардың бірнеше мысалын көре алатын бейнені жүктеймін. Ләззат алыңыз!
Ұсынылған:
Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару: 5 қадам
Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару: DYNAMIXEL 12A
HC-05 Bluetooth арқылы сериялық конфигурация: 10 қадам
HC-05 Bluetooth арқылы сериялық конфигурация: Кейбір Arduino жобалары үшін Android құрылғылары мен HC-05 Bluetooth SPP модульдерін қолданған кезде, мен HC-05 беру жылдамдығын және басқа параметрлерді компьютердің USB портына қосылмай тексеріп, өзгерткім келді. HC-05 модульдері сериялық және Blu қосады
Arduino Uno -дан ICSP / ISP арқылы дәйекті Arduino 3.3V Вт / 8 МГц сағаты бағдарламаланған (сериялық бақылаумен!): 4 қадам
Arduino Uno -дан ICSP / ISP арқылы дәйекті Arduino 3.3V Вт / Сыртқы 8 МГц сағаты (сериялық бақылаумен!): Мақсаты: 8 МГц сыртқы сағаттан 3,3В жұмыс істейтін автономды Arduino құрастыру. Оны Arduino Uno (5В жұмыс істейтін) провайдерімен (сонымен қатар ICSP деп аталады) тізбектей бағдарламалау үшін жүктеуші файлын өңдеу және
Bluetooth арқылы сериялық мониторды қарау: 4 қадам
Bluetooth арқылы сериялық мониторды қарау: Бұл жоба сериялық мониторды қарау үшін қолданылатын дәстүрлі сымды қосылымды алмастыру үшін HC -05 Bluetooth модулін қолданады. /2RYqiSK Jumper сымдары - https://amzn.to/2RYqiSK H
CH340 UART сериялық түрлендіргіш кабелін пайдалану арқылы бағдарламаны немесе кодты Arduino Pro Mini -ге қалай жүктеуге болады: 4 қадам
CH340 UART сериялық түрлендіргіш кабелін қолдану арқылы бағдарламаны немесе кодты Arduino Pro Mini -ге қалай жүктеуге болады: USB TTL сериялық кабельдері - бұл USB мен сериялық UART интерфейстері арасындағы байланысты қамтамасыз ететін сериялық түрлендіргіш кабельдердің USB диапазоны. 5 вольт, 3,3 вольт немесе пайдаланушы белгілеген сигнал деңгейінде қосылымды ұсынатын кабельдер жиынтығы бар