สารบัญ:

ATtiny85 RF รีโมทคอนโทรล: 3 ขั้นตอน
ATtiny85 RF รีโมทคอนโทรล: 3 ขั้นตอน

วีดีโอ: ATtiny85 RF รีโมทคอนโทรล: 3 ขั้นตอน

วีดีโอ: ATtiny85 RF รีโมทคอนโทรล: 3 ขั้นตอน
วีดีโอ: การตั้งค่า รีโมทคอนโทรลไร้สาย RF 433MHz DC 12V 2024, กรกฎาคม
Anonim
ATtiny85 RF รีโมทคอนโทรล
ATtiny85 RF รีโมทคอนโทรล

หมายเหตุ: "เกมซ่อนหาเสมือน" ที่สอนได้ของฉันจะแสดงวิธีใช้รีโมตประเภทนี้กับโมดูล RXC6 ซึ่งจะถอดรหัสข้อความโดยอัตโนมัติ

ดังที่ฉันได้กล่าวไว้ในคำแนะนำก่อนหน้านี้ฉันเพิ่งเริ่มเล่นกับชิป ATtiny85 บางตัว โปรเจ็กต์แรกที่ฉันคิดไว้คือการสร้างรีโมตคอนโทรล RF ที่สามารถใช้งานกับแบตเตอรี่แบบเหรียญได้ ฉันต้องใช้ชิปดิบเพราะไม่มี Arduinos ตัวใดที่สามารถตอบสนองความต้องการพลังงานต่ำมากและขนาดค่อนข้างเล็ก LilyPad ที่ได้รับการดัดแปลงเข้ามาใกล้ แต่ชิปเป็นคำตอบที่ดีกว่า แนวคิดนี้ไม่ได้มากไปกว่าการทำซ้ำรีโมตที่มีอยู่ แต่เพื่อแสดงให้เห็นว่าคุณสามารถสร้างชุดเครื่องส่งและตัวรับสัญญาณของคุณเองได้อย่างไร นอกจากจะเป็นโครงการการเรียนรู้ที่สนุกสนานแล้ว ยังให้คุณสร้างรหัส "ลับ" ของคุณเองได้อีกด้วย ฉันใส่ "ความลับ" ไว้ในเครื่องหมายคำพูดเพราะง่ายต่อการถอดรหัสรหัสง่าย ๆ เหล่านี้

ขั้นตอนที่ 1: รูปแบบข้อความ RF

รูปแบบข้อความ RF
รูปแบบข้อความ RF

สำหรับโครงการนี้ ฉันเลือกที่จะจำลองสัญญาณสำหรับสวิตช์ไร้สาย Etekcity RF ตัวใดตัวหนึ่งของฉัน (ดูคำแนะนำของฉันในโมดูลเหล่านั้น) ฉันทำอย่างนั้นเพราะฉันสามารถตรวจสอบว่าเครื่องส่งของฉันทำงานร่วมกับเครื่องรับ Etekcity และตัวรับสัญญาณของฉันใช้งานได้กับรีโมท Etekcity ฉันยังรู้ด้วยว่ารหัสและรูปแบบที่ถูกต้องสำหรับอุปกรณ์เหล่านั้นคืออะไรเพราะฉันเคยจับภาพไว้ก่อนหน้านี้ อ้างถึง "ตัวถอดรหัสเซ็นเซอร์ RF ของ Arduino" ของฉันซึ่งสอนได้สำหรับร่างการจับภาพโค้ด

รหัสและรูปแบบสำหรับร้าน Etekcity เป็นเรื่องปกติของอุปกรณ์ RF ราคาไม่แพง ฉันมีอุปกรณ์รักษาความปลอดภัยราคาถูกที่ใช้รูปแบบที่คล้ายกันมากโดยมีรูปแบบเวลาเพียงบางส่วน ความยาวของข้อความคือ 24 บิตที่สะดวกพร้อมบิตเริ่มต้นที่ยาวและบิตหยุดสั้น คุณสามารถแก้ไขโค้ดเพื่อเพิ่มไบต์ข้อมูลและเปลี่ยนเวลาของการซิงค์และบิตข้อมูลได้อย่างง่ายดาย อีกครั้ง ภาพร่างนี้เป็นเพียงเทมเพลตเริ่มต้น

ขั้นตอนที่ 2: ฮาร์ดแวร์

ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์
ฮาร์ดแวร์

เครื่องส่งทำงานด้วยแบตเตอรี่แบบเหรียญ (2032) ดังนั้นการใช้พลังงานต่ำจึงเป็นกุญแจสำคัญ ส่วนใหญ่ทำได้ในซอฟต์แวร์ แต่ได้รับความช่วยเหลือจากข้อเท็จจริงที่ว่า ATtiny85 ทำงานบนนาฬิกาภายใน 1-MHz ตามปกติ กฎคือความถี่สัญญาณนาฬิกาที่ต่ำกว่าต้องการพลังงานน้อยกว่าและ 1-MHz นั้นสมบูรณ์แบบสำหรับลอจิกของเครื่องส่งสัญญาณ

โมดูลตัวส่งสัญญาณ RF จริงที่ฉันชอบใช้คือ FS1000A ที่มีจำหน่ายทั่วไป มีทั้งรุ่น 433-MHz และ 315-MHz ซอฟต์แวร์ไม่สนใจว่าคุณใช้อันไหน แต่คุณต้องแน่ใจว่าบอร์ดรับสัญญาณทำงานที่ความถี่เดียวกัน โปรเจ็กต์ส่วนใหญ่ของฉันใช้อุปกรณ์ 433-MHz เพราะนั่นคือสิ่งที่ใช้โดยอุปกรณ์ไร้สายราคาถูกต่างๆ ที่ฉันสั่งสมมา เลย์เอาต์ของบอร์ดส่งสัญญาณที่แสดงในภาพเข้ากันได้ดีกับขวดยาเก่า ไม่สวยแต่ดีพอสำหรับการพิสูจน์แนวคิด

ตัวรับสัญญาณอยู่บนเขียงหั่นขนมแบบไม่มีบัดกรีเพราะจุดประสงค์เดียวคือเพื่อแสดงวิธีรับสัญญาณและวิธีเปิด/ปิดบางสิ่งตามรหัสที่ได้รับ มันใช้ไฟ LED เพื่อระบุสถานะเปิด/ปิด แต่คุณสามารถแทนที่ด้วยไดรเวอร์รีเลย์ เป็นต้น สามารถใช้ Arduino ใดๆ กับเครื่องรับได้เพราะไม่จำเป็นต้องใช้แบตเตอรี่ หากขนาดยังเป็นข้อพิจารณา คุณสามารถใช้ชิป ATtiny85 ตัวอื่นได้ กุญแจสำคัญคือ ATtiny85 ต้องทำงานที่ 8-MHz ในเครื่องรับ อ้างถึงคำแนะนำ ATtiny85 ก่อนหน้าของฉันสำหรับการร่างแบบง่าย ๆ ที่ยืนยันว่าคุณเปลี่ยนนาฬิกาภายในเป็น 8-MHz สำเร็จแล้ว ในตอนท้ายของคำแนะนำของฉันเกี่ยวกับการถอดรหัสเซ็นเซอร์ฉันได้รวมซอฟต์แวร์ตัวรับ Arduino Nano ไว้ด้วย มันเหมือนกับรุ่น ATtiny85 ที่รวมอยู่ที่นี่ยกเว้นความแตกต่างของการลงทะเบียนชิปสองสามข้อ

ตามที่ฉันให้รายละเอียดไว้ใน RF Instructables รุ่นก่อนหน้า ฉันชอบใช้เครื่องรับเช่น RXB6 ทั่วไป เป็นเครื่องรับ super-heterodyne ซึ่งทำงานได้ดีกว่าเครื่องรับ super-regenerative ที่มักมาพร้อมกับเครื่องส่ง FS1000A

ทั้งโมดูลตัวส่งและตัวรับทำงานได้ดีกับเสาอากาศที่เหมาะสม แต่มักจะไม่มีให้ คุณสามารถซื้อได้ (รับความถี่ที่ถูกต้อง) หรือคุณสามารถสร้างของคุณเองได้ ที่ 433 เมกะเฮิรตซ์ ความยาวที่เหมาะสมคือ 16 ซม. สำหรับเสาอากาศแบบลวดตรง ในการทำขดลวด ให้ใช้ลวดแกนแข็งที่มีฉนวนหุ้มประมาณ 16 ซม. แล้วพันไว้รอบ ๆ บางอย่าง เช่น ก้านดอกสว่าน 5/32 นิ้วในชั้นเดียว ดึงฉนวนออกจากส่วนที่เป็นเส้นตรงสั้นๆ ที่ปลายด้านหนึ่ง แล้วต่อเข้ากับแผงเครื่องส่ง/เครื่องรับของคุณ ฉันพบว่าลวดจากสายเคเบิลอีเทอร์เน็ตที่เป็นเศษซากทำงานได้ดีกับเสาอากาศ บอร์ดตัวส่งสัญญาณมักจะมีที่สำหรับบัดกรีเสาอากาศ แต่บอร์ดตัวรับอาจมีเพียงหมุด (เช่น RXB6) เพียงตรวจสอบให้แน่ใจว่าการเชื่อมต่อนั้นปลอดภัยถ้าคุณไม่บัดกรี

ขั้นตอนที่ 3: ซอฟต์แวร์

ซอฟต์แวร์เครื่องส่งสัญญาณใช้เทคนิคทั่วไปในการทำให้ชิปเข้าสู่โหมดสลีป ในโหมดนั้นจะใช้กระแสน้อยกว่า 0.2ua อินพุตสวิตช์ (D1-D4) มีตัวต้านทานแบบดึงขึ้นภายในเปิดอยู่ แต่ไม่ได้ดึงกระแสใดๆ จนกว่าจะกดสวิตช์ อินพุตถูกกำหนดค่าสำหรับการขัดจังหวะเมื่อเปลี่ยน (IOC) เมื่อกดสวิตช์ จะเกิดการขัดจังหวะและบังคับให้ชิปทำงาน ตัวจัดการอินเตอร์รัปต์ดำเนินการล่าช้าประมาณ 48 วินาทีเพื่อให้สวิตช์ดีบัก จากนั้นทำการตรวจสอบเพื่อพิจารณาว่าสวิตช์ตัวใดถูกกดและเรียกรูทีนที่เหมาะสม ข้อความที่ส่งซ้ำหลายครั้ง (ฉันเลือก 5 ครั้ง) นี่เป็นเรื่องปกติของเครื่องส่งสัญญาณเชิงพาณิชย์เนื่องจากมีการรับส่งข้อมูล RF จำนวนมากบน 433-MHz และ 315-MHz ที่นั่น ข้อความที่ซ้ำกันช่วยให้แน่ใจว่าอย่างน้อยหนึ่งข้อความจะผ่านไปยังผู้รับ

เวลาซิงค์และบิตถูกกำหนดไว้ที่ด้านหน้าของซอฟต์แวร์ตัวส่งสัญญาณ แต่ไบต์ข้อมูลจะฝังอยู่ในรูทีนสี่ปุ่มแต่ละปุ่ม ชัดเจนและง่ายต่อการเปลี่ยนแปลง การเพิ่มไบต์เพื่อให้ข้อความยาวขึ้นก็เป็นเรื่องง่ายเช่นกัน คำจำกัดความเดียวกันทั้งหมดจะรวมอยู่ในซอฟต์แวร์ตัวรับ เช่นเดียวกับคำจำกัดความของไบต์ข้อมูล หากคุณเพิ่มไบต์ข้อมูลลงในข้อความ คุณจะต้องเปลี่ยนการกำหนดสำหรับ “Msg_Length” และเพิ่มไบต์ให้กับตัวแปร “RF_Message” คุณจะต้องเพิ่มรหัสในการเช็คอิน "RF_Message" ใน "loop" เพื่อตรวจสอบการรับไบต์พิเศษที่เหมาะสมและกำหนดไบต์เหล่านั้น

แนะนำ: