Სარჩევი:

ATtiny85 RF დისტანციური მართვა: 3 ნაბიჯი
ATtiny85 RF დისტანციური მართვა: 3 ნაბიჯი

ვიდეო: ATtiny85 RF დისტანციური მართვა: 3 ნაბიჯი

ვიდეო: ATtiny85 RF დისტანციური მართვა: 3 ნაბიჯი
ვიდეო: ახალი იდეა, თუ როგორ შევქმნათ მარტივი ინფრაწითელი დისტანციური მართვის წრე / ჩართვა/გამორთვა 2024, ივლისი
Anonim
ATtiny85 RF დისტანციური მართვა
ATtiny85 RF დისტანციური მართვა

შენიშვნა: ჩემი ინსტრუქციური "ვირტუალური დამალვა და ძებნა" აჩვენებს, თუ როგორ გამოიყენოთ ამ ტიპის დისტანციური მართვა RXC6 მოდულით, რომელიც ავტომატურად გაშიფრავს შეტყობინებას.

როგორც წინა ინსტრუქციებში აღვნიშნე, ახლახანს დავიწყე თამაში ATtiny85 ჩიპებით. თავდაპირველი პროექტი, რომელიც მქონდა მხედველობაში, იყო RF დისტანციური მართვის დამზადება, რომელსაც შეეძლო მონეტის ბატარეაზე მუშაობა. მე მჭირდებოდა ნედლი ჩიპით წასვლა, რადგან არცერთი არდუინო არ მაქვს, რომელიც აკმაყოფილებს როგორც ძალიან დაბალი სიმძლავრის, ასევე შედარებით მცირე ზომის საჭიროებას. შეცვლილი LilyPad მიუახლოვდა, მაგრამ ჩიპი უკეთესი პასუხია. იდეა არ იყო არსებული დისტანციური პულტის დუბლიკატი, არამედ იმის დემონსტრირება, თუ როგორ შეგიძლიათ შექმნათ თქვენი საკუთარი გადამცემი და მიმღები. გარდა იმისა, რომ სახალისო სასწავლო პროექტია, ის ასევე გაძლევთ საშუალებას შექმნათ თქვენი საკუთარი "საიდუმლო" კოდის კომბინაცია. ბრჭყალებში „საიდუმლო“ჩავდე, რადგან ამ მარტივი კოდების გატეხვა საკმაოდ ადვილია.

ნაბიჯი 1: RF შეტყობინების ფორმატი

RF შეტყობინების ფორმატი
RF შეტყობინების ფორმატი

ამ პროექტისთვის მე შევარჩიე სიგნალების გამეორება ჩემი ერთ -ერთი Etekcity RF უკაბელო გადამრთველისთვის (იხილეთ ინსტრუქცია ამ მოდულებზე). მე ეს იმიტომ გავაკეთე, რომ შემეძლო გადამემოწმებინა, რომ ჩემი გადამცემი მუშაობს Etekcity მიმღებთან და რომ ჩემი მიმღები მუშაობს Etekcity დისტანციური მართვის პულტთან. მე ასევე ზუსტად ვიცი ზუსტად რა არის სწორი კოდები და ფორმატი იმ მოწყობილობებისთვის, რადგან მე მათ ადრე ვიღებდი. იხილეთ ჩემი "Arduino RF Sensor Decoder" ინსტრუქცია კოდის გადაღების ესკიზისთვის.

Etekcity განყოფილებების კოდები და ფორმატები ძალიან ტიპიურია იაფი RF მოწყობილობებისთვის. მე მაქვს უსაფრთხოების იაფი მოწყობილობები, რომლებიც იყენებენ ძალიან მსგავს ფორმატებს დროის გარკვეული ვარიაციით. შეტყობინების სიგრძე არის მოსახერხებელი 24 ბიტი გრძელი დაწყების ბიტით და მოკლე გაჩერების ბიტით. თქვენ შეგიძლიათ მარტივად შეცვალოთ კოდი, რომ დაამატოთ მეტი ბაიტი მონაცემები და შეცვალოთ სინქრონიზაციისა და მონაცემთა ბიტების დრო. კიდევ ერთხელ, ეს ესკიზი არის მხოლოდ საწყისი შაბლონი.

ნაბიჯი 2: აპარატურა

ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა
ტექნიკა

გადამცემი მუშაობს მონეტის ბატარეაზე (2032), ამიტომ დაბალი ენერგიის მოხმარება არის მთავარი. ამის უმეტესობა შესრულებულია პროგრამულ უზრუნველყოფაში, მაგრამ მას ეხმარება ის ფაქტი, რომ ATtiny85 ჩვეულებრივ მუშაობს 1 MHz შიდა საათზე. წესი არის ის, რომ ქვედა საათის სიხშირეები მოითხოვს ნაკლებ ენერგიას და 1-MHz შესანიშნავია გადამცემის ლოგიკისთვის.

ფაქტობრივი RF გადამცემი მოდული, რომლის გამოყენებაც მომწონს, არის FS1000A, რომელიც საყოველთაოდ არის ხელმისაწვდომი. იგი მოდის ორივე 433-MHz და 315-MHz ვერსიებში. პროგრამული უზრუნველყოფა არ აინტერესებს რომელი გამოიყენოთ, მაგრამ თქვენ უნდა დარწმუნდეთ რომ მიმღების დაფა მუშაობს იმავე სიხშირით. ჩემი პროექტების უმეტესობა იყენებს 433 MHz მოწყობილობას, რადგან ეს არის ის, რასაც იყენებენ ჩემს მიერ დაგროვილი სხვადასხვა იაფი უკაბელო მოწყობილობები. სურათზე ნაჩვენები გადამცემი დაფის განლაგება ლამაზად ჯდება ძველ აბების ბოთლში. ეს არ არის საკმაოდ ლამაზი, მაგრამ საკმარისად კარგი კონცეფციის დასამტკიცებლად.

მიმღები არის solderless breadboard, რადგან მისი ერთადერთი მიზანია აჩვენოს როგორ მიიღოს სიგნალები და როგორ ჩართოს/გამორთოს რაღაც მიღებული კოდების საფუძველზე. იგი იყენებს LED- ს, რომ მიუთითოს ჩართვის/გამორთვის სტატუსი, მაგრამ თქვენ შეგიძლიათ შეცვალოთ ეს სარელეო დრაივერით და ა.შ. ნებისმიერი Arduino შეიძლება გამოყენებულ იქნას მიმღებისთვის, რადგან არ სჭირდება ბატარეის ამოწურვა. თუ ზომა ჯერ კიდევ გასათვალისწინებელია, შეგიძლიათ გამოიყენოთ სხვა ATtiny85 ჩიპი. მთავარი ის არის, რომ ATtiny85 უნდა იმუშაოს 8-MHz მიმღებში. იხილეთ ჩემი ადრინდელი ATtiny85 Instructable მარტივი ესკიზისთვის, რომელიც ადასტურებს, რომ თქვენ წარმატებით შეცვალეთ შიდა საათი 8 MHz. სენსორის გაშიფვრის ინსტრუქციის ბოლოს ვრთავ მიმღების პროგრამული უზრუნველყოფის Arduino Nano ვერსიას. ის იდენტურია აქ მოყვანილი ATtiny85 ვერსიისა, გარდა ჩიპების რეგისტრაციის რამდენიმე განსხვავებისა.

როგორც მე დეტალურად აღვწერე ჩემი ადრეული RF ინსტრუქციები, მირჩევნია გამოვიყენო მიმღები, როგორც ჩვეულებრივი RXB6. ეს არის სუპერ-ჰეტეროდინის მიმღები, რომელიც მუშაობს ბევრად უკეთესად, ვიდრე სუპერ-რეგენერაციული მიმღებები, რომლებიც ჩვეულებრივ შეფუთულია FS1000A გადამცემებთან.

ორივე გადამცემი და მიმღები მოდულები უკეთესად მუშაობენ სათანადო ანტენებით, მაგრამ ისინი ხშირად არ მიეწოდება. თქვენ შეგიძლიათ შეიძინოთ ისინი (მიიღეთ სწორი სიხშირე) ან შეგიძლიათ თავად გააკეთოთ. 433-MHz– ზე, სწორი სიგრძეა დაახლოებით 16 სმ სწორი მავთულის ანტენისთვის. გრაგნილი რომ გააკეთოთ, აიღეთ დაახლოებით 16 სმ იზოლირებული, მყარი ბირთვიანი მავთული და შემოახვიეთ ის რაღაც 5/32-დიუმიანი საბურღი, როგორც ერთ ფენაში. ამოიღეთ იზოლაცია მოკლე სწორი მონაკვეთის ერთ ბოლოში და შეაერთეთ იგი გადამცემის/მიმღების დაფასთან. აღმოვაჩინე, რომ Ethernet კაბელის ჯართი კარგად მუშაობს ანტენებისთვის. გადამცემ დაფას, როგორც წესი, აქვს ადგილი ანტენის შესაკრავად, მაგრამ მიმღების დაფას შეიძლება ჰქონდეს მხოლოდ ქინძისთავები (მაგალითად, RXB6). უბრალოდ დარწმუნდით, რომ კავშირი უსაფრთხოა, თუ არ შეაერთებთ მას.

ნაბიჯი 3: პროგრამული უზრუნველყოფა

გადამცემი პროგრამული უზრუნველყოფა იყენებს ჩვეულებრივ ტექნიკას ჩიპის ძილის რეჟიმში გადასასვლელად. ამ რეჟიმში ის დენის 0.2ua- ზე ნაკლებს იკავებს. გადართვის საშუალებებს (D1-D4) აქვს შიდა გამყვანი რეზისტორები ჩართული, მაგრამ ისინი არ იწვებიან დენზე სანამ გადამრთველი არ არის დაჭერილი. შეყვანა კონფიგურებულია ცვლილების შეწყვეტისას (IOC). როდესაც გადამრთველი დაჭერილია, წარმოიქმნება შეფერხება და აიძულებს ჩიპს გაიღვიძოს. შეწყვეტის დამმუშავებელი ასრულებს დაახლოებით 48 წამი დაგვიანებით, რათა გადართვა მოხდეს დენონსაციისთვის. ამის შემდეგ ხდება შემოწმება, რათა დადგინდეს რომელი გადამრთველი იყო დაჭერილი და შესაბამისი რუტინა ეწოდება. გადაცემული შეტყობინება რამდენჯერმე მეორდება (მე 5 -ჯერ ავირჩიე). ეს ტიპიურია კომერციული გადამცემებისთვის, რადგან იქ არის ძალიან ბევრი RF ტრაფიკი 433-MHz და 315-MHz იქ. განმეორებითი შეტყობინებები გვეხმარება იმის უზრუნველსაყოფად, რომ სულ მცირე ერთი გადადის მიმღებთან.

სინქრონიზაციისა და ბიტის დრო განისაზღვრება გადამცემის პროგრამული უზრუნველყოფის წინა ნაწილში, მაგრამ მონაცემთა ბაიტები ჩადებულია ოთხივე ღილაკის რუტინაში. ისინი აშკარაა და ადვილად შეიცვლება და ბაიტების დამატება უფრო გრძელი შეტყობინების შესაქმნელად ასევე ადვილია. ყველა ერთი და იგივე განმარტება შედის მიმღების პროგრამულ უზრუნველყოფაში, ასევე მონაცემთა ბაიტის განმარტებებს. თუ თქვენს შეტყობინებას დაამატებთ მონაცემთა ბაიტებს, თქვენ უნდა შეცვალოთ განსაზღვრება "Msg_Length" და დაამატოთ ბაიტები ცვლადში "RF_Message". თქვენ ასევე უნდა დაამატოთ კოდი "RF_Message" შემოწმებაში "loop", რომ გადაამოწმოთ დამატებითი ბაიტების სათანადო მიღება და განსაზღვროთ ეს ბაიტები.

გირჩევთ: