Мазмұны:

UChip - IR арқылы сериялық!: 4 қадам
UChip - IR арқылы сериялық!: 4 қадам

Бейне: UChip - IR арқылы сериялық!: 4 қадам

Бейне: UChip - IR арқылы сериялық!: 4 қадам
Бейне: G4D!S SELALU M3SUM AGAR TETAP CANT1K!! 2024, Қараша
Anonim
UChip - IR арқылы сериялық!
UChip - IR арқылы сериялық!
UChip - IR арқылы сериялық!
UChip - IR арқылы сериялық!

Қазіргі уақытта сымсыз байланыс біздің жобалардағы басты мүмкіндікке айналды және сымсыз байланыс туралы айтатын болсақ, менің ойыма бірінші кезекте 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 құрылғысы сияқты көп емес. Дегенмен, бұл бағытты (жарық диодты диафрагма мен енгізілген ИҚ қорғаныш жүйесіне байланысты), бұл кейбір қосымшаларда өте пайдалы болуы мүмкін!

Жақында мен жүктеген қосымшалардың бірнеше мысалын көре алатын бейнені жүктеймін. Ләззат алыңыз!

Ұсынылған: