Мазмуну:

ATtiny85 RF Алыстан башкаруу: 3 кадам
ATtiny85 RF Алыстан башкаруу: 3 кадам

Video: ATtiny85 RF Алыстан башкаруу: 3 кадам

Video: ATtiny85 RF Алыстан башкаруу: 3 кадам
Video: ATtiny85 RF Transmitter & Receiver 2024, Ноябрь
Anonim
ATtiny85 RF Remote Control
ATtiny85 RF Remote Control

ЭСКЕРТҮҮ: Менин инструктивдүү "Виртуалдык Жашыруу Оюнум", бул билдирүүнү автоматтык түрдө чечүүчү RXC6 модулу менен кантип алыстан башкарууну көрсөтөт.

Мурунку Инструкцияда айтканымдай, жакында эле кээ бир ATtiny85 чиптери менен ойной баштадым. Мен ойлогон алгачкы долбоор тыйын батареясында иштей турган RF пультун жасоо болчу. Мен чийки чип менен барышым керек болчу, анткени мендеги Arduinosдун бири дагы өтө аз кубаттуулукка жана салыштырмалуу кичине өлчөмгө муктаждыгын канааттандыра албайт. Өзгөртүлгөн LilyPad жакын келди, бирок чип жакшы жооп. Идея учурдагы пультту кайталоо эмес, кантип өткөргүч менен кабыл алгычты кантип түзүү керек экенин көрсөтүү болчу. Кызыктуу окуу долбоорунан тышкары, ал өзүңүздүн "жашыруун" коддоруңуздун айкалышын түзүүгө мүмкүнчүлүк берет. Мен "сырды" цитаталарга кошуп койгом, анткени бул жөнөкөй коддорду бузуу оңой.

1 -кадам: RF кабар форматы

RF кабар форматы
RF кабар форматы

Бул долбоор үчүн мен Etekcity RF зымсыз өчүргүчтөрүмдүн биринин сигналдарын кайталоону чечтим (менин модулдар боюнча нускамамды караңыз). Мен муну жасадым, анткени мен өткөргүчүм Etekcity кабыл алгычы менен иштээрин жана менин ресиверим Etekcity пульту менен иштээрин текшере алдым. Мен ошондой эле бул түзмөктөр үчүн туура коддорду жана форматты так билем, анткени мен аларды мурда тартып алганмын. Менин "Arduino RF Sensor Decoder" инструкцияланган кодун караңыз.

Etekcity соода түйүндөрүнүн коддору жана форматтары арзан RF түзүлүштөрүнө абдан мүнөздүү. Менде абдан окшош форматтарды колдонгон арзан коопсуздук түзмөктөрү бар, алар кээ бир убакыт өзгөрүүлөрү менен. Билдирүүнүн узундугу - ыңгайлуу 24 бит, узун баштоо жана кыска токтоочу бит. Көбүрөөк маалымат байттарын кошуу жана синхрондоштуруу жана маалымат биттерин өзгөртүү үчүн кодду оңой эле өзгөртө аласыз. Дагы, бул эскиз жөн гана баштапкы шаблон.

2 -кадам: Аппараттык

Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык
Аппараттык

Бергич монеталык батареяда иштейт (2032), андыктан аз энергия керектөө маанилүү. Мунун көбү программалык камсыздоодо ишке ашат, бирок ага ATtiny85тин адатта 1 МГц ички саатта иштеши жардам берет. Эреже төмөнкү саат жыштыктары азыраак кубаттуулукту талап кылат жана 1-МГц өткөргүч логикасы үчүн идеалдуу.

Чыныгы RF өткөргүч модулу мен колдонгум келет, бул жалпыга жеткиликтүү болгон FS1000A. Бул 433-MHz жана 315-MHz версияларында келет. Программаны кайсынысын колдонгонуңуз кызыктырбайт, бирок кабыл алгыч такта ошол эле жыштыкта иштеп жатканына ынанууңуз керек. Менин долбоорлорумдун көбү 433-МГц түзмөктөрдү колдонушат, анткени муну мен топтогон ар кандай арзан зымсыз аппараттар колдонот. Сүрөттө көрсөтүлгөн өткөргүч тактасынын макети эски таблетка бөтөлкөсүнө абдан жакшы дал келет. Бул сулуу эмес, бирок түшүнүктү далилдөө үчүн жетиштүү.

Кабыл алгыч столсуз столдо турат, анткени анын бирден -бир максаты сигналдарды кабыл алууну жана алынган коддордун негизинде бир нерсени кантип өчүрүү/өчүрүү керек экенин көрсөтүү. Бул күйгүзүү/өчүрүү абалын көрсөтүү үчүн LEDди колдонот, бирок сиз аны реле айдоочусу менен алмаштырсаңыз болот. Ар кандай Arduino кабыл алгыч үчүн колдонулушу мүмкүн, анткени батареянын түгөнүшүнүн кереги жок. Эгерде өлчөм дагы эле каралса, башка ATtiny85 чипин колдонсоңуз болот. Негизги нерсе, ATtiny85 кабылдагычта 8-МГцте иштеши керек. Ички саатты 8-МГцке ийгиликтүү өзгөрткөнүңүздү тастыктаган жөнөкөй эскиз үчүн мурунку ATtiny85 Instructable шилтемесине кайрылыңыз. Сенсордун декоддоо боюнча нускамасынын аягында мен кабыл алуучу программанын Arduino Nano версиясын камтыйм. Бул ATtiny85 версиясына окшош, бул жерде чип реестринин бир нече айырмасы жок.

Мен мурунку RF Instructables -де айтып өткөндөй, мен кадимки RXB6 сыяктуу ресиверди колдонууну туура көрөм. Бул супер-гетеродин алгыч, адатта FS1000A өткөргүчтөрү менен коштолгон супер-калыбына келтирүүчү ресиверлерге караганда алда канча жакшы иштейт.

Бергич жана кабыл алуучу модульдар туура антенналар менен жакшыраак иштейт, бирок алар көп учурда берилбейт. Сиз аларды сатып ала аласыз (туура жыштыкты алыңыз) же өзүңүз жасай аласыз. 433-МГц жыштыгында, туура узундугу түз зымдуу антенна үчүн болжол менен 16 см. Орозо жасоо үчүн болжол менен 16 см изоляцияланган, катуу өзөктүү зымды алып, 5/32 дюймдук бургулоочу учу сыяктуу бир катмарга ороп коюңуз. Кыска түз бөлүмдүн изоляциясын бир четинен сыйрып алып, аны өткөргүч/алуучу тактаңызга туташтырыңыз. Мен сынык Ethernet кабелинин зымы антенналар үчүн жакшы иштээрин байкадым. Бергич тактада адатта антеннаны ширете турган жер бар, бирок алуучу тактада гана казыктар болушу мүмкүн (RXB6 сыяктуу). Жөн гана, эгер сиз аны ширетпесеңиз, байланыштын коопсуз экендигин текшериңиз.

3 -кадам: Программалык камсыздоо

Бергич программалык камсыздоо чипти уйку режимине коюу үчүн жалпы ыкмаларды колдонот. Бул режимде ал 0,2ua токту азыраак тартат. Коммутатордун кириштеринде (D1-D4) ички тартма каршылыктар күйгүзүлгөн, бирок алар баскыч басылмайынча эч кандай ток тартпайт. Кириштер үзгүлтүккө учуроо (IOC) үчүн конфигурацияланган. Которгуч басылганда, үзгүлтүк пайда болот жана ал чипти ойгонууга мажбурлайт. Үзгүлтүктү иштетүүчү которгучтун чыгуусуна уруксат берүү үчүн болжол менен 48msec кечигүүнү аткарат. Андан кийин кайсы которгуч басылганын аныктоо үчүн текшерүү жүргүзүлөт жана тиешелүү тартип чакырылат. Берилген билдирүү бир нече жолу кайталанат (мен 5 жолу тандадым). Бул коммерциялык өткөргүчтөргө мүнөздүү, анткени 433-МГцте жана 315-МГцте RF трафиги көп. Кайталанган билдирүүлөр, жок дегенде, бирөө алуучуга өтөрүн камсыз кылууга жардам берет.

Шайкештирүү жана бит убактысы өткөргүч программалык камсыздоонун маңдайында аныкталган, бирок маалыматтын байттары төрт баскыч тартибинин ар бирине камтылган. Алар ачык жана оңой өзгөртүлүп, узунураак билдирүү үчүн байт кошуу да оңой. Ошол эле аныктамалардын баары алуучу программасына, ошондой эле маалыматтын байт аныктамаларына киргизилген. Эгерде сиз билдирүүңүзгө маалымат байттарын кошсоңуз, анда "Msg_Length" аныктамасын өзгөртүп, "RF_Message" өзгөрмөсүнө байт кошууңуз керек болот. Кошумча байттардын туура келгенин текшерүү жана ошол байттарды аныктоо үчүн "RF_Message" текшерүүсүнө "циклде" код кошууңуз керек болот.

Сунушталууда: