สารบัญ:

วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ: 5 ขั้นตอน
วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ: 5 ขั้นตอน

วีดีโอ: วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ: 5 ขั้นตอน

วีดีโอ: วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ: 5 ขั้นตอน
วีดีโอ: Best Budget-Friendly Apple CarPlay Radio On Amazon? 2024, พฤศจิกายน
Anonim
วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ
วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ
วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ
วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ

สวัสดี, นี่คือ "Instructables" ตัวที่สองของฉัน เนื่องจากฉันชอบทำสิ่งที่ไม่ค่อยมีประโยชน์ นี่คือโครงการสุดท้ายของฉัน:

นี่คือวิทยุ FM พร้อมข้อความวิทยุพร้อมฐานชาร์จซึ่งสามารถตรวจสอบได้ผ่าน Bluetooth และ Android APP

ดังนั้นฉันจะนำเสนอส่วน Arduino ส่วนข้อความวิทยุและส่วนนักประดิษฐ์แอป MIT (นี่เป็นวิธีเดียวที่ฉันมีทักษะเพียงพอในการสร้างและ Android APP)

ด้วยแรงดันไฟที่จ่าย 10;8 โวลต์พร้อมไฟ AC และ 9.6 พร้อมแบตเตอรี่ กำลังสูงสุดคือ 2x 1.5/1.25 วัตต์ RMS ซึ่งเพียงพอแล้ว

RMS (root mean square) กำลังเป็นกำลังที่แท้จริง ไม่เหมือนกับตัวเลขใหญ่ๆ ที่ขายเหมือน watt music หรือ peak power หรืออย่างอื่น)

ผมว่า 1.5 วัตต์ RMS ขายเป็น 8 วัตต์ ได้ในบางร้านครับ!!!!!!

ขั้นแรกให้ส่วนประกอบที่จำเป็น:

กระดานหลัก:

1x Arduino นาโน

1x โมดูลวิทยุ FM SI4703 จาก Sparkfun หรือเทียบเท่า (ใช้พลังงาน 5v และ 3.3V I2C พร้อมแจ็ค 3 ขั้วที่สามารถใช้เป็นเสาอากาศได้)

โมดูล Bluetooth HC-06 1x (คำเตือนซอฟต์แวร์เวอร์ชันใหม่ 3.0 มีชุดคำสั่งที่แตกต่างกันโดยสิ้นเชิง (ฉันใส่ความคิดเห็นบางส่วนในรหัส)

ตัวเปลี่ยนระดับ 1x 4 ช่อง 3.3 5 V

1x MC7805 5v DC คอนเวอร์เตอร์

ตัวเก็บประจุ 1x 2200 µF 25V

2x 1N5404 3 แอมป์ไดโอด

2x 2N2222 ทรานซิสเตอร์

ตัวต้านทาน 1x 1Kohm

ตัวต้านทาน 1x 47 โอห์ม

ตัวต้านทาน KOhm 2x 3.3 (สำหรับการดึงบัส I2C)

ตัวต้านทาน 3x330 โอห์ม (สำหรับไฟ LED)

ตัวต้านทาน 2x6.8 KOhm

ตัวต้านทาน 1x 3.9 KOhm

แผงด้านหน้า

1x 20X4 LCD I2C บัส

ตัวต้านทาน 10x680 โอห์ม

1x LED สีแดง (ฉันไม่มีสีเขียวแล้ว!!) สำหรับแหล่งจ่ายไฟ

1x ไฟ LED สีเหลืองสำหรับโหมดแบตเตอรี่

1x ไฟ LED สีฟ้าสำหรับการเชื่อมต่อ BT

4x (ON)-OFF-(ON) สวิตช์ (เช่นกระจกรถยนต์ไฟฟ้า)

ปุ่มกด 2x

1x สวิตช์เปิด/ปิด

ส่วนประกอบอื่นๆ สำหรับวิทยุ:

2x 100W 10CM 8 โอห์ม HP

เสาอากาศแบบขยายได้ 1x 1 ม. (ประมาณ 75 ซม. เป็นความยาวที่ดีสำหรับ FM ในยุโรปและสหรัฐอเมริกา)

1x ปลั๊กโทรศัพท์ที่ฉันใช้ทำหน้าสัมผัสสำหรับแท่นชาร์จ

1x 1N5404 3 แอมป์ไดโอด (บนหน้าสัมผัสแบตเตอรี่เพื่อหลีกเลี่ยงควันในกรณีที่ยุ่งกับพื้นหรือหน้าสัมผัส 12V)

เพาเวอร์แอมป์ 1x 2X20 วัตต์ (แอมป์สเตอริโอใด ๆ จะใส่ได้ตราบเท่าที่เป็น 12V) ตาม TDA2020 ที่ซื้อในราคา 4 ยูโร

ตัวเชื่อมต่อแบตเตอรี่ 1x 8XAA (ต้องมีขั้นต่ำ 9.6V)

ไม้อัด 10 มม. และ 4 มม. สำหรับกล่อง

ฐานชาร์จ:

แหล่งจ่ายไฟ 1x 12V 3Amp

1x เล็กน้อย 3 หลัก/3 สายโวลต์มิเตอร์

3 หน้าสัมผัส (ทำจากปลั๊กโทรศัพท์)

1x 1N5404 3 แอมป์ไดโอด (บนหน้าสัมผัส 12V)

สวิตช์คันโยก 2 อัน (เพื่อจ่ายไฟให้กับแหล่งจ่ายไฟ AC เมื่อวิทยุอยู่บนฐานชาร์จ)

1x สวิตช์เปิด/ปิด (เพื่อปิดฐานชาร์จหากจำเป็น)

ไม้อัด 10 มม. และ 4 มม. สำหรับฐาน

ทั้งหมด รวมไม้อัด มันไม่เกิน 70€

ขั้นตอนที่ 1: 4703 Radio Part

ขั้นแรกให้แก้ไข:

โมดูลควรจะใช้สายชุดหูฟังเป็นเสาอากาศ ในโครงการของฉัน มันไม่มีประโยชน์ ดังนั้นเราจะต้องทำการปรับเปลี่ยนเล็กน้อยเพื่อเชื่อมต่อและเสาอากาศภายนอกก่อน

ในโมดูลนี้ แจ็คกราวด์ 3 ขั้วไม่ได้เชื่อมต่อโดยตรงกับกราวด์ แต่ผ่านการเหนี่ยวนำ (เพื่อหยุดความถี่ FM) และตัวเก็บประจุเพื่อเชื่อมต่อความถี่ FM กับอินพุตเสาอากาศของ SI4703

ดังนั้นวิธีที่ดีที่สุดคือเชื่อมต่อเสาอากาศโดยตรงกับพินกราวด์ของแจ็คและบัดกรีสายเคเบิลสองเส้นสำหรับเอาต์พุตเสียง

ภาพ
ภาพ

เพื่อป้องกันเสียงรบกวนในเสียง (โดยเฉพาะจาก Bluetooth) ฉันใส่โมดูล FM ในกล่องพลาสติกขนาดเล็กที่หุ้มด้วยเทปทองแดงที่เชื่อมต่อกับพื้น

ภาพ
ภาพ

โปรโตคอล RDS/วิทยุข้อความ:

ก่อนอื่น ผมต้องขอขอบคุณ Nathan Seidle เนื่องจากผมได้รับแรงบันดาลใจอย่างเต็มที่จากรายการ "TEST_FM" ของเขาในเดือนมิถุนายน 2011

และตามที่ตกลงกันไว้ ฉันจะดีใจมากที่จะจ่ายเบียร์ให้เขา ถ้าวันหนึ่งเขาหายไปในหมู่บ้านเล็ก ๆ ของฉันที่ปลายสุดของบริตตานี!!

ฉันใช้โปรแกรมของเขามากเพราะไม่ต้องการใช้ไลบรารี่ที่มีอยู่ซึ่งค่อนข้างใหญ่สำหรับพื้นที่หน่วยความจำนาโนที่แย่ และยังเป็นเพราะมันจะดีกว่าเสมอที่จะเจาะลึกความเป็นไปได้ของส่วนประกอบโดยการดำน้ำโดยตรง การลงทะเบียน

การปรับเปลี่ยนหลักที่ฉันทำขึ้นสำหรับการสำรวจ RDS

ฉันใช้ประโยชน์จากความเป็นไปได้ที่จะทริกเกอร์การขัดจังหวะบนพิน GPI02 โดยการตั้งค่าบิต RDSIEN และค่า GPIO2 เป็น 01

สิ่งนี้จะทริกเกอร์การขัดจังหวะบนพิน 3 ของ nano

สิ่งนี้จะป้องกันไม่ให้โพลการลงทะเบียน RDS เนื่องจากจะเรียกใช้โปรแกรม Radio Text เฉพาะเมื่อกลุ่มข้อความวิทยุของ 4 char พร้อมใช้งานโดยไม่มีข้อผิดพลาด (โหมดไม่ใช่ verbose)

เพื่อให้มีข้อความวิทยุแบบเต็ม เราต้องรวบรวมอักขระไม่เกิน 16 บล็อกจาก 4 อักขระ (ลงทะเบียน RDSC/RDSB ของกลุ่ม 2A หรือ 2B) ฉันใส่ข้อมูลจำนวนมากในรายการเพื่ออธิบายสิ่งที่ฉันทำ

นี่คือคำอธิบายของการลงทะเบียนข้อมูลสำหรับข้อความวิทยุ (RDSSA/RDSC)

ภาพ
ภาพ

ในการลงทะเบียน RDSSB (บล็อก 2)

ค่า 4 ใน A3/0 หมายถึง (กลุ่มข้อความ)

B0 หมายถึงข้อความ A (64 ตัวอักษร) หรือ B (32 ตัวอักษร) (ไม่เคยเห็นข้อความ B ในการใช้งาน………..)

PT0 ถึง PT4 เป็นดัชนีของกลุ่มอักขระ 4 ตัว (0 ถึง 15)

ควรใช้ PT5 เป็นตัวบ่งชี้ข้อความ A/B (หมายถึง "นี่คือข้อความใหม่") แต่ไม่ได้ใช้ในลักษณะนี้เสมอไป ขึ้นอยู่กับสถานีวิทยุ ดังนั้นจึงไม่สามารถใช้กับรายการข้อความวิทยุได้

ข้อความวิทยุ 4 ตัวอักษรอยู่ใน RDSSC และ RDSSD (บล็อก 3 และ 4)

ฉันแนะนำให้คุณอ่านเอกสารที่น่าสนใจมากเกี่ยวกับโปรโตคอล RDS ใน SI4703 =>AN243 จาก Silicon labs

ฉันยังรีเซ็ตบิต SKMODE ในการลงทะเบียน POWERCFG (ดูเอกสารข้อมูล SI4703) เพื่อให้อยู่ในช่วงความถี่ขณะค้นหาช่องสัญญาณ

การอ่าน datashhet จะช่วยได้มากในการทำความเข้าใจรหัสและการจัดการการลงทะเบียนทั้งหมด

ขั้นตอนที่ 2: ฐานชาร์จ

ฐานชาร์จ
ฐานชาร์จ
ฐานชาร์จ
ฐานชาร์จ
ฐานชาร์จ
ฐานชาร์จ

ไม่มีอะไรจะเพิ่มเติมมากนัก

รูปภาพสามารถพูดได้ดีขึ้น

เพิ่งเพิ่มไดโอด 1N5404 บนหน้าสัมผัส 12 โวลต์

1) เพื่อหลีกเลี่ยงปัญหาในกรณีที่หน้าสัมผัสแบตเตอรี่สัมผัสกับหน้าสัมผัส 12 โวลต์เมื่อวางวิทยุบนฐาน (แต่ไม่เคยเกิดขึ้น)

2) ลดระดับแรงดันไฟฟ้าลงเหลือ 10.8 โวลต์ (มีไดโอดบนเมนบอร์ดด้วย) เนื่องจาก MC7805 อาจร้อนขึ้นเล็กน้อยเมื่อเปลี่ยนจาก 12V เป็น 5 โวลต์ด้วยกระแสไฟ 1 แอมป์ (ฉันขันเหล็กชิ้นหนึ่งเป็นฮีทซิงค์ 7805)

ฉันเพิ่มโวลต์มิเตอร์แบบเซ็กเมนต์ 3 x7 ขนาดเล็กเพื่อระบุโหลดแบตเตอรี่

อุปกรณ์นี้มี 3 สายเพื่อลดการสิ้นเปลือง (มากกว่า 1 เมกะโอห์มบนสาย mesurment) ซึ่งช่วยให้วิทยุบนฐานปิดเป็นเวลานานโดยไม่ต้องคายประจุแบตเตอรี่

ภาพ
ภาพ

สวิตช์คันโยก 2 อันใช้เพื่อปิดแหล่งจ่ายไฟ AC เมื่อวิทยุปิดฐาน (เพื่อหลีกเลี่ยงไม่ให้มี 12V บนหน้าสัมผัส)

ภาพ
ภาพ

