สารบัญ:
- ขั้นตอนที่ 1: 4703 Radio Part
- ขั้นตอนที่ 2: ฐานชาร์จ
- ขั้นตอนที่ 3: กล่อง
- ขั้นตอนที่ 4: ส่วน Arduino (แผนผังและโค้ด)
- ขั้นตอนที่ 5: แอพ Android
วีดีโอ: วิทยุ FM พร้อม RDS (ข้อความวิทยุ) การควบคุม BT และฐานการชาร์จ: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
สวัสดี, นี่คือ "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
ทำด้วยนักประดิษฐ์ 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 ที่เล็กแต่มีประสิทธิภาพมากนี้
และมีความสุขมากที่ได้เขียนคำแนะนำนี้
จนถึงโครงการต่อไปของฉัน
ลาก่อน!!!
แนะนำ:
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: 3 ขั้นตอน
All Band Receiver พร้อม SI4732 / SI4735 (FM / RDS, AM และ SSB) พร้อม Arduino: เป็นโปรเจ็กต์เครื่องรับย่านความถี่ทั้งหมด ใช้ห้องสมุด Arduino Si4734 ห้องสมุดนี้มีตัวอย่างมากกว่า 20 ตัวอย่าง คุณสามารถฟัง FM ด้วย RDS สถานี AM (MW) ในพื้นที่ SW และสถานีวิทยุสมัครเล่น (SSB) เอกสารทั้งหมดที่นี่
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: 5 ขั้นตอน
อินเทอร์เฟซ ESP32 พร้อม SSD1306 Oled พร้อม MicroPython: Micropython เป็นการเพิ่มประสิทธิภาพของ python และมีขนาดเล็กของ python ซึ่งหมายถึงการสร้างสำหรับอุปกรณ์ฝังตัวซึ่งมีข้อจำกัดด้านหน่วยความจำและใช้พลังงานต่ำ Micropython สามารถใช้ได้กับคอนโทรลเลอร์หลายตระกูล ซึ่งรวมถึง ESP8266, ESP32, Ardui
PWM พร้อม ESP32 - Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: 6 ขั้นตอน
PWM พร้อม ESP32 | Dimming LED พร้อม PWM บน ESP 32 พร้อม Arduino IDE: ในคำแนะนำนี้เราจะดูวิธีสร้างสัญญาณ PWM ด้วย ESP32 โดยใช้ Arduino IDE & โดยทั่วไปแล้ว PWM จะใช้เพื่อสร้างเอาต์พุตแอนะล็อกจาก MCU ใดๆ และเอาต์พุตแอนะล็อกนั้นอาจเป็นอะไรก็ได้ระหว่าง 0V ถึง 3.3V (ในกรณีของ esp32) & จาก
วิทยุ LoRa Ra-01 พร้อม STM32 และ ESP32: 11 ขั้นตอน
Radio LoRa Ra-01 พร้อม STM32 และ ESP32: เนื่องจากหัวข้อนี้เป็นที่นิยมในหมู่ผู้ที่ติดตามโพสต์ของฉัน ฉันจึงตัดสินใจพูดถึง LoRa วันนี้ อย่างไรก็ตาม ฉันจะพูดถึงเรื่องนี้ด้วยองค์ประกอบใหม่: คราวนี้โดยไม่ต้องใช้ ESP32 แต่ใช้ STM32 แทน ฉันอยากจะโพสท่า
วิธีใช้บอร์ดวิทยุ FM Si4703 พร้อม RDS - บทช่วยสอน Arduino: 5 ขั้นตอน (พร้อมรูปภาพ)
วิธีใช้บอร์ดวิทยุ FM Si4703 พร้อม RDS - บทช่วยสอน Arduino: นี่คือบอร์ดประเมินผลสำหรับชิปจูนเนอร์ Si4703 FM ของ Silicon Laboratories นอกเหนือจากการเป็นวิทยุ FM ธรรมดาแล้ว Si4703 ยังสามารถตรวจจับและประมวลผลทั้งข้อมูล Radio Data Service (RDS) และ Radio Broadcast Data Service (RBDS) ได้ T