สารบัญ:
- ขั้นตอนที่ 1: รายการอะไหล่วิทยุ Time Machine ของ WW2
- ขั้นตอนที่ 2: ค้นหาวิทยุเก่า
- ขั้นตอนที่ 3: การถอดวิทยุเก่าและสร้างแชสซีใหม่
- ขั้นตอนที่ 4: การปรับปรุงเคส
- ขั้นตอนที่ 5: Raspberry Pi Zero และแอมพลิฟายเออร์
- ขั้นตอนที่ 6: การสร้างหน้าปัดใหม่
- ขั้นตอนที่ 7: การควบคุมระดับเสียงและตัวเลือก
- ขั้นตอนที่ 8: แหล่งจ่ายไฟและการควบคุม
- ขั้นตอนที่ 9: การติดตั้งเคส
- ขั้นตอนที่ 10: ดาวน์โหลดไฟล์เสียง
- ขั้นตอนที่ 11: วงจรและซอฟต์แวร์เพื่อเล่นไฟล์
- ขั้นตอนที่ 12: บูตซอฟต์แวร์อัตโนมัติเมื่อโหลด
- ขั้นตอนที่ 13: อะไรต่อไป
วีดีโอ: เครื่องเวลาออกอากาศวิทยุ WW2: 13 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
แนวคิดเบื้องหลังนี้คือการใช้บางส่วนที่ฉันโกหกและสร้างตู้เพลงที่สร้างขึ้นในวิทยุเก่า เพื่อให้มีจุดประสงค์เพิ่มเติมเบื้องหลัง ฉันยังตัดสินใจที่จะเติมมันด้วยการออกอากาศทางวิทยุเก่าจาก WW2 จากนั้นจึงนำการปรับความถี่ใหม่มาใช้เพื่อเลือกปีของสงครามแต่ละปี จากนั้นการออกอากาศที่เกี่ยวข้องก็จะเล่น ฉันเคยเห็นคอลเล็กชันการบันทึก MP3 สองสามชุด ดังนั้นทุกอย่างก็พร้อมทำงาน
ในแง่ของฮาร์ดแวร์ที่ฉันชอบคือ Arduino หรือ raspberry pi zero และสำหรับสิ่งนี้ฉันจะใช้ raspberry pi zero อย่างไรก็ตาม มันมีข้อเสียอยู่ และในกรณีนี้คือการขาดเสียงที่ใช้งานง่ายและไม่มีอินพุตแบบอะนาล็อกที่ง่ายดาย เพื่อเอาชนะสิ่งนี้ ฉันมักจะใช้ Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A ซึ่งเป็นวิธีที่ง่ายจริง ๆ ในการเพิ่มเสียงให้กับ Pi และสำหรับอินพุตแบบอะนาล็อก MCP 3002 ซึ่งเป็นตัวแปลง SPI สองช่องสัญญาณ โดยทั่วไปแล้ว ผู้คนมักจะใช้ MCP 3008 ที่มีอินพุต 4 ตัว แต่ฉันคิดว่ามันง่ายเกินไป โชคดีที่ฉันพบซอฟต์แวร์บางตัวที่ใช้งานได้กับสิ่งเหล่านี้ในที่สุด
อีกปัญหาหนึ่งในการใช้ PI คือมันมักจะประสบปัญหาหากคุณปิดมันโดยไม่ปิดระบบ ฉันพบปัญหานี้มานับไม่ถ้วน และดูเหมือนว่าจะทำให้ไฟล์กำหนดค่าเครือข่ายเสียหายเสมอ เนื่องจากสิ่งนี้ถูกมองว่าเป็นแบบสแตนด์อโลนธรรมดาที่อาจมีปัญหา ดังนั้นฉันจึงเพิ่ม Pimoroni On/Off Shim ซึ่งทำการปิดเครื่องอย่างสง่างามด้วยการกดปุ่มเพียงปุ่มเดียว แต่ยังช่วยให้บูตเครื่องได้ด้วยปุ่มเดียวกัน
ขั้นตอนที่ 1: รายการอะไหล่วิทยุ Time Machine ของ WW2
ชิ้นส่วนที่จำเป็น
- วิทยุเก่า
- โปแลนด์ฝรั่งเศส
- กระดาษทราย
- Lexan สำหรับ dial
- หดความร้อน
- Raspberry Pi Zero
- I2S แอมป์
- เปิด/ปิดชิม
- วิทยากร
- อิฐพลัง
- MCP3002
- นำ
- ตัวต้านทาน 270R
- 2x 10k หม้อ
- กดเพื่อทำ Switch
- สาย USB
ขั้นตอนที่ 2: ค้นหาวิทยุเก่า
ขั้นตอนแรกแน่นอนคือการหาวิทยุเก่าที่เหมาะสม และฉันสามารถหาวิทยุเครื่องนี้บนอีเบย์ได้ในราคา 15 ปอนด์ มีสิ่งล่อใจที่จะให้มันทำงานในตอนแรก แต่เมื่อแชสซีออกมาและแสดงตัวต้านทานและตัวเก็บประจุเต็มรูปแบบซึ่งจะต้องเปลี่ยนฉันรู้สึกไม่แย่นักที่จะแยกมันออกจากกัน แม้ว่าจะไม่ใช่ฉากของปี 1940 ก็ตาม แต่ก็มีชุดสร้างบ้านจากยุคนั้นที่ดูคล้ายคลึงกันอย่างแน่นอน
ขั้นตอนที่ 3: การถอดวิทยุเก่าและสร้างแชสซีใหม่
มันค่อนข้างง่ายที่จะแยกชิ้นส่วนเหล่านี้ออกจากกัน โดยทั่วไปดูเหมือนว่าแชสซีจะติดตั้งกับเคสและทุกอย่างติดตั้งอยู่ ดังนั้นเมื่อคลายเกลียวและลูกบิดปล่อย มันก็เลื่อนออก ส่วนใหญ่สร้างขึ้นบนแชสซีย่อยทั้งหมด ความตั้งใจเดิมของฉันคือการใช้ลำโพงจากกล่องลำโพงบลูทูธที่ฉีกขาด แต่ฉันสงสัยว่าอันเก่าจะใช้งานได้หรือไม่ เป็นเรื่องน่าประหลาดใจที่พบว่าไม่เพียงแค่ใช้งานได้ แต่เสียงก็ยอดเยี่ยมเช่นกัน ดังนั้น ขั้นต่อไปที่นี่คือการวัดทุกอย่างต่อไป และสร้างแชสซีใหม่ใน Tinkercad ฉันกำหนดพื้นที่หมุนความถี่ใหม่และเก็บลำโพงไว้ที่เดิม นอกจากนี้ยังเพิ่มแผ่นยึดสำหรับ pi ศูนย์อีกด้วย ฉันพิมพ์ออกมาในรูปแบบ PETG ซึ่งฉันพบว่ามีความทนทานต่อการบิดเบี้ยวน้อยกว่า และการทดลองขนาดพอดีของชิ้นส่วนทั้งหมดดูเหมือนจะแสดงว่าใช้งานได้ ฉันต้องเล่นเล็กน้อยกับการติดตั้งระดับเสียงเพื่อให้หม้อใหม่พอดีและยังคงติดตั้งผ่านเคส
คุณสามารถดาวน์โหลด 3D Chassis ได้ที่นี่ หากคุณต้องการปรับแต่ง
www.thingiverse.com/thing:3174818
ขั้นตอนที่ 4: การปรับปรุงเคส
ตอนนี้ สิ่งแรกที่ต้องทำเมื่อเคสถูกถอดออกคือตัดสินใจว่าจะทำอย่างไรกับการเสร็จสิ้น แม้ว่าเคสจะไม่ได้แย่นัก แต่ตอนแรกฉันคิดว่าจะทำความสะอาดให้คราบสกปรกที่สึกหรอได้ดี บ่อยครั้งที่การเช็ดด้วยน้ำส้มสายชูจะทำให้เคสเก่าสดชื่นขึ้น แต่มีบางจุดที่น้ำยาเคลือบเงาแตกออก ดังนั้นฉันจึงตัดสินใจถอดมันออก สำหรับกล่องไม้แบบเก่า ปกติแล้วจะเคลือบด้วยแผ่นไม้อัดบางๆ แต่ก็ไม่ได้บางมากจนคุณไม่สามารถขัดได้ ขั้นแรกให้ถอดผ้าตะแกรงลำโพงออก ซึ่งน่าขยะแขยงมากโดยมีฝุ่นและสิ่งสกปรกอยู่ประมาณ 50 ปี แล้ววางไว้ข้างหนึ่ง จากนั้นเคลือบ Nitromors อย่างหนาสองสามอัน เครื่องลอกสี และน้ำยาเคลือบเงาเก่าก็หลุดออกมาในที่สุด สิ่งนี้ต้องทำสองครั้งเนื่องจากมันอาจเคลือบเงาในบางจุดเหนือพื้นผิวดั้งเดิม เพื่อล้างรอยขีดข่วนและตกแต่งให้สวยงามยิ่งขึ้น ให้ขัดด้วยกระดาษทราย 100 เม็ด จากนั้นขัดขั้นสุดท้ายด้วยฟองน้ำขัดขนาดกลาง ทำสิ่งนี้ให้สอดคล้องกับเมล็ดพืชแล้วเช็ดด้วยวิญญาณสีขาวเพื่อทำความสะอาดฝุ่น ในเวลาเดียวกัน กล่องก็ติดด้วยกาวไม้ซึ่งไม้วีเนียร์ดึงออกเล็กน้อย กระจังหน้าไม้มีการลอกออกเล็กน้อย จึงมีกาวติดไม้มากขึ้น และดึงชิ้นส่วนกลับเข้าไปหากเป็นไปได้ เมื่อแห้งแล้ว ก็ใช้มีดผ่าตัดทำความสะอาดขอบไม้และทาสีน้ำตาลด้วยสีอะครีลิคทามิย่า
ความคิดแรกของฉันคือเพียงแค่เปลี่ยนผ้าลำโพง แต่ราคาของวัสดุที่ดูเป็นของแท้นั้นค่อนข้างสูงเนื่องจากมีแนวโน้มที่จะขายเป็นชุดยาว หลังจากสำรวจฟอรัมวิทยุโบราณเล็กน้อย ดูเหมือนว่าคุณสามารถนำผ้าเก่ากลับมาแช่น้ำได้ ดังนั้นการใช้น้ำเย็นและน้ำยาล้างจานหลายๆ ครั้ง ฉันจึงแช่ทิ้งไว้ข้ามคืน และน่าประหลาดใจที่เมื่อมันแห้งอีกครั้ง มันก็สะอาดดี
ตอนนี้ฉันกำลังจะจัดการกับพื้นผิวและในตอนแรกตัดสินใจที่จะเคลือบเงามัน จากนั้นคิดถึงการใช้สเปรย์เคลือบเงา และในขณะที่อยู่ในวานิช/เพ้นท์ไอล์ของร้าน DIY ในท้องถิ่นพบขวดยาขัดเงาแบบฝรั่งเศส คิดว่าจะเป็นการตกแต่งที่แท้จริงที่ดีฉันจึงตัดสินใจลองดู ตอนนี้คุณจำเป็นต้องรู้ว่าการขัดเงาแบบฝรั่งเศสนั้นค่อนข้างจะเป็นศิลปะ/ทักษะที่ต้องฝึกฝนอย่างมากเพื่อให้ได้ผลลัพธ์ที่ถูกต้อง คุณสามารถค้นหาคำแนะนำบน YouTube และแม้ว่าจะดูค่อนข้างง่าย แต่ก็เป็นการดำเนินการที่ค่อนข้างยุ่ง ความสามารถพิเศษนี้ดูเหมือนจะทำให้น้ำยาขัดเงาในเศษผ้าที่แช่ในสำลี เพื่อที่คุณจะได้บีบน้ำยาขัดมันลงบนเนื้อไม้ขณะทำงาน หากคุณลองใช้ผ้าขี้ริ้ว ประมาณ 3/4 ของวิธีที่ยาทาเล็บเริ่มแห้งเมื่อเอทานอลระเหยและเศษผ้าเริ่มลาก ดังนั้นในท้ายที่สุด แทนที่จะได้ผิวที่มีความมันวาวสูง ฉันจึงทาเคลือบสองสามชั้น ใช้ทรายเบา ๆ ด้วยกระดาษเกรด 1500 จากนั้นทาอีกสองสามรอบและมันก็ดูโอเค ฉันยังมีคราบฝรั่งเศสที่เล็บอยู่
การทำความสะอาดส่วนอื่น ๆ นั้นง่ายกว่ามากด้วยฮาร์ดแวร์ทั้งหมดที่เข้าสู่เครื่องทำความสะอาดอัลตราโซนิกและหน้าปัดถูกขัดเงาด้วย Silvo Polish บราสโซจะมีทางเลือก แต่ซิลโว่และจาระบีข้อศอกอีกเล็กน้อยก็เพียงพอที่จะทำความสะอาดตัวบ่งชี้หน้าปัด
ในตอนท้ายฉันมีกล่องไม้ที่ดูดีพร้อมสำหรับเครื่องย้อนเวลา
ขั้นตอนในส่วนนี้1. ถอดสลักเกลียว/แป้นหมุนและผ้าออก
2. ไม้ลอกเคสด้วยไนโตรมอร์
3.ขัดลงวีเนียร์
4. ซ่อมตะแกรง
5.ทำความสะอาดผ้าลำโพง
6.ฝรั่งเศสขัดเคส
7.อัลตราโซนิกทำความสะอาดสกรูและลูกบิด
8. ขัดตัวบ่งชี้การหมุน
ขั้นตอนที่ 5: Raspberry Pi Zero และแอมพลิฟายเออร์
ด้วยเอาต์พุตเสียง Raspberry PI ปกตินั้นค่อนข้างง่ายเพราะมีเอาต์พุตแจ็คเสียง แต่สำหรับ Pi Zero ไม่มีตัวเลือกดั้งเดิมที่แท้จริง มีวิธีแก้ปัญหาบางอย่างที่ฉันได้ลองแล้วซึ่งคุณสามารถกำหนดเส้นทางพิน GPIO ใหม่แล้วใช้ตัวกรองความถี่ต่ำ แต่ฉันไม่เคยได้สิ่งที่ฟังดูดีมาก่อนและแน่นอนว่าคุณต้องมีแอมพลิฟายเออร์ด้วยเช่นกันเพื่อให้ได้สิ่งที่ใช้งานได้. มี DAC Hats มากมาย แต่เหมาะสำหรับผู้ที่ต้องการเสียงที่ดีและเกินความสามารถสำหรับโครงการประเภทนี้ นอกจากนี้ยังมีหมวกเครื่องเสียงราคาถูกพร้อมลำโพงในตัว แต่ไม่ดังพอสำหรับสิ่งนี้ ดังนั้นฉันจึงตัดสินใจใช้บอร์ดแบ่งแอมพลิฟายเออร์ i2S จาก Adafruit ซึ่งแก้ปัญหาทั้งหมดในคราวเดียว โปรดทราบว่ามันคือ i2S ไม่ใช่ i2C
คุณต้องการสายไฟเพียงไม่กี่เส้นเพื่อเริ่มต้นใช้งาน และด้วยลำโพงที่ดีเพียงพอ คุณก็จะได้เสียงโมโนที่ดังและยอดเยี่ยม
ขั้นตอนที่ 6: การสร้างหน้าปัดใหม่
แนวคิดในที่นี้คือการเปลี่ยนหน้าปัดและกระจกที่มีอยู่ด้วยหน้าปัดที่แสดงปีแทนความถี่ โชคดีที่อันที่มีอยู่เป็นเพียงส่วนแทรกที่พิมพ์ออกมา ดังนั้นฉันจึงวางมันลงบนสแกนเนอร์แล้วคัดลอกไปยัง Paint Shop Pro ใช้เครื่องมือโคลนและลบตัวเลขเก่าออกแล้วจึงพิมพ์ตัวเลขใหม่ในแต่ละปี แก้วที่อยู่ในวิทยุมีรอยขีดข่วนและแตกและกลายเป็นพลาสติกด้วย ฉันพิมพ์เฉพาะกรอบที่ล้อมรอบเพื่อให้การทดสอบพอดีและพยายามทำอะครีลิกในตอนแรก โดยทั่วไปฉันมีความอดทนไม่เพียงพอกับอะคริลิกและจบลงด้วยการแตกเมื่อพยายามเจาะรูตรงกลาง ดังนั้นฉันจึงใช้โพลีคาร์บอเนต 1.5 มม. ซึ่งง่ายต่อการเลื่อยและเจาะ คุณสามารถหาชื่อเรียกอีกอย่างว่า Lexan หรือ Macrolon ได้ ขึ้นอยู่กับว่าคุณอาศัยอยู่ที่ไหน และมันต้องใช้ไฟล์ด้วยเช่นกัน ดังนั้นในไม่ช้าฉันก็มีกรอบและหน้าปัดที่พอดี สิ่งที่น่าสนใจเช่นกันคือกระดาษต้นฉบับมีคราบโลหะเล็กน้อยอยู่ทั่ว ฉันสามารถสันนิษฐานได้เพียงว่าเป็นผู้ที่ได้รับผลกระทบจากพอยน์เตอร์ทองเหลืองดั้งเดิม บางทีอาจมีกระบวนการชราบ้าง ?
ขั้นตอนที่ 7: การควบคุมระดับเสียงและตัวเลือก
ข้อเสียอย่างหนึ่งของ Raspberry pi สำหรับการซ่อมแซมคือไม่มีอินพุตแบบอะนาล็อกดั้งเดิม ไม่เป็นปัญหามากนักหากคุณเพิ่ม ADC ธรรมดา (Analog to Digital Converter) และ MPC3002 เหมาะกับการเรียกเก็บเงินที่นี่ และแปลงอินพุตแบบอะนาล็อกเป็นค่า 10 บิตที่สามารถอ่านได้บนบัส SPI
ตัวอย่างเกือบทั้งหมดที่คุณพบคือสำหรับ MPC3008 ซึ่งเป็นอุปกรณ์ 4 แชนเนล และโค้ดสำหรับสิ่งนั้นใช้ไม่ได้กับ MPC3002 อย่างแน่นอน ดูเหมือนว่าจะมีตัวอย่างมากมายที่ไม่ได้ผล แต่มีตัวอย่างหนึ่งที่ฉันสามารถยืนยันการทำงานและพบรหัสได้ที่นี่
github.com/CaptainStouf/Adafruit-raspi-pyt…
ด้วยรหัสนี้ คุณสามารถอ่านสองช่องสัญญาณและใช้ผลลัพธ์ได้อย่างง่ายดาย ตัวอย่างของฉันจะใช้อันหนึ่งสำหรับ Volume และอีกอันคือการเลือกวันที่ เมื่อถึงจุดหนึ่งฉันได้ติดตั้งตัวเข้ารหัสแบบหมุนแล้ว แต่ระดับเสียงรอบเดียวนั้นเหมาะสมกว่าและด้วยตัวเลือกความถี่ มันยังหมายความว่าฉันสามารถประกอบมันทั้งหมดแล้วปรับตำแหน่งของเครื่องหมายปีด้วยข้อความกรณีใหญ่ที่ยอดเยี่ยม โดยธรรมชาติแล้ว pyhon จะไม่สนับสนุนคำสั่ง case นานนัก ถ้าเช่นนั้น ถ้าคำสั่งจะได้ผล
รูปภาพแสดง MCP3002 นั่งอยู่บนบอร์ดต้นแบบขนาดเล็กและหม้อ 10K
ขั้นตอนที่ 8: แหล่งจ่ายไฟและการควบคุม
Pi ใช้พลังงานจาก USB หมดจึงง่ายต่อการใช้งาน อย่างไรก็ตาม อาจทำให้การ์ด SD เสียหายได้ หากคุณเพียงแค่ดึงพลังงานออก มีหลายวิธีในการตรวจสอบการกดปุ่มและเริ่มการปิดระบบ แต่คุณมักจะต้องเปิดเครื่องเพื่อให้มันกลับมา เพื่อแก้ไขปัญหานี้และทำให้โครงการใช้งานง่าย ฉันใช้แผ่นชิมเปิด/ปิด Pimoroni ซึ่งช่วยให้คุณกดหนึ่งครั้งและเปิดเครื่อง จากนั้นกดแบบยาว จากนั้นเครื่องจะปิดการทำงานทั้งหมด เพื่อให้พกพาได้นิดหน่อยเช่นกัน ฉันใช้พาวเวอร์แบงค์แบบเก่าซึ่งจัดการการชาร์จแบตเตอรี่เช่นกัน Powerbanks มีราคาถูกเพียงพอและสามารถเรียกใช้ Pi ได้ชั่วขณะหนึ่ง
ฉันติดตั้งปุ่มกดเพื่อให้พอดีกับตำแหน่งที่สายไฟหลักแบบเก่าออกมาทางด้านหลัง เนื่องจากมีความล่าช้าในขณะที่ Pi บูทขึ้น ฉันจึงต่อสาย LED เข้ากับราง 3v3 ซึ่งติดสว่างและทันทีที่ PI ได้รับพลังงานและให้แสงที่สวยงามบนหน้าปัด ฉันวางตัวต้านทาน 270R เข้าแถวและปลายอีกด้านหนึ่งลงกราวด์ คุณสามารถเพิ่มอีกอันลงในพิน GPIO ได้หากต้องการให้เอฟเฟกต์พิเศษ เช่น การกะพริบ แต่ตอนนี้ก็เพียงพอแล้วที่จะแสดงว่าเปิดเครื่องอยู่
ขั้นตอนที่ 9: การติดตั้งเคส
เมื่อตัวเรือนและแชสซีพร้อมและทดสอบแล้ว มีเพียงสลักเกลียวขนาด 4 มม. และน็อต Nyloc สองสามตัวเท่านั้นที่จะเก็บเข้าที่ สกรูต๊าปตัวเองแบบมีปีกยึดด้านหลังให้เข้าที่
ปุ่มเปิดปิดยังพอดีกับรูสายไฟหลักเก่าอีกด้วย
ฉันยังต้องการใช้ลูกบิดเก่าซ้ำ และเดิมได้รับการออกแบบมาเพื่อให้ดูเหมือนกับแท่งทองเหลืองและมีขนาดใหญ่เกินไปเล็กน้อยสำหรับหม้อ เนื่องจากสิ่งนี้จะไม่ได้รับการจัดการที่หยาบกระด้าง ฉันจึงเพียงแค่ลดความร้อนลงบนหม้อแล้วติดปุ่มบนนั้น จับกระชับมือและคุณยังสามารถถอดแยกชิ้นส่วนได้หากจำเป็น
ขั้นตอนที่ 10: ดาวน์โหลดไฟล์เสียง
ฉันใช้ไฟล์ MP3 และมีตัวเลือกที่ยอดเยี่ยมจาก Archive.org คุณสามารถค้นหาการออกอากาศแบบกลุ่มของการออกอากาศในช่วงสงครามได้ และส่วนใหญ่มีสองตัวเลือกให้เลือก
ฉันเริ่มต้นด้วยการเลือกข่าวเป็นหลัก จากนั้นสิ่งเหล่านี้จะถูกคัดลอกไปยังไดเร็กทอรีบน PI นอกจากนี้คุณยังสามารถค้นหาตัวเลือกที่ใหญ่กว่าซึ่งเรียกว่ารายการใหญ่ในลิงค์ต่อไปนี้ มีการออกอากาศหลายร้อยครั้งในแต่ละปี และจำนวนและช่วงของการออกอากาศเหล่านี้ค่อนข้างน่าทึ่ง
archive.org/details/1939RadioNews
archive.org/details/1940RadioNews
archive.org/details/1941RadioNews
archive.org/details/1942RadioNews
archive.org/details/1943RadioNews
archive.org/details/1944RadioNews
archive.org/details/1945RadioNews
คอลเลกชันขนาดใหญ่
archive.org/details/WWII_News_1939
archive.org/details/WWII_News_1940
archive.org/details/WWII_News_1941
archive.org/details/WWII_News_1942
archive.org/details/WWII_News_1943
archive.org/details/WWII_News_1944
archive.org/details/WWII_News_1945
ฉันใช้ Filezilla เป็นวิธีที่ง่ายในการถ่ายโอนสิ่งเหล่านี้ไปยัง Pi เนื่องจากสามารถเข้าสู่ระบบและถ่ายโอนโดยใช้ SSH ดังนั้นจึงไม่จำเป็นต้องตั้งค่าไดรฟ์ SAMBA หรือเซิร์ฟเวอร์ FTP
ขั้นตอนที่ 11: วงจรและซอฟต์แวร์เพื่อเล่นไฟล์
เมื่อคุณมีแอมป์ใช้งานได้แล้ว และคุณสามารถไปที่ลิงก์การตั้งค่าด้านล่างเพื่อที่คุณจะต้องติดตั้งเครื่องเล่น mpg123 ด้วย การค้นหาโดย Google ตรงไปตรงมาสำหรับโค้ด Python นั้นอยู่ด้านล่าง เพียงตรวจสอบให้แน่ใจว่าคุณได้เปิดใช้งาน i2s และ SPI ใน Raspi Config ของคุณ ฉันได้ใส่ไฟล์นี้ลงในไดเร็กทอรี /home/pi/volume/ เพื่อให้ฉันสามารถเรียกใช้เมื่อบูตเครื่องได้ในภายหลัง
#!/usr/bin/env python
# วิทยุ WW2 - ซอฟต์แวร์สำหรับอ่าน MCP3002 ADC และแปลงเป็นการปรับระดับเสียงและปี # เอาต์พุตผ่านแอมพลิฟายเออร์ i2S 2018-10-20 - Ajax Jones # เศษโค้ดที่มาจาก https://learn.adafruit.com/adafruit-max98357-i2s- class-d-mono-amp/raspberry-pi-usage # MCP 3002 Python https://github.com/CaptainStouf/Adafruit-raspi-python/blob/master/Adafruit_MCP3002/MCP3002.py นำเข้า RPi. GPIO เป็น GPIO เวลา, os จาก os นำเข้า listdir นำเข้ากระบวนการย่อยจากเวลานำเข้า sleep นำเข้าสุ่ม GPIO.setmode (GPIO. BCM) # อ่านข้อมูล SPI จากชิป MCP3002, 2 adc ที่เป็นไปได้ (0 และ 1) def readadc (adcnum, clockpin, mosipin, misopin, cspin): if ((adcnum > 1) หรือ (adcnum < 0)): return -1 GPIO.output(cspin, True) GPIO.output(clockpin, False) # start clock ต่ำ GPIO.output(cspin, False) # นำคำสั่ง CS ต่ำ = adcnum << 1; commandout |= 0x0D # start bit + single-ended bit + MSBF bit commandout <<= 4 # เราจำเป็นต้องส่ง 4 บิตที่นี่เท่านั้นสำหรับ i ในช่วง (4): if (commandout & 0x80): GPIO.output(mosipin, True) อื่นๆ: GPIO.output(mosipin, False) commandout <<= 1 GPIO.output(clockpin, True) GPIO.output(clockpin, False) adcout = 0 # read in one null bit and 10 ADC bits for i in range (11): GPIO.output(clockpin, True) GPIO.output(clockpin, False) adcout < 0): พิมพ์ "ไม่พบไฟล์ mp3!" ส่งคืน mp3_files พิมพ์ "--WW2 Radio ------------------------------------ ---------------------"last_read = 0 # เก็บตำแหน่งสุดท้ายของหม้อระดับเสียง last_year = 0 # เก็บตำแหน่งสุดท้ายของความทนทานหม้อความถี่ = 5 # ยอมให้มีความอดทนเล็กน้อย ดังนั้นการเคลื่อนที่เล็กน้อยของหม้อจึงไม่ทำให้เกิดการเปลี่ยนแปลงในขณะที่ True: trim_pot_changed = False year_pot_changed = False สำหรับ adcnum ในช่วง (2): ret = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS) if (adcnum == 0): # อ่านพ็อตสำหรับตัวเลือกปีเพื่อดูว่ามีการย้าย year_adjust = abs(ret - last_year) if (year_adjust > tolerance+10): year_pot_changed = True if (year_pot_changed): # ค่าสำหรับ if แล้วตรวจสอบได้ สร้างหลังจากสร้าง subprocess.call (['killall', 'mpg123']) # ฆ่า MP3 ที่ทำงานอยู่ในโหมดสลีป (0.1); if ret 50 and ret =150 and ret =250 and ret =350 and ret =450 and ret =550): war_year="1945" # save the value of the pot for next time around the next_year = ret พิมพ์ (" กำลังเล่นจาก "), พิมพ์ (war_year), พิมพ์ (" จำนวนไฟล์="), war_dir = '/home/pi/radio/WWII_News_'+war_year+'/' play_list = list_year(war_year) num_of_files = len(play_list) พิมพ์ num_of_files play_file = random.randint (1, num_of_files) # สุ่มเลือกหนึ่งในไฟล์ที่จะเล่น war_mp3 = war_dir + play_list[play_file] subprocess. Popen(['mpg123', war_mp3]) # ใช้ mpg123 เป็นเครื่องเล่นสำหรับการนอนหลับของเสียง (0.1); # ให้หยุดเล็กน้อยก่อนที่จะดำเนินการต่อ if (adcnum == 1): # อ่านปริมาณ pot_adjust = abs (ret - last_read) ถ้า (pot_adjust > ความอดทน): trim_pot_changed = True if (trim_pot_changed): set_volume = ret / 10.24 # แปลง 10 บิต adc0 (0-1024) ค่า pot เป็น 0-100 ระดับเสียง set_volume = รอบ (set_volume) # ปัดเศษค่าทศนิยม set_volume = int (set_volume) # ปริมาณการใช้เป็นจำนวนเต็ม # ใช้ค่าจากหม้อเพื่อส่งระดับไปที่ amixer prog พิมพ์ 'Volume = {volume}%'.format(volume = set_volume) set_vol_cmd = 'sudo amixer cset numid=1 -- {volume}% > /dev/null'.format(volume = set_volume) os.system (set_vol_cmd) # ตั้งค่าระดับเสียง # บันทึกการอ่านโพเทนชิออมิเตอร์สำหรับลูปถัดไป Last_read = ret # หยุดชั่วคราวหลังจากเปลี่ยนระดับเสียง ดังนั้นเราจึงไม่ดำเนินการเปลี่ยนแปลงมากเกินไปหากหม้อเปลี่ยนแปลงอย่างรวดเร็ว time.sleep(0.5)
ขั้นตอนที่ 12: บูตซอฟต์แวร์อัตโนมัติเมื่อโหลด
มีหลายวิธีในการเรียกใช้คำสั่งบน Pi เมื่อบูตเครื่อง แต่ฉันพบว่าวิธีนี้ง่ายที่สุด เปิด Crontab
sudo crontab -e
ตอนนี้เพียงแค่เพิ่มบรรทัดนี้
@reboot หลาม /home/pi/volume/year.py &
และนั่นน่าจะได้ผล ครั้งต่อไปที่คุณรีบูต โปรแกรมควบคุมเสียงจะทำงาน และคุณควรได้ยินการออกอากาศครั้งแรกของคุณ
ขั้นตอนที่ 13: อะไรต่อไป
ขณะนี้ฉันกำลังอยู่ระหว่างการสร้าง PCB ขนาดเล็กเพื่อวางบนราสเบอร์รี่ pi เพื่อที่ฉันจะได้มีที่ไหนสักแห่งที่จะติดตั้งแอมพลิฟายเออร์ i2S และ ADC พร้อมกับขั้วต่อสกรูบางตัวสำหรับหม้อ สิ่งนี้จะทำให้การติดตั้งดูเรียบร้อยขึ้นและช่วยให้เพื่อน ๆ เพิ่มได้อีกเล็กน้อย
ขณะนี้ฉันกำลังรวบรวมไฟล์บางไฟล์สำหรับรายการวิทยุการแข่งขันในอวกาศ โดยเริ่มจากสปุตนิกและต่อไปจนถึงการลงจอดบนดวงจันทร์
โปรดแจ้งให้เราทราบหากคุณมีความคิดใดๆ หรือต้องการคำแนะนำหรือคำแนะนำใดๆ เกี่ยวกับการรวบรวมด้วยตัวคุณเอง
กำลังลงชื่อออก
รางวัลรองชนะเลิศการประกวดเสียงประจำปี 2018
แนะนำ:
ผู้เรียนประวัติศาสตร์ WW2: 3 ขั้นตอน
ผู้เรียนประวัติศาสตร์ WW2: สวัสดีพวก! ดังนั้น สำหรับชั้นเรียนคอมพิวเตอร์ของฉันในปีนี้ เราได้รับมอบหมายให้สร้างอุปกรณ์อิเล็กทรอนิกส์บางประเภทเพื่อแสดงสิ่งที่เราได้เรียนรู้ในชั้นเรียน ผมเป็นคนหนึ่งที่รักประวัติศาสตร์สงครามโลกครั้งที่ 2 เลยตัดสินใจสร้างอุปกรณ์ที่สามารถช่วยป
การกู้คืนมัลติมิเตอร์ยุค WW2 สู่การทำงาน: 3 ขั้นตอน
การกู้คืนมัลติมิเตอร์ในยุค WW2 ให้ทำงาน: เมื่อหลายปีก่อนฉันได้รับมัลติมิเตอร์ Simpson Electric รุ่นแรกสำหรับคอลเล็กชันของฉัน มาในกล่องหนังเทียมสีดำซึ่งอยู่ในสภาพที่ดีเยี่ยมเมื่อพิจารณาจากอายุ วันที่จดสิทธิบัตรสำนักงานสิทธิบัตรแห่งสหรัฐอเมริกาสำหรับการเคลื่อนย้ายมิเตอร์คือปีพ. ศ. 2479
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
การสร้างและแก้ไข Stop Motion: WW2 Battle of Caen: 6 ขั้นตอน
การสร้างและแก้ไขสต็อปโมชั่น: WW2 Battle of Caen: The Battle of Caen เป็นการต่อสู้ในสงครามโลกครั้งที่สอง และตอนนี้ฉันกำลังสร้างมันขึ้นมาใหม่ด้วยเลโก้สต็อปโมชั่น และนี่คือทีละขั้นตอนวิธีการสร้างและแก้ไข WW2 หยุดการเคลื่อนไหว
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