ตัวกล่องทำด้วยไม้อัด (ก่อนจะทาสีบนภาพ) ให้ลองนึกดูว่าจะทำกล่องสวยๆ ยังไง เพราะของผมไม่เซ็กซี่มาก!!!!!

ฉันประหลาดใจมาก แต่ฐานชาร์จทำงานได้ดีและฉันไม่เคยมีควันในขณะที่เชื่อมโยงไปถึงวิทยุ………….

ขั้นตอนที่ 3: กล่อง

กล่อง
กล่อง
กล่อง
กล่อง
กล่อง
กล่อง
กล่อง
กล่อง

ฉันเดาว่าทุกคนน่าจะชอบทำตามที่เขาต้องการตามความสามารถทางศิลปะของเขา !!!!!

อย่างไรก็ตาม ฉันจะอธิบายสั้น ๆ ว่าฉันจะสร้างสิ่งที่ดูเหมือนกล่องเครื่องมืออย่างน่ากลัวได้อย่างไร

ด้านหน้าและด้านหลังตัดด้วยไม้อัดหนา 4 มม. 15x45 ซม.

บนและล่างเป็นไม้อัด 10 มม. 15x45 ซม.

ด้านข้างและพาร์ติชั่นภายใน 2 พาร์ติชั่น (2 2 ตำแหน่งสำหรับ HP และส่วนประกอบตรงกลาง) เป็นไม้อัด 10 มม. 13x13 ซม.

ที่แผงด้านหน้าฉันทำรูขนาด 2 x10 ซม. สำหรับ HP และรูสี่เหลี่ยมขนาด 14x14 เพื่อใส่กระจกออร์แกนิกขนาด 15x15 2 มม. ที่ฉันทาด้วยสีดำ (เพิ่มหลังจากทาสีสติกเกอร์ที่พิมพ์แบบโปร่งใสแล้ว แต่ไม่สามารถอ่านได้เนื่องจากสีดำ สีข้างหลัง)

ฉันทำ 2 รูที่ด้านบน:

หนึ่งอันสำหรับโพเทนชิออมิเตอร์ของ Power Amp (เพื่อปรับระดับหากจำเป็น) และยังเป็นเอาต์พุตความร้อน

อีกอันสำหรับเสาอากาศ

ที่แผงด้านหลังฉันทำ 2 รู:

หนึ่งอันสำหรับปลั๊ก USB (เสียบโดยตรงบนนาโน)

หนึ่ง 16 มม. สำหรับการระบายความร้อนด้วยอากาศ (รู 14 มม. ของโพเทนชิออมิเตอร์ของเพาเวอร์แอมป์กำลังส่งสัญญาณการระบายความร้อนด้วยอากาศด้านบน)

ด้ามจับทำจากท่อทองแดง 12 มม. ทาสีดำ

ส่วนประกอบทั้งหมดของภาพด้านบนหาตำแหน่งในช่องกลาง (ต่อมาฉันต้องใส่แบตเตอรี่ในช่อง HP ด้านซ้าย เพราะมันอยู่ใกล้โมดูล HC06 BT ในช่องหลักมากเกินไป)

แค่นั้นแหละ

แน่นอนว่ามันต้องมีอะไรเซ็กซี่กว่านี้แน่ๆ!!!!!

ขั้นตอนที่ 4: ส่วน Arduino (แผนผังและโค้ด)

ฉันพยายามใส่ข้อมูลให้มากที่สุดในความคิดเห็นของโปรแกรม

ข้อมูลเพิ่มเติม

โพรซีเดอร์ Decode_TXT ถูกใช้โดยโพรซีเดอร์ Bluetooth และโพรซีเดอร์สวิตช์

คำหลักบางคำถูกใช้โดยทั้งสองขั้นตอน

v+ => เพื่อเพิ่มระดับเสียง

v- => ลดลง

f+ => เพื่อเพิ่มความถี่ขั้นที่ 100 Khz

f- =>ลดลง

su+=> แสวงหา

sd-=> ค้นหาลง

prefu => เพิ่มจำนวนช่องที่เลือกไว้ล่วงหน้า

prefd => ลดลง

สวัสดี =>ส่งโดยแอพ Android ระหว่างการเชื่อมต่อบลูทู ธ รหัสจะส่งสถานะของวิทยุกลับ

บาย => ส่งโดย APP เมื่อ BT ตัดการเชื่อมต่อ

pow => ส่งโดยวิทยุไปยัง App ในโหมดจ่ายไฟ (บนฐานชาร์จ)

bat => เมื่ออยู่ในโหมดแบตเตอรี่

lb => ส่งเมื่อระดับแบตเตอรี่ต่ำเกินไป (ประมาณ 8 โวลต์)

การสื่อสารผ่านบลูทูธมีความปลอดภัยโดยลูปควบคุม:

ทุกครั้งที่วิทยุ FM ส่งข้อมูล ตัวจับเวลาจะเริ่มรอคำตอบ "ตกลง" โดย Android APP

ในกรณีที่มีข้อผิดพลาด 3 รายการ (หมดเวลา) ลิงก์ BT จะถูกตัดโดยวิทยุ (นี่ตัดลิงค์ด้าน Android ด้วย)

อีกด้านหนึ่ง

เมื่อแอพส่งคำสั่ง มันจะรอคำตอบจากวิทยุเพื่อส่งคำสั่งอื่น

ขั้นตอน get_RT เริ่มต้นเมื่อตั้งค่าสถานะ RDS (หลังจากขัดจังหวะที่พิน 3)

นี่คือรหัส (ลิงก์ไปยัง GITHUB)

แผนผัง:

กระดานหลักวิทยุ FM (อันที่จริง SI4703 นั้นแยกจากกันในกล่องที่มีฉนวนป้องกัน):

ภาพ
ภาพ

แผงด้านหน้า:

ภาพ
ภาพ

ฐานชาร์จ:

ภาพ
ภาพ

ลิงก์ไปยังไฟล์ Fritzing:

กระดานหลัก FR RADIO

แผงด้านหน้า

แท่นชาร์จ

ขั้นตอนที่ 5: แอพ Android

แอพ Android
แอพ Android
แอพ Android
แอพ Android

ทำด้วยนักประดิษฐ์ APP

นี่คือลิงค์ไปยัง GitHub

วิทยุ FM aia

Android APK

แอพใช้ตัวจับเวลานาฬิกา 2 ตัว:

1) สำหรับการสื่อสารบลูทูธ (100ms)

2) สำหรับไฟ LED กระพริบแบตเตอรี่เมื่อโหลดอยู่ที่ประมาณ 8 v (1000ms)

เป็นครั้งแรก คุณจะต้องจับคู่โมดูล HC06 กับสมาร์ทโฟนหรือแท็บเล็ตของคุณ

ฉันใช้ TinyDB เพื่อบันทึกที่อยู่ BT ของโมดูล HC06 การเชื่อมต่อครั้งแรกจะมีการเปิดใช้งานปุ่มที่อยู่ BT และคุณจะต้องเลือก HC06 ในรายการ (สำหรับส่วนของฉัน ฉันเปลี่ยนชื่อโมดูล HC06 ใน FM_RADIO)

ในแอปฉันไม่ได้ใช้เปอร์เซ็นต์สำหรับขนาดขององค์ประกอบเสมอไป ดังนั้นจึงอาจมีปัญหาที่กระจัดกระจายขึ้นอยู่กับสมาร์ทโฟน

ของผมเป็น Galaxy note 3 หน้าจอค่อนข้างใหญ่……..

ดังนั้นฉันจึงใช้เวลาอย่างดีในการค้นพบ SI4703 ที่เล็กแต่มีประสิทธิภาพมากนี้

และมีความสุขมากที่ได้เขียนคำแนะนำนี้

จนถึงโครงการต่อไปของฉัน

ลาก่อน!!!

แนะนำ: