สารบัญ:

เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC: 4 ขั้นตอน (พร้อมรูปภาพ)
เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC: 4 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC: 4 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: USB Type C บนโน้ตบุ๊คมีทั้งหมดกี่แบบ แต่ละแบบใช้ทำอะไรได้บ้าง 2024, มิถุนายน
Anonim
เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC
เครื่องส่งและรับสัญญาณอินฟราเรด NEC USB NEC

โปรเจ็กต์นี้เป็นโปรเจ็กต์แยกจากโปรเจ็กต์อื่นที่ฉันกำลังทำอยู่ และเนื่องจากมีการแข่งขัน 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
ข้อมูลบางอย่างเกี่ยวกับโปรโตคอลอินฟราเรด NEC

บทนำสั้นๆ เกี่ยวกับโปรโตคอลนี้ โปรโตคอล 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 หากคุณชอบ ขอบคุณอีกครั้ง.

แนะนำ: