สารบัญ:
- ขั้นตอนที่ 1: ข้อมูลบางอย่างเกี่ยวกับ NEC Infra-Red Protocol
- ขั้นตอนที่ 2: ส่วนประกอบที่จำเป็น
- ขั้นตอนที่ 3: ซอฟต์แวร์และการทำงานของอุปกรณ์
- ขั้นตอนที่ 4:
วีดีโอ: เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC: 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
โปรเจ็กต์นี้เป็นโปรเจ็กต์แยกจากโปรเจ็กต์อื่นที่ฉันกำลังทำอยู่ และเนื่องจากมีการแข่งขัน Remote Control 2017 ใน Instructables ฉันคิดว่าฉันโพสต์โปรเจ็กต์นี้ ดังนั้นถ้าคุณชอบโครงการนี้โปรดลงคะแนนให้ ขอบคุณ.
อย่างที่คุณอาจทราบ ฉันเป็นแฟนตัวยงของตัวควบคุม PIC แบบ 8 บิตของ Microchip โปรดดูที่:https://www.microchip.com/design-centers/8-bit
ฉันใช้ภาษาโปรแกรม JAL เนื่องจากมันดูเหมือน Pascal (ซึ่งฉันก็ชอบด้วย) คอมไพเลอร์ JAL และไลบรารีสามารถดาวน์โหลดได้จาก: https://www.justanotherlanguage.org/downloads (เลื่อนลงเพื่อดูเวอร์ชันล่าสุดที่เผยแพร่)
โดยปกติฉันเขียนโค้ดทั้งหมดด้วยตัวเองเพื่อทำความเข้าใจสิ่งที่ฉันทำ แต่สำหรับโครงการนี้ ฉันต้องเชื่อมต่อ PIC กับพอร์ต USB ของพีซี ดังนั้นฉันจึงต้องใช้ไดรเวอร์อนุกรม JAL USB สำหรับคอนโทรลเลอร์ PIC นี้ ฉันใช้ไดรเวอร์อนุกรม USB ในแพ็คเกจดาวน์โหลด JAL ซึ่งดูเหมือนว่าจะทำงานได้ดี เนื่องจากไดรเวอร์อนุกรม USB นี้เขียนขึ้นสำหรับ PIC หนึ่งตัว ฉันจึงใช้ PIC นั้นซึ่งเป็น PIC18F14K50 คอนโทรลเลอร์นี้มีฟังก์ชันการทำงานมากกว่าที่ฉันต้องการสำหรับโปรเจ็กต์นี้ ดังนั้นฉันจึงอยู่ในขั้นตอนที่จะทำให้ไดรเวอร์ USB นี้ทำงานบน PIC เวอร์ชันที่ง่ายกว่า PIC16F1455 ซึ่งมีราคาถูกกว่าเช่นกัน
แล้วโครงการนี้เกี่ยวกับอะไร? ด้วยอุปกรณ์ที่กล่าวถึงในคำแนะนำนี้ คุณสามารถส่งและรับคำสั่ง Infra Red Remote Control จากและไปยังพีซีของคุณผ่านพอร์ต USB โดยใช้โปรโตคอล NEC Infra-Red ยอดนิยม ด้วยวิธีนี้ คุณสามารถตรวจสอบคำสั่งอินฟราเรด และควบคุมอุปกรณ์ใดๆ ที่ใช้โปรโตคอล NEC Infra-Red Remote Control โครงการถอดรหัสและแปลข้อความอินฟาเรดเป็นไบต์ที่อยู่และไบต์คำสั่งหรือเป็นข้อความซ้ำ แน่นอนว่าที่อยู่นี้ใช้เพื่อระบุอุปกรณ์บางอย่าง เช่น ทีวีหรือวิทยุ โดยที่ไบต์คำสั่งระบุฟังก์ชันที่จำเป็นต้องดำเนินการ เช่น เพิ่มระดับเสียง ลดระดับเสียง นอกจากการถอดรหัสข้อความเหล่านี้แล้ว ยังสามารถส่งผ่านอินฟราเรดโดยใช้อุปกรณ์นี้ได้อีกด้วย
ขั้นตอนที่ 1: ข้อมูลบางอย่างเกี่ยวกับ NEC Infra-Red Protocol
บทนำสั้นๆ เกี่ยวกับโปรโตคอลนี้ โปรโตคอล NEC Infra Red Remote Control ใช้ในอุปกรณ์และรีโมทคอนโทรลจำนวนมากที่คุณสามารถซื้อได้ มันปรับสัญญาณอินฟาเรดบนพาหะ 38 kHz และใช้การเข้ารหัสระยะทางพัลส์สำหรับการเข้ารหัสตรรกะ '1' และตรรกะ '0' โปรโตคอลใช้การตรวจสอบอย่างง่ายเพื่อดูว่าข้อความนั้นใช้ได้หรือไม่ โดยส่งทั้งที่อยู่และไบต์คำสั่งและเวอร์ชันกลับด้านของข้อความเดียวและข้อความเดียวกัน และตรวจสอบว่าเหมือนกันหรือไม่หลังจากรับ เมื่อกดปุ่มบนรีโมทคอนโทรล เครื่องจะส่งข้อความอินฟาเรดที่สมบูรณ์พร้อมที่อยู่และคำสั่งหนึ่งครั้ง การกดปุ่มค้างไว้จะทำให้การส่งข้อความซ้ำสั้นลงโดยไม่มีข้อมูลที่อยู่และคำสั่ง เวลาทำซ้ำของข้อความที่ส่งในขณะที่กดปุ่มค้างไว้จะได้รับการแก้ไข
ดูข้อมูลเพิ่มเติมเกี่ยวกับโปรโตคอล NEC Infra Red ได้ที่:https://sibotic.files.wordpress.com/2013/12/adoh-n…
ขั้นตอนที่ 2: ส่วนประกอบที่จำเป็น
คุณต้องมีองค์ประกอบต่อไปนี้สำหรับโครงการนี้:
- ไมโครคอนโทรลเลอร์ PIC PIC18F14K50 ดู:https://www.win-source.net/embedded-microcontrolle…
- คริสตัล 12 MHz
- ตัวเก็บประจุเซรามิก: 2 * 100nF, 1 * 220 nF, 2 * 18pF
- ตัวเก็บประจุด้วยไฟฟ้า 47 ยูเอฟ/16V
- ตัวรับสัญญาณอินฟราเรด TSOP4838 ดู:https://www.win-source.net/optical-sensors-photo-d…
- ตัวต้านทาน: 2 * 33k, 1 * 4k7, 1 * 1k, 3 * 330 โอห์ม, 1 * 22 โอห์ม
- ไฟ LED: 2 * อินฟาเรด, 1 สีเหลืองอำพัน, 1 สีเขียว, 1 สีแดง
- ทรานซิสเตอร์ BC640 ดู:https://www.win-source.net/transistorsbjt-single-b…
- จัมเปอร์ (อุปกรณ์เสริม)
- ขั้วต่อ USB
ดูแผนผังเกี่ยวกับวิธีการเชื่อมต่อส่วนประกอบต่างๆ ฉันใช้เขียงหั่นขนมสำหรับโครงการนี้ตามที่คุณเห็นในภาพและในวิดีโอ วงจรได้รับพลังงานจากพอร์ต USB ของพีซี
ขั้นตอนที่ 3: ซอฟต์แวร์และการทำงานของอุปกรณ์
ดังที่ได้กล่าวไปแล้ว ซอฟต์แวร์นี้เขียนขึ้นสำหรับ PIC18F14K50 มันถูกเขียนใน JAL ไฟล์ Intel Hex สำหรับการเขียนโปรแกรม PIC ของคุณแนบมาด้วย ซอฟต์แวร์ทำหน้าที่ดังต่อไปนี้:
- ถอดรหัสข้อความอินฟราเรด NEC และส่งไปยังพีซีผ่าน USB ข้อความถูกถอดรหัสจากบิตสตรีมที่สร้างโดยเครื่องรับอินฟาเรดและแปลเป็นข้อความคำสั่งที่อยู่ + หรือข้อความซ้ำ
- การส่งข้อความ NEC Infra Red ที่ได้รับจากพีซีผ่าน USB โปรดทราบว่าซอฟต์แวร์ยังสร้างความถี่พาหะ 38 kHz ซึ่งขับไฟ LED อินฟาเรดโดยตรง ขนานกับ LED อินฟราเรด LED สีเหลืองอำพันเชื่อมต่อเพื่อทำให้การส่งข้อความมองเห็นได้
โดยค่าเริ่มต้น วงจรนี้จะปิดเสียงเครื่องรับอินฟาเรดในระหว่างการส่งข้อความอินฟาเรด หากวางจัมเปอร์ไว้ที่ตำแหน่ง "เปิดเสียง" ระบบจะปิดฟังก์ชันปิดเสียงนี้ ในกรณีดังกล่าว ข้อความอินฟาเรดที่ส่งจะถูกถอดรหัสควบคู่ไปกับการส่ง และหลังจากการรับอย่างสมบูรณ์ ข้อความอินฟาเรดที่ได้รับไปยังพีซีจะถูกส่งไปยังพีซี หากได้รับข้อความอินฟราเรด NEC ที่ถูกต้อง ไฟ LED 'IR OK' สีแดงจะสว่างขึ้น
เพื่อใช้งานอุปกรณ์นี้ คุณต้องมีโปรแกรม Terminal Emulator บนพีซีของคุณ ฉันใช้ 'ปลวก' เพื่อจุดประสงค์นี้ เมื่ออุปกรณ์เชื่อมต่อกับพีซี Windows 10 จะรับรู้โดยอัตโนมัติว่าเป็นพอร์ต COM เพิ่มเติม เนื่องจากดูเหมือนว่าจะมีไดรเวอร์ Microchip สำหรับอุปกรณ์นี้ใน Windows 10 ที่ติดตั้งไว้ล่วงหน้า การตั้งค่าสำหรับพอร์ต COM นี้ควรเป็น: 19200 baud 8 bits, 1 stop-bit, no parity และใช้ RTS/CTS flow control อัตราบอดสามารถตั้งค่าเป็นค่าอื่น ๆ ได้หากต้องการ ดังนั้นอัตราบอดที่ 115200 จะทำงานด้วย เมื่อกำหนดค่าอุปกรณ์ผ่านพอร์ต USB โดยเชื่อมต่อผ่านโปรแกรม Terminal Emulator แล้ว ไฟ LED 'Configured' สีเขียวจะสว่างขึ้น
การรับข้อความอินฟาเรด
เมื่อได้รับข้อความอินฟราเรด สิ่งต่อไปนี้จะแสดงในโปรแกรม Terminal Emulator:
- ‘A:xx C:xx’ ในกรณีของข้อความที่สมบูรณ์ โดยที่ xx คือเลขฐานสิบหกของที่อยู่ (A) และคำสั่ง (C) ค่าสำหรับทั้งคู่สามารถอยู่ในช่วงตั้งแต่ 0x00 (0) ถึง 0xFF (255)
- 'ซ้ำ' ในกรณีที่มีข้อความซ้ำ
การส่งข้อความอินฟาเรด
สำหรับสิ่งนี้ ฉันจำเป็นต้องกำหนดโปรโตคอลที่บอกอุปกรณ์ว่าต้องทำอะไร เนื่องจากเราใช้ Terminal Emulator ฉันจึงใช้อักขระ ASCII เพื่อกำหนดข้อความ โปรโตคอลในการส่งคำสั่งไปยังอุปกรณ์ใช้รูปแบบต่อไปนี้: '!AACCRR#' โดยที่ (อักขระทั้งหมดไม่คำนึงถึงขนาดตัวพิมพ์):
- '!' หมายถึงจุดเริ่มต้นของข้อความ
- 'AA' คือค่าของที่อยู่ในรูปแบบเลขฐานสิบหก ดังนั้น '0' ถึง '9' และ 'A' ถึง 'F'
- 'CC' คือค่าของคำสั่งในรูปแบบเลขฐานสิบหก ดังนั้น '0' ถึง '9' และ 'A' ถึง 'F'
- 'RR' คือจำนวนข้อความซ้ำที่ต้องส่งในรูปแบบเลขฐานสิบหก ดังนั้น '0' ถึง '9' และ 'A' ถึง 'F' ค่า 00 หมายถึงไม่มีการส่งข้อความซ้ำ
ตัวอย่างของข้อความที่มีที่อยู่ 0x07 คำสั่ง 0x05 และ 3 การทำซ้ำควรพิมพ์ดังนี้ในโปรแกรม Terminal Emulator: !070503#
อุปกรณ์มีการตอบสนองที่แตกต่างกันหลังจากส่งคำสั่งจากพีซี:
- 'Y' หมายความว่ามีการส่งข้อความ โปรดทราบว่าการตอบกลับนี้จะได้รับหลังจากส่งข้อความทั้งหมด รวมทั้งการทำซ้ำทั้งหมด ดังนั้นอาจใช้เวลาสักครู่ก่อนที่จะได้รับคำตอบนี้เมื่อจำเป็นต้องส่งข้อความซ้ำหลายครั้ง
- 'N' หมายความว่ามีอักขระที่ผิดกฎหมายในข้อความที่ส่งไปยังพีซี
- 'B' หมายความว่าการส่งสัญญาณอินฟราเรดยังคงไม่ว่างเมื่อได้รับคำสั่ง
- ?' หมายความว่าอุปกรณ์กำลังคาดหวัง '!' แต่ได้รับอย่างอื่น
ขั้นตอนที่ 4:
ฉันทำวิดีโอสั้น ๆ เกี่ยวกับการทำงานของอุปกรณ์ สำหรับวิดีโอนี้ ฉันใช้หลอดไฟ LED เชิงพาณิชย์ที่มีรีโมทคอนโทรลเพื่อดูว่าทั้งการส่งและรับทำงาน วิดีโอแสดงสิ่งต่อไปนี้:
- การกำหนดค่าอุปกรณ์ USB จากโปรแกรม Terminal Emulation เมื่อกำหนดค่าอุปกรณ์แล้ว จะตอบสนองด้วยข้อความ 'USB NEC Infra Red Transmitter and Receiver' บนอุปกรณ์ LED สีเขียวจะเปิดขึ้นเพื่อแสดงว่าอุปกรณ์ได้รับการกำหนดค่าโดยพีซี
- ไฟจะเปิดขึ้นด้วยรีโมทคอนโทรล สำหรับสิ่งนี้ การควบคุมระยะไกลใช้ที่อยู่ 0x00 และคำสั่ง 0x07 ซึ่งอุปกรณ์ถอดรหัสและแสดงบนพีซี
- ไฟดับด้วยรีโมทคอนโทรล สำหรับสิ่งนี้ การควบคุมระยะไกลใช้ที่อยู่ 0x00 และคำสั่ง 0x06 ซึ่งถูกถอดรหัสโดยอุปกรณ์และแสดงบนพีซี
- หลอดไฟจะเปิดขึ้นโดยการพิมพ์คำสั่งรีโมทคอนโทรลเดียวกันบนพีซีโดยมีค่าการทำซ้ำเป็น 0 (ไม่มีการทำซ้ำ) ดังนั้นโดยการพิมพ์ '!000700#' ไฟจะเปิดขึ้น
- เปลี่ยนสีของโคมไฟเป็นสีน้ำเงินโดยใช้ที่อยู่ 0x00 และคำสั่ง 0x0A และใช้ 0x30 ซ้ำ ไฟ LED สีเหลืองอำพันซึ่งเชื่อมต่อแบบขนานกับไฟ LED อินฟราเรดแบบอินฟาเรดกำลังกะพริบเพื่อแสดงการส่งข้อความซ้ำผ่านอินฟาเรด ข้อความที่พิมพ์คือ '!000A30#'
โปรดทราบว่าในระหว่างการบันทึกวิดีโอนี้ การเชื่อมต่อจัมเปอร์ 'Unmute' ทำงานอยู่ ดังนั้นคุณจึงสามารถเห็นข้อความที่ส่ง '!000700#' ซึ่งได้รับเป็น 'A:00 C:07' ในโปรแกรม Terminal Emulation ในการสาธิตการใช้หลอดไฟเป็นสีน้ำเงิน คุณจะเห็นว่าไฟ LED สีแดงติดสว่างตราบเท่าที่ข้อความที่ถูกต้อง - ทำซ้ำ - ถูกส่ง เนื่องจากได้รับและถอดรหัสควบคู่ไปกับการส่งข้อความซ้ำ
ขอให้สนุกกับการสร้างโครงการของคุณเองและตั้งตารอปฏิกิริยาของคุณ อย่าลืมโหวตให้โครงการนี้ในการประกวด Remote Control 2017 หากคุณชอบ ขอบคุณอีกครั้ง.
แนะนำ:
การแปลง USB Joystick USB ในปี 1980: 7 ขั้นตอน (พร้อมรูปภาพ)
การแปลง USB ของจอยสติ๊ก USB ในยุค 1980: จอยสติ๊ก Cheetah 125 รุ่นดั้งเดิมจากปี 1980 มีการแปลงโฉมใหม่ด้วยไมโครสวิตช์ใหม่ ปุ่มอาร์เคด และบอร์ดควบคุม Pimoroni Player X ขณะนี้มีสี่ "ไฟ" ปุ่มและเชื่อมต่อผ่าน USB พร้อมสำหรับ
Easy 5 นาที USB Solar Charger/Aurvival USB Charger: 6 ขั้นตอน (พร้อมรูปภาพ)
Easy 5 นาที USB Solar Charger/Survival USB Charger: สวัสดีทุกคน! วันนี้ฉันเพิ่งทำ (อาจ) เครื่องชาร์จแผงโซลาร์เซลล์ usb ที่ง่ายที่สุด! ก่อนอื่นฉันขอโทษที่ไม่ได้อัปโหลดคำแนะนำสำหรับพวกคุณ .. ฉันมีการสอบในช่วงไม่กี่เดือนที่ผ่านมา (จริงๆแล้วไม่กี่สัปดาห์หรือประมาณนั้น.. ) แต่
บอร์ดเข้ารหัสและถอดรหัสโปรโตคอล NEC อินฟราเรด: 5 ขั้นตอน
บอร์ดเข้ารหัสและถอดรหัสโปรโตคอล NEC อินฟราเรด: รับสัญญาณอินฟราเรด NEC ที่มอดูเลตหรือ demodulated และแปลงเป็นไบต์ที่ส่งออกพอร์ตอนุกรม อัตราบอดแบบอนุกรมสามารถเลือกได้จากความเร็วเริ่มต้นสองระดับ โหมดการใช้งานเริ่มต้นส่งลำดับคำสั่งด้วยเฟรมไบต์
วิธีทำที่ชาร์จในรถ USB ของคุณเองสำหรับ iPod หรืออุปกรณ์อื่น ๆ ที่ชาร์จผ่าน USB: 10 ขั้นตอน (พร้อมรูปภาพ)
วิธีทำที่ชาร์จในรถ USB ของคุณเองสำหรับ iPod หรืออุปกรณ์อื่น ๆ ที่ชาร์จผ่าน USB: สร้างที่ชาร์จในรถ USB สำหรับ iPod หรืออุปกรณ์อื่น ๆ ที่ชาร์จผ่าน USB โดยประกบอะแดปเตอร์ในรถยนต์ที่เอาต์พุต 5v และปลั๊ก USB ตัวเมีย ส่วนที่สำคัญที่สุดของโครงการนี้คือการทำให้แน่ใจว่าเอาต์พุตอะแดปเตอร์รถที่คุณเลือกนั้นวางเดิมพัน
เครื่องวัดอุณหภูมิในร่ม/กลางแจ้ง USB (หรือ 'อุปกรณ์ USB เครื่องแรกของฉัน'): 4 ขั้นตอน (พร้อมรูปภาพ)
เครื่องวัดอุณหภูมิในร่ม/กลางแจ้ง USB (หรือ 'อุปกรณ์ USB เครื่องแรกของฉัน'): นี่คือการออกแบบที่เรียบง่ายซึ่งแสดงให้เห็นอุปกรณ์ต่อพ่วง USB บน PIC 18Fs มีตัวอย่างมากมายสำหรับชิป 18F4550 40 พินออนไลน์ การออกแบบนี้แสดงให้เห็นถึงรุ่น 18F2550 28 พินที่เล็กกว่า PCB ใช้ชิ้นส่วนยึดพื้นผิว แต่ทุกค