สารบัญ:
- เสบียง
- ขั้นตอนที่ 1: อุปกรณ์อิเล็กทรอนิกส์ภายใน
- ขั้นตอนที่ 2: การเดินสายสัญญาณเสียงออก
- ขั้นตอนที่ 3: การเตรียมเอกสารแนบ
- ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์
- ขั้นตอนที่ 5: การประกอบขั้นสุดท้าย
- ขั้นตอนที่ 6: การใช้งาน
วีดีโอ: โมดูล Raspberry Pi Stompbox Synth: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เป้าหมายของโครงการนี้คือการวางโมดูลเสียงที่ใช้ Fluidsynth ไว้ในก้อนสต็อมป์บ็อกซ์ คำว่า "โมดูลเสียง" ที่ทำให้เกิดเสียงทางเทคนิคในกรณีนี้หมายถึงอุปกรณ์ที่รับข้อความ MIDI (เช่น ค่าของโน้ต ระดับเสียง ระยะพิทช์ ฯลฯ) และสังเคราะห์เสียงดนตรีที่แท้จริง นำสิ่งนี้มารวมกับตัวควบคุม MIDI - ซึ่งเป็น Legion ราคาถูกและมักจะเจ๋งมาก (เช่นคีย์ทาร์!) - และคุณมีซินธิไซเซอร์ที่คุณสามารถดัดแปลงและปรับแต่งได้ไม่รู้จบ และออกแบบในลักษณะที่เหมาะกับสไตล์การเล่นของคุณ
ภาพรวมคร่าวๆ ของโครงการนี้คือเราใช้คอมพิวเตอร์ลินุกซ์แบบบอร์ดเดี่ยวขนาดเล็ก (ในกรณีนี้คือ Raspberry Pi 3) ติด LCD ตัวอักษร ปุ่มกดสองปุ่ม และการ์ดเสียง USB (เนื่องจากเสียงออนบอร์ดของ Pi ไม่ค่อยดีนัก) และยัดทุกอย่างลงในก้อนสต็อมป์บ็อกซ์ Hammond 1590bb (เช่นเดียวกับที่ใช้สำหรับเอฟเฟกต์กีตาร์) ด้วยการเชื่อมต่อภายนอกสำหรับ USB MIDI กำลังไฟ และเอาต์พุตเสียง จากนั้นเรากำหนดค่าซอฟต์แวร์ภายในเพื่อเรียกใช้โปรแกรมเมื่อเริ่มต้นใช้งาน FluidSynth (ซินธิไซเซอร์ซอฟต์แวร์ฟรีที่ยอดเยี่ยม มีหลายแพลตฟอร์ม) ควบคุม LCD และให้เราเปลี่ยนแพตช์และการตั้งค่าโดยใช้ปุ่มกด
ฉันจะไม่ลงรายละเอียดทีละขั้นตอนเกี่ยวกับงานสร้างนี้ (มีแบบฝึกหัด hey-i-made-a-cool-raspberry-pi-case มากมาย) แต่จะพยายามเน้นที่เหตุผลที่ฉันทำ ทางเลือกที่หลากหลายในการก่อสร้างและการออกแบบเมื่อฉันไป ด้วยวิธีนี้คุณหวังว่าจะสามารถปรับเปลี่ยนเพื่อให้เหมาะกับวัตถุประสงค์ของคุณเองโดยไม่ติดขัดในการทำสิ่งต่างๆ ที่กลับกลายเป็นว่าไม่ได้ผลในภายหลัง
อัปเดต (พฤษภาคม 2020): แม้ว่าคำแนะนำนี้ยังคงเป็นจุดเริ่มต้นที่ดีสำหรับโครงการเช่นนี้ แต่ฉันได้ทำการปรับปรุงมากมายทั้งในด้านฮาร์ดแวร์และซอฟต์แวร์ ซอฟต์แวร์ล่าสุดคือ FluidPatcher ซึ่งมีอยู่ใน GitHub - ตรวจสอบวิกิเพื่อดูรายละเอียดมากมายเกี่ยวกับการตั้งค่า Raspberry Pi ตรวจสอบเว็บไซต์ของฉัน Geek Funk Labs สำหรับข่าวสารและการอัปเดตอย่างต่อเนื่องเกี่ยวกับ SquishBox!
เสบียง
นี่คือรายการสั้นๆ ของ (และคำอธิบายสำหรับ) องค์ประกอบที่สำคัญยิ่งกว่า:
- คอมพิวเตอร์ Raspberry Pi 3 - คอมพิวเตอร์ลินุกซ์แบบบอร์ดเดียวสามารถทำงานได้ แต่ Pi 3 มีพลังการประมวลผลเพียงพอที่จะเรียกใช้ Fluidsynth โดยไม่มีเวลาแฝง และมีหน่วยความจำเพียงพอที่จะโหลดฟอนต์เสียงขนาดใหญ่ ข้อเสียคือเสียงออนบอร์ดไม่ดี คุณจึงต้องมีการ์ดเสียง USB CHIP เป็นอีกทางเลือกหนึ่งที่ฉันกำลังสำรวจอยู่ (รอยเท้าเล็กลง เสียงดีขึ้น แต่มีหน่วยความจำ/ตัวประมวลผลน้อยกว่า)
- กล่องใส่แฮมมอนด์ 1590BB - ฉันแนะนำให้ซื้อแบบเคลือบผงก่อนถ้าคุณต้องการสี ยกเว้นแต่ว่าการลงสีสต็อมป์บ็อกซ์เป็นสิ่งที่คุณต้องการ ฉันเรียกดูกระดานข้อความจำนวนมาก แต่ฉันคิดว่าฉันไม่มีความอดทนหรือชนิดของสีที่เหมาะสม เพราะหลังจากพยายามสองครั้ง ผลลัพธ์ของฉันก็ค่อนข้างดี
- การ์ดเสียง USB - คุณสามารถหาหนึ่งในราคาถูกเหล่านี้ได้ ตามบทช่วยสอน Adafruit ที่น่ารักนี้ (หนึ่งในหลาย ๆ อย่าง) คุณควรยึดติดกับชิปเซ็ต CM109 เพื่อความเข้ากันได้สูงสุด
- LCD ตัวอักษร - มีหลายสถานที่ที่แตกต่างกัน แต่ pinouts ดูเหมือนจะค่อนข้างมาตรฐาน ตรวจสอบให้แน่ใจว่าคุณมีไฟแบ็คไลท์เพื่อให้คุณเห็นค่าที่ตั้งไว้ล่วงหน้าเมื่อเล่นในคลับที่มีควัน
- Momentary stompswitches (2) - หาได้ยากกว่าเล็กน้อย แต่ฉันมีเวลาชั่วขณะแทนการสลับเพื่อที่ฉันจะได้เก่งกาจมากขึ้น ฉันสามารถจำลองการสลับในซอฟต์แวร์ได้หากต้องการพฤติกรรมนั้น แต่ด้วยวิธีนี้ ฉันยังสามารถมีฟังก์ชันต่างๆ สำหรับการแตะสั้น การกดค้าง ฯลฯ
- Adafruit Perma-Proto Hat สำหรับ Pi - ช่วยให้ฉันเชื่อมต่อ LCD และส่วนประกอบอื่นๆ กับพอร์ต Expander ของ Pi โดยไม่ต้องใช้พื้นที่เพิ่มเติมมากนัก ถ้าฉันพยายามใช้บอร์ด Perfboard ปกติ จะต้องยื่นออกมาด้านข้างของ Pi เพื่อให้ฉันเชื่อมต่อกับพิน GPIO ที่จำเป็นทั้งหมด การชุบแบบสองด้านและรูยึดที่เข้าชุดกันก็มีประโยชน์มากเช่นกัน ทั้งหมดนี้เป็นตัวเลือกที่ถูกที่สุดจริงๆ
- ขั้วต่อ USB - ตัวเมียชนิด B 1 ตัวสำหรับจ่ายไฟ และตัวผู้และตัวเมียประเภท A สองตัวสำหรับต่อสายต่อแบบบางและยืดหยุ่นได้สำหรับการเชื่อมต่อภายใน
- แจ็คเสียง 1/4" - ฉันใช้สเตอริโอหนึ่งอันและโมโนหนึ่งอัน ด้วยวิธีนี้สเตอริโอสามารถเป็นแจ็คหูฟัง / โมโน หรือเพียงแค่ส่งสัญญาณด้านซ้ายหากเชื่อมต่อแจ็คอื่น
ขั้นตอนที่ 1: อุปกรณ์อิเล็กทรอนิกส์ภายใน
เราจะเชื่อมต่อ LCD และส่วนประกอบที่เกี่ยวข้อง และปุ่มกดเข้ากับ Pi Hat นอกจากนี้ เราจะเพิ่มแจ็ค USB-B และ USB-A เพื่อเชื่อมต่อพลังงานและอุปกรณ์ MIDI ตามลำดับ เรานำพอร์ต USB-A มาใช้ เพราะเราต้องใช้พอร์ต USB ของ Pi เพื่อเชื่อมต่อการ์ดเสียง ซึ่งเราต้องการมีอยู่ภายในตัวเครื่อง ดังนั้นเราจึงไม่สามารถให้พอร์ต USB ล้างออกด้วยด้านข้างของกล่องได้ ฉันใช้พอร์ต USB-B เพื่อจ่ายไฟเพราะฉันรู้สึกว่ามันสามารถรับการลงโทษได้มากกว่าขั้วต่อสายไฟ micro-USB ของ Pi และไม่พบการวางแนวที่ดีที่ตัวเชื่อมต่อจะอยู่ติดกับขอบกล่องอยู่ดี
คุณจะต้องใช้มีดตัดรอยแยกระหว่างรูที่คุณจะบัดกรีหมุดสำหรับแจ็ค USB เพียงระวังอย่าตัดรอยภายในใด ๆ ในบอร์ดที่เชื่อมต่อพินอื่น ๆ - หรือถ้าคุณทำ (เช่นฉัน) โดยไม่ได้ตั้งใจเชื่อมต่อใหม่โดยใช้สายจัมเปอร์ พิน Vcc และ GND ของแจ็ค USB-B ไปที่ 5V และ GND บนพอร์ต Expander ของ Pi ตามลำดับ วิธีนี้คุณสามารถจ่ายไฟให้กับก้อนสต็อมป์บ็อกซ์ของคุณด้วยที่ชาร์จโทรศัพท์ (สมมติว่ามีกระแสไฟเพียงพอ - 700mA ดูเหมือนว่าจะใช้งานได้สำหรับฉัน แต่คุณอาจต้องการมากกว่านี้เพื่อให้แน่ใจว่าพอร์ต USB มีพลังงานเพียงพอสำหรับจ่ายไฟให้กับคอนโทรลเลอร์ของคุณ) และสาย USB AB
ฉันพบว่าความยาวของสายแพใช้งานได้ดีมากสำหรับการเชื่อมต่อสิ่งต่าง ๆ กับหมุดจำนวนมากโดยไม่ต้องมีเส้นลวดมากเกินไป ฉันทำสิ่งนี้แทนที่จะบัดกรีส่วนหัวของผู้ชายเข้ากับ LCD แล้วบัดกรีมันเข้าไปในหมวกเพราะฉันรู้สึกว่าฉันต้องการอิสระในการจัดตำแหน่ง LCD เพื่อให้สามารถวางตำแหน่งไว้ตรงกลางได้อย่างสวยงาม LCD ควรมาพร้อมกับโพเทนชิออมิเตอร์ที่คุณใช้เพื่อปรับคอนทราสต์ - ตรวจสอบให้แน่ใจว่าได้วางไว้ในตำแหน่งที่ LCD จะไม่ปิดบัง ดังนั้นคุณจึงสามารถสร้างรูในกล่องเพื่อเอื้อมถึงมันและปรับคอนทราสต์เพียงครั้งเดียว ทุกอย่างประกอบเรียบร้อยแล้ว
ศึกษาแผนผังสำหรับรายละเอียดเกี่ยวกับสิ่งที่เชื่อมต่อได้จากที่ใด สังเกตว่าปุ่มกดเชื่อมต่อกับ 3.3V ไม่ใช่ 5V! หมุด GPIO ได้รับการจัดอันดับสำหรับ 3.3V - 5V เท่านั้นจะทำให้ CPU ของคุณเสียหาย แจ็ค USB-A เชื่อมต่อกับสายแพอีกแถบหนึ่ง ซึ่งคุณสามารถบัดกรีกับปลั๊ก USB ซึ่งคุณจะเชื่อมต่อกับพอร์ต USB ของ Pi สำหรับตัวควบคุม MIDI ของคุณ ตัดโลหะพิเศษใดๆ ออกจากปลั๊กเพื่อให้ยื่นออกมาน้อยลง และใช้กาวร้อนเพื่อบรรเทาความเครียด ไม่จำเป็นต้องสวยงามเพราะจะซ่อนอยู่ภายในกล่อง
ขั้นตอนที่ 2: การเดินสายสัญญาณเสียงออก
ไม่ว่าคุณจะพบการ์ดเสียง USB ขนาดเล็กเพียงใดก็ตาม การ์ดเสียงหรือปลั๊กของมันก็มักจะยื่นออกมาไกลจากพอร์ต USB ของ Pi เกินกว่าจะใส่ทุกอย่างลงในกล่องได้ ดังนั้นให้ต่อขั้วต่อ USB แบบสั้นอีกอันเข้าด้วยกันจากสายแพ ปลั๊ก USB และกาวร้อนตามที่แสดงในภาพด้านบน การ์ดเสียงของฉันยังค่อนข้างหนาเกินไปที่จะใส่ทุกอย่างลงในกล่องหุ้ม ฉันจึงแกะพลาสติกออกแล้วพันด้วยเทปพันสายไฟเพื่อป้องกันไม่ให้อุปกรณ์ลัดวงจร
ในการรับเสียงจากการ์ดเสียงไปยังแจ็ค 1/4" ของคุณ ให้ตัดปลายหูฟัง 3.5 มม. หรือสาย AUX ออก ตรวจสอบให้แน่ใจว่ามีขั้วต่อ 3 ตัว - ปลาย วงแหวน และปลอก (TRS) แทนที่จะเป็น 2 หรือ 4 ปลอกหุ้มควรเป็นแบบกราวด์ ทิปมักจะเป็นช่องด้านขวา และวงแหวน (ขั้วต่อตรงกลาง) มักจะอยู่ด้านซ้าย คุณสามารถเชื่อมต่อทิปและแหวนเข้ากับแจ็คโมโน (TS - ทิป ปลอก) 1/4" สองตัว เท่านี้ก็เรียบร้อย กับมัน แต่คุณสามารถใช้งานได้หลากหลายมากขึ้นด้วยการเดินสายเพิ่มเติมเล็กน้อย ค้นหาแจ็ค TS ที่มีหน้าสัมผัสชั่วขณะที่สาม ดังแสดงในแผนภาพด้านบน การเสียบปลั๊กจะทำให้หน้าสัมผัสเสียหาย ดังนั้นดังที่คุณคาดหวังได้จากแผนภาพ สัญญาณด้านซ้ายจะไปที่แจ็ค TS หากเสียบปลั๊ก และไปที่วงแหวนของแจ็ค TRS หากไม่ได้เสียบปลั๊ก ด้วยวิธีนี้ คุณสามารถเสียบหูฟังเข้ากับแจ็คสเตอริโอ สายเคเบิลโมโนเดี่ยวเข้ากับแจ็คสเตอริโอสำหรับสัญญาณขวา/ซ้าย (โมโน) รวมกัน หรือสายเคเบิลในแต่ละแจ็คสำหรับเอาท์พุตขวาและซ้าย (สเตอริโอ) แยกกัน
ฉันเชื่อมต่อหมุดกราวด์ของแจ็คกับสายเคเบิลที่มาจากการ์ดเสียง เพื่อให้ทุกอย่างในกล่องใช้กราวด์เดียวกัน และฉันหลีกเลี่ยงเสียงกราวด์ของกราวด์กราวด์ อย่างไรก็ตาม ขึ้นอยู่กับสิ่งที่คุณเสียบปลั๊ก สิ่งนี้อาจมีผลตรงกันข้าม ดังนั้นคุณอาจต้องการรวมสวิตช์เพื่อให้คุณสามารถเชื่อมต่อหรือ "ยก" กราวด์บนแจ็ค 1/4"
ขั้นตอนที่ 3: การเตรียมเอกสารแนบ
ขั้นตอนนี้ครอบคลุมถึงการตัดรูในกล่องสำหรับหน้าจอ ปุ่ม คอนเนคเตอร์ ฯลฯ และอีพ็อกซี่แสตนด์ออฟในโครงเพื่อยึดหมวก Pi
เริ่มต้นด้วยการวางส่วนประกอบทั้งหมดไว้ในตัวเครื่องเพื่อให้แน่ใจว่าทุกอย่างลงตัวและอยู่ในทิศทางที่ถูกต้อง จากนั้นวัดอย่างระมัดระวังและทำเครื่องหมายตำแหน่งที่คุณจะทำหลุม เมื่อตัดรูกลม ขอแนะนำให้เริ่มต้นด้วยขนาดเล็กและทำงานให้ได้ขนาดที่ต้องการ - รูตรงกลางจะง่ายกว่าและดอกสว่านจะติดขัดน้อยลง รูสี่เหลี่ยมสามารถตัดได้โดยการเจาะรูที่มุมตรงข้ามของช่องที่ต้องการ จากนั้นตัดด้วยจิ๊กซอว์ไปที่อีกสองมุม ความหนาของอลูมิเนียมนี้ใช้เลื่อยจิ๊กซอว์ได้อย่างดีตราบเท่าที่คุณค่อยๆ ไฟล์สี่เหลี่ยมจัตุรัสมีประโยชน์มากสำหรับการยกกำลังสองออกจากมุมของช่องเปิด เปิดช่องสำหรับปลั๊ก USB ให้กว้างขึ้นเล็กน้อยในกรณีที่คุณมีสายหนา
อีพ็อกซี่สองขั้นตอน (เช่น กาวกอริลลา ในภาพ) ใช้งานได้ดีในการติดส่วนรองของหมวกเข้ากับโครงโลหะ ขูดพื้นผิวของกล่องหุ้มและด้านล่างของฐานรองเล็กน้อยด้วยขนเหล็กหรือไขควงเพื่อให้อีพ็อกซี่จับได้ดีขึ้น ฉันแนะนำให้แนบข้อขัดแย้งของคุณกับหมวก Pi ก่อนที่จะติดมัน เพื่อให้คุณรู้ว่ามันอยู่ในตำแหน่งที่ถูกต้อง - ที่นี่มีพื้นที่ไม่มากนัก ฉันใช้เพียงสามข้อขัดแย้งเพราะ LCD ของฉันอยู่ในทางที่สี่ ผสมส่วนประกอบทั้งสองของอีพ็อกซี่ วางบางส่วนลงบนแท่นรองและยึดเข้าที่ หลีกเลี่ยงการขยับหรือเปลี่ยนตำแหน่งชิ้นส่วนหลังจากผ่านไป 10-15 วินาที มิฉะนั้นพันธะจะเปราะ ให้เวลา 24 ชั่วโมงในการตั้งค่าเพื่อให้คุณทำงานต่อไปได้ ใช้เวลาสองสามวันในการรักษาอย่างสมบูรณ์ ดังนั้นอย่าเครียดกับพันธะโดยไม่จำเป็น
เว้นแต่ว่าคุณต้องการทำงานอดิเรกอื่นจากการทาสีก้อนสต็อมป์บ็อกซ์ ฉันแนะนำให้ปล่อยอลูมิเนียมเปล่า (ไม่ใช่รูปลักษณ์ที่แย่จริง ๆ) หรือซื้อกล่องหุ้มที่ทาสีไว้ล่วงหน้า สีไม่ต้องการยึดติดกับโลหะ หากคุณต้องการลอง ใช้ทรายทุกที่ที่คุณต้องการให้สีติด ใช้สีสเปรย์รองพื้นตัวถังรถยนต์ที่ดีก่อน จากนั้นทาสีหลายๆ สีที่คุณต้องการ จากนั้นปล่อยให้แห้งให้นานที่สุด อย่างจริงจัง คนบ้าบนกระดานข้อความแนะนำสิ่งต่าง ๆ เช่นทิ้งไว้ในแสงแดดโดยตรงเป็นเวลาสามเดือนหรือในเตาปิ้งขนมปังที่มีอุณหภูมิต่ำเป็นเวลาหนึ่งสัปดาห์ หลังจากขัดรอยย่น ลอกซากของงานทาสีครั้งแรกของฉัน ความพยายามครั้งที่สองของฉันยังคงได้รับเศษและรอยขูดจากสิ่งต่างๆ เช่น ปากกาในกระเป๋ากิ๊กของฉัน และสามารถเว้าแหว่งด้วยเล็บมือได้ ฉันตัดสินใจที่จะยอมแพ้และไปหาสไตล์พังค์โดยใช้เครื่องหมายไวท์เอาต์สำหรับตัวอักษร
ขั้นตอนที่ 4: การติดตั้งซอฟต์แวร์
ก่อนที่คุณจะยัดทุกอย่างลงในก้อนสต็อมป์บ็อกซ์และขันให้แน่น คุณต้องตั้งค่าซอฟต์แวร์บน Raspberry Pi ฉันขอแนะนำให้เริ่มต้นด้วยการติดตั้ง Raspbian OS ใหม่ ดังนั้นให้รับสำเนาล่าสุดจากเว็บไซต์ Raspberry Pi Foundation และทำตามคำแนะนำที่นั่นเพื่ออิมเมจลงในการ์ด SD หยิบคีย์บอร์ดและหน้าจอหรือใช้สายคอนโซลเพื่อเข้าสู่ระบบ Pi ของคุณเป็นครั้งแรก และไปที่บรรทัดคำสั่ง เพื่อให้แน่ใจว่าคุณมีการอัปเดตซอฟต์แวร์และเฟิร์มแวร์ล่าสุด ให้ป้อน
sudo apt-get update && sudo apt-get upgrade
sudo rpi-update
ต่อไป คุณต้องแน่ใจว่าคุณสามารถใช้ wifi เพื่อ ssh กับ Pi และทำการปรับเปลี่ยนเมื่อติดกระดุมภายในกล่องหุ้ม ขั้นแรก เปิดเซิร์ฟเวอร์ ssh โดยพิมพ์
sudo raspi-config
และไปที่ "ตัวเลือกการเชื่อมต่อ" และเปิดใช้งานเซิร์ฟเวอร์ ssh ตอนนี้ เพิ่มเครือข่ายไร้สายให้กับ pi โดยแก้ไขไฟล์ wpa_supplicant.conf:
sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
และเพิ่มบรรทัดต่อไปนี้ในตอนท้าย:
เครือข่าย={
ssid="เครือข่ายของคุณ" psk="รหัสผ่านของคุณ" }
แทนที่เครือข่ายและรหัสผ่านของคุณด้านบนด้วยค่าสำหรับเครือข่ายใดก็ตามที่คุณต้องการให้ Pi เชื่อมต่อโดยค่าเริ่มต้น เป็นไปได้มากว่าเราเตอร์ไร้สายของคุณที่บ้าน หรืออาจเป็นฮอตสปอตบนโทรศัพท์หรือแล็ปท็อปของคุณที่ทำงานในโหมดจุดเข้าใช้งาน อีกทางเลือกหนึ่งสำหรับการเชื่อมต่อกับ Pi ของคุณคือการตั้งค่าให้เป็นจุดเชื่อมต่อ wifi เพื่อให้คุณสามารถเชื่อมต่อกับมันได้ไม่ว่าคุณจะอยู่ที่ไหน อินเทอร์เฟซที่ฉันเขียนไว้ด้านล่างยังให้คุณจับคู่อุปกรณ์บลูทูธอื่นกับ Pi ได้ หลังจากนั้นคุณสามารถเชื่อมต่อโดยใช้ซีเรียลโอเวอร์บลูทูธได้
ในการติดตั้ง FluidSynth ให้พิมพ์
sudo apt-get ติดตั้ง fluidsynth
ไฟล์ที่แนบมากับขั้นตอนนี้มีส่วนต่อประสานระหว่างตัวควบคุมก้อนสต็อมป์บ็อกซ์และ FluidSynth และควรคัดลอกลงในไดเร็กทอรี /home/pi นี่คือคำอธิบายสั้น ๆ เกี่ยวกับการทำงานของแต่ละไฟล์:
- squishbox.py - สคริปต์หลามที่เริ่มต้นและสื่อสารกับอินสแตนซ์ของ FluidSynth อ่านอินพุตจากปุ่มก้อนสต็อมป์บ็อกซ์ และเขียนข้อมูลไปยัง LCD
- config_squishbox.yaml - ไฟล์การกำหนดค่าในรูปแบบ YAML (ส่วนใหญ่) ที่มนุษย์อ่านได้ที่เก็บการตั้งค่าและข้อมูลโปรแกรมแก้ไขสำหรับโปรแกรม squishbox
- fluidsynth.py - ตัวห่อหุ้มหลามที่ให้การผูกกับฟังก์ชัน C ในไลบรารี FluidSynth โดยฉันเพิ่มการผูกเพิ่มเติมมากมายเพื่อเข้าถึงฟังก์ชันการทำงานของ FluidSynth มากขึ้น
- ModWaves.sf2 - ฟอนต์เสียงขนาดเล็กมากที่ฉันให้ไว้เพื่อแสดงการใช้งานและพลังของโมดูเลเตอร์ในรูปแบบ Soundfont
การมีสคริปต์หลามตั้งค่ากระบวนการ FluidSynth และจัดการปุ่ม/สิ่งของ LCD ทั้งหมดนั้นทำงานได้ดี - ข้อความ MIDI จะส่งตรงไปยัง FluidSynth และสคริปต์จะโต้ตอบกับมันเมื่อจำเป็นเท่านั้น
สคริปต์ python ต้องการไลบรารี python สองตัวที่ไม่ได้ติดตั้งตามค่าเริ่มต้น คุณสามารถติดตั้งได้โดยตรงจาก Python Package Index โดยใช้เครื่องมือ pip ที่มีประโยชน์:
sudo pip ติดตั้ง RPLCD pyyaml
สุดท้าย คุณต้องการให้ Pi รันสคริปต์ python เมื่อบูต หากต้องการให้สิ่งนี้เกิดขึ้น ให้แก้ไขไฟล์ rc.local:
sudo vi /etc/rc.local
แทรกบรรทัดต่อไปนี้ก่อนบรรทัด 'exit 0' สุดท้ายในไฟล์:
หลาม /home/pi/squishbox.py &
ขั้นตอนที่ 5: การประกอบขั้นสุดท้าย
ก่อนใส่ชิ้นส่วนทั้งหมดลงในกล่อง จะเป็นความคิดที่ดีที่จะเสียบทุกอย่างเข้าไป และตรวจดูให้แน่ใจว่าซอฟต์แวร์ใช้งานได้ ดังที่แสดงในภาพด้านบน ภาพที่ 3-6 แสดงชิ้นส่วนทั้งหมดและค่อยๆ ประกอบเข้ากับกล่องของฉัน จริง ๆ แล้ว LCD ถูกยึดโดยสายไฟที่กดเข้าหามัน แต่คุณสามารถใช้กาวร้อนหรือเพิ่มสกรูยึดถ้าคุณไม่ชอบมัน เทปพันท่อสีส้มบนฝากล่องเพื่อป้องกันไม่ให้ Pi ลัดวงจรกับโลหะ
คุณอาจต้องทดลองและกำหนดค่าใหม่เพื่อให้พอดี ความกระชับนั้นดี - ชิ้นส่วนที่กระตุกน้อยๆ ในกล่องยิ่งดี ความร้อนไม่ได้เป็นปัญหา และฉันก็ไม่ได้มีปัญหากับสัญญาณ wifi ที่ถูกบล็อกโดยกล่องหุ้ม ไม่มีรูปเป็นยางรองขา (คุณสามารถหาได้ที่ร้านฮาร์ดแวร์) ที่ด้านล่างของกล่องเพื่อป้องกันไม่ให้เลื่อนไปมาเมื่อคุณกำลังเหยียบ
ระวังการกระแทก/บิด/งอโดยไม่คาดคิดเมื่อสิ่งต่างๆ ถูกขันเข้าด้วยกัน สิ่งหนึ่งที่ต้องตรวจสอบคือ มีพื้นที่เพียงพอสำหรับแจ็ค 1/4 เมื่อเสียบสายเคเบิล - ทิปยื่นออกมาไกลกว่าหน้าสัมผัสแจ็คเล็กน้อย นอกจากนี้ ในงานสร้างของฉัน ฉันติดตั้ง Pi ชิดขอบเกินไปเล็กน้อย ของกล่องและริมฝีปากบนฝาที่กดลงที่ส่วนท้ายของการ์ด SD และหักมัน - ฉันต้องบากที่ริมฝีปากเพื่อไม่ให้สิ่งนี้เกิดขึ้น
ขั้นตอนที่ 6: การใช้งาน
โมดูลเสียงที่ฉันได้อธิบายไว้ในขั้นตอนเหล่านี้และการเรียกใช้ซอฟต์แวร์ที่ให้ไว้ข้างต้นนั้นค่อนข้างใช้งานได้และขยายออกนอกกรอบได้ แต่การดัดแปลง/รูปแบบต่างๆ สามารถทำได้ ฉันจะอธิบายอินเทอร์เฟซสั้น ๆ ที่นี่ - ฉันวางแผนที่จะอัปเดตอย่างต่อเนื่องในที่เก็บ github ซึ่งฉันหวังว่าจะเก็บ wiki ที่อัปเดตไว้ด้วย สุดท้ายนี้ ฉันจะพูดถึงวิธีปรับแต่งการตั้งค่า เพิ่มเสียงใหม่ และทำการปรับเปลี่ยนของคุณเอง
ในการเริ่มต้น ให้เสียบคอนโทรลเลอร์ USB MIDI เข้ากับแจ็ค USB-A ของกล่อง เสียบแหล่งจ่ายไฟ 5V เข้ากับแจ็ค USB-B และเชื่อมต่อหูฟังหรือแอมป์ หลังจากนั้นสักครู่ LCD จะแสดงข้อความ "squishbox v xx.x " เมื่อหมายเลขแพตช์และชื่อปรากฏขึ้น คุณจะสามารถเล่นโน้ตได้ แตะสั้นๆ ที่ปุ่มใดปุ่มหนึ่งเพื่อเปลี่ยนโปรแกรมแก้ไข โดยกดปุ่มใดปุ่มหนึ่งค้างไว้สองสามวินาทีเพื่อเข้าสู่เมนูการตั้งค่า และกดปุ่มใดปุ่มหนึ่งค้างไว้ประมาณห้าวินาที คุณจะมีตัวเลือกในการรีสตาร์ทโปรแกรม รีบูต Pi หรือปิด Pi (NB Pi จะไม่ตัดกระแสไฟไปที่พิน GPIO เมื่อหยุดทำงาน ดังนั้น LCD จะไม่ดับ เพียงรอประมาณ 30 วินาทีก่อนถอดปลั๊ก)
ตัวเลือกเมนูการตั้งค่าคือ:
- อัปเดตแพตช์ - บันทึกการเปลี่ยนแปลงใดๆ ที่คุณทำกับแพตช์ปัจจุบันลงในไฟล์
- บันทึกแพตช์ใหม่ - บันทึกแพตช์ปัจจุบันและการเปลี่ยนแปลงใด ๆ เป็นแพตช์ใหม่
- เลือกธนาคาร - ไฟล์ปรับแต่งสามารถมีแพตช์ได้หลายชุด ซึ่งช่วยให้คุณสลับไปมาระหว่างแพตช์เหล่านั้นได้
- ตั้งค่าเกน - ตั้งค่าปริมาณเอาต์พุตโดยรวม (ตัวเลือก 'เกน' ของฟลูอิดซินธ์) สูงเกินไปให้เอาต์พุตที่บิดเบี้ยว
- คอรัส/รีเวิร์บ - แก้ไขการตั้งค่ารีเวิร์บและคอรัสของชุดปัจจุบัน
- MIDI Connect - ลองเชื่อมต่ออุปกรณ์ MIDI ใหม่ หากคุณสลับอุปกรณ์ในขณะที่โปรแกรมกำลังทำงาน
- Bluetooth Pair - วาง Pi ในโหมดการค้นพบเพื่อให้คุณสามารถจับคู่อุปกรณ์ Bluetooth อื่นกับมันได้
- สถานะ Wifi - รายงานที่อยู่ IP ปัจจุบันของ Pi เพื่อให้คุณสามารถ ssh เข้าไปได้
ไฟล์ config_squishbox.yaml มีข้อมูลที่อธิบายแต่ละแพตช์ รวมถึงสิ่งต่างๆ เช่น การกำหนดเส้นทาง MIDI พารามิเตอร์เอฟเฟกต์ ฯลฯ ไฟล์นี้เขียนในรูปแบบ YAML ซึ่งเป็นวิธีแสดงข้อมูลที่คอมพิวเตอร์สามารถแยกวิเคราะห์ได้ แต่ยังเป็นของมนุษย์อีกด้วย -อ่านได้ มันอาจจะค่อนข้างซับซ้อน แต่ที่นี่ฉันแค่ใช้มันเป็นวิธีการแสดงโครงสร้างของพจนานุกรม Python ที่ซ้อนกัน (อาร์เรย์ที่เชื่อมโยง/แฮชในภาษาอื่น) และลำดับ (รายการ/อาร์เรย์) ฉันใส่ความคิดเห็นจำนวนมากในไฟล์กำหนดค่าตัวอย่างและพยายามจัดโครงสร้างเพื่อให้สามารถเห็นว่าแต่ละฟีเจอร์ทำอะไรได้บ้าง ดูและทดลองหากคุณสงสัย และอย่าลังเลที่จะถามคำถามในความคิดเห็น คุณสามารถเปลี่ยนแปลงเสียงและฟังก์ชันการทำงานของโมดูลได้มากมายเพียงแค่แก้ไขไฟล์นี้ คุณสามารถเข้าสู่ระบบและแก้ไขจากระยะไกล หรือ FTP ไฟล์ปรับแต่งที่แก้ไขไปยัง Pi จากนั้นรีสตาร์ทโดยใช้อินเทอร์เฟซหรือโดยการพิมพ์
sudo python /home/pi/squishbox.py &
บนบรรทัดคำสั่ง สคริปต์นี้เขียนขึ้นเพื่อกำจัดอินสแตนซ์ที่ทำงานอยู่อื่นๆ ของตัวเองเมื่อเริ่มต้น ดังนั้นจึงไม่มีข้อขัดแย้งใดๆ สคริปต์จะแสดงคำเตือนเล็กน้อยในบรรทัดคำสั่งเมื่อทำงานขณะที่ค้นหาอุปกรณ์ MIDI เพื่อเชื่อมต่อและดูในตำแหน่งต่างๆ สำหรับฟอนต์เสียงของคุณ มันไม่เสีย นี่เป็นเพียงการเขียนโปรแกรมที่ขี้เกียจในส่วนของฉัน - ฉันจับได้ แต่ฉันอ้างว่ามันเป็นการวินิจฉัย
เมื่อคุณติดตั้ง FluidSynth คุณยังได้รับฟอนต์เสียง FluidR3_GM.sf2 ที่ค่อนข้างดีฟรีอีกด้วย GM ย่อมาจาก MIDI ทั่วไป ซึ่งหมายความว่ามีเครื่องมือ "ทั้งหมด" ซึ่งกำหนดให้กับหมายเลขที่ตั้งไว้ล่วงหน้าและหมายเลขธนาคารที่ตกลงกันโดยทั่วไป เพื่อให้เครื่องเล่น MIDI ที่เล่นไฟล์โดยใช้ฟอนต์เสียงนี้จะสามารถค้นหาเสียงที่เหมาะสมสำหรับเปียโน ทรัมเป็ตได้คร่าวๆ, ปี่สก็อต ฯลฯ หากคุณต้องการเสียงที่มากกว่า/แตกต่าง คุณสามารถค้นหาฟอนต์เสียงฟรีมากมายบนอินเทอร์เน็ต ที่สำคัญที่สุด ข้อมูลจำเพาะของฟอนต์เสียงนั้นมีอยู่ทั่วไป อันที่จริงค่อนข้างทรงพลัง และยังมีตัวแก้ไขโอเพนซอร์ซที่ยอดเยี่ยมสำหรับฟอนต์เสียงที่เรียกว่า Polyphone ด้วยสิ่งนี้ คุณสามารถสร้างฟอนต์เสียงของคุณเองจากไฟล์ WAV ดิบ และคุณสามารถเพิ่มโมดูเลเตอร์ให้กับ 'ฟอนต์ของคุณ โมดูเลเตอร์ช่วยให้คุณควบคุมองค์ประกอบหลายอย่างของการสังเคราะห์ (เช่น ซองจดหมาย ADSR, ซองมอดูเลต, LFO เป็นต้น) แบบเรียลไทม์ ไฟล์ ModWaves.sf2 ที่ฉันได้รวมไว้ข้างต้นเป็นตัวอย่างของการใช้โมดูเลเตอร์เพื่อให้คุณสามารถแมปเรโซแนนซ์ของฟิลเตอร์และความถี่ตัดกับข้อความ MIDI การเปลี่ยนแปลงการควบคุม (ซึ่งสามารถส่งโดยปุ่ม/ตัวเลื่อนบนคอนโทรลเลอร์ของคุณ) มีศักยภาพมากมายที่นี่ - ไปเล่นเลย!
ฉันหวังว่าบทช่วยสอนนี้จะจุดประกายความคิดมากมายและให้กรอบงานที่ดีแก่ผู้อื่นในการสร้างการสร้างสรรค์ซินธิไซน์ที่เป็นเอกลักษณ์ของตนเอง ตลอดจนสนับสนุนความพร้อมใช้งานอย่างต่อเนื่องและการพัฒนาฟอนต์เสียงที่ดี ข้อมูลจำเพาะของฟอนต์เสียง และซอฟต์แวร์ฟรีที่ยอดเยี่ยม เช่น FluidSynth และ Polyphone. งานสร้างที่ฉันสรุปไว้ที่นี่ไม่ใช่ทั้งวิธีที่ดีที่สุดและไม่ใช่วิธีเดียวที่จะรวมสิ่งนี้เข้าด้วยกัน ในด้านฮาร์ดแวร์ การปรับเปลี่ยนที่เป็นไปได้อาจเป็นกล่องที่ใหญ่กว่าพร้อมปุ่มเพิ่มเติม อินพุต/เอาต์พุต MIDI รุ่นเก่า (5 พิน) และ/หรืออินพุตเสียง สคริปต์หลามสามารถแก้ไขได้ (ขออภัยสำหรับการแสดงความคิดเห็นแบบเบาบางของฉัน) เพื่อให้พฤติกรรมอื่น ๆ ที่อาจเหมาะกับคุณมากกว่า - ฉันกำลังคิดที่จะเพิ่มโหมด "เอฟเฟกต์" ให้กับแต่ละแพตช์ซึ่งจะทำหน้าที่เหมือนก้อนสต็อมป์บ็อกซ์จริง สลับการตั้งค่า และปิด เราสามารถเพิ่มซอฟต์แวร์เพิ่มเติมบางอย่างเพื่อให้เอฟเฟกต์เสียงดิจิตอล ฉันยังคิดว่ามันจะดีกว่าถ้าให้ Pi ทำงานในโหมด wifi AP ตามที่อธิบายไว้ข้างต้น และจากนั้นก็อาจมีเว็บอินเตอร์เฟสที่เป็นมิตรสำหรับการแก้ไขไฟล์ปรับแต่ง โปรดโพสต์ความคิด/คำถาม/การอภิปรายของคุณเองในฟีดความคิดเห็น
ฉันต้องการมอบอุปกรณ์ประกอบฉากขนาดใหญ่ขนาดใหญ่ให้กับผู้ผลิต FluidSynth และ Polyphone เพื่อมอบซอฟต์แวร์โอเพนซอร์ซฟรีที่เราทุกคนสามารถใช้เพื่อสร้างเพลงที่ยอดเยี่ยม ฉันชอบใช้สิ่งนี้ และคุณทำให้มันเป็นไปได้!
แนะนำ:
โมดูล WiFi วิศวกรรมย้อนกลับแบบสด: 8 ขั้นตอน (พร้อมรูปภาพ)
โมดูล WiFi วิศวกรรมย้อนกลับแบบสด: ฉันชอบที่จะใช้ส่วนประกอบการทำงานซ้ำมากที่สุดเท่าที่ฉันจะทำได้ แม้ว่าฉันจะวิศวกรรมย้อนกลับเครื่องพิมพ์ WiFi วิธีนี้ใช้ได้กับอุปกรณ์อื่นๆ มากมาย โปรด; อย่าเพิ่งแยกชิ้นส่วนอุปกรณ์อิเล็กทรอนิกส์ที่ล้าสมัยออกจากกัน แล้วคาดว่าจะพบเอกสารข้อมูลสำหรับส่วนประกอบที่ได้รับการกู้คืน
โมดูล DIY EuroRack ที่มีประโยชน์และใช้งานง่าย (ตัวแปลง 3.5 มม. ถึง 7 มม.): 4 ขั้นตอน (พร้อมรูปภาพ)
โมดูล DIY EuroRack ที่ใช้งานง่ายและมีประโยชน์ (ตัวแปลง 3.5 มม. ถึง 7 มม.): ฉันได้ทำ DIY มากมายสำหรับเครื่องมือแบบแยกส่วนและกึ่งโมดูลาร์ของฉันเมื่อเร็ว ๆ นี้ และเมื่อเร็ว ๆ นี้ฉันตัดสินใจว่าฉันต้องการวิธีที่หรูหรากว่านี้ในการติดตั้งระบบ Eurorack ของฉันด้วย 3.5 ซ็อกเก็ตมม. ถึงเอฟเฟกต์แบบเหยียบที่มี 1/4" เข้าและออก ผลลัพธ์
การตรวจจับระยะทางด้วย Micro:bit และ Sonar (โมดูล HC-SR04): 3 ขั้นตอน (พร้อมรูปภาพ)
การตรวจจับระยะทางด้วย Micro:bit และ Sonar (โมดูล HC-SR04): สัปดาห์นี้ ฉันได้ใช้เวลาเล่นกับ BBC micro:bit ที่ยอดเยี่ยมและโซนิคเซ็นเซอร์ ฉันได้ลองใช้โมดูลต่างๆ สองสามตัว (รวมแล้วมากกว่า 50 รายการ) และคิดว่ามันน่าจะดี ดังนั้นโปรดแชร์ผลลัพธ์บางส่วน โมดูลที่ดีที่สุดที่ฉันพบจนถึงตอนนี้คือ Spar
ESP8266-NODEMCU $3 โมดูล WiFi #2 - พินไร้สายควบคุมผ่านหน้าเว็บ: 9 ขั้นตอน (พร้อมรูปภาพ)
ESP8266-NODEMCU $3 โมดูล WiFi #2 - พินไร้สายควบคุมผ่านหน้าเว็บ: โลกใหม่ของไมโครคอมพิวเตอร์เหล่านี้มาถึงแล้ว และสิ่งนี้คือ ESP8266 NODEMCU นี่เป็นส่วนแรกที่แสดงให้เห็นว่าคุณสามารถติดตั้งสภาพแวดล้อมของ esp8266 ใน Arduino IDE ของคุณผ่านวิดีโอการเริ่มต้นใช้งานและเป็นส่วนใน
Arduino Christmas Frame & โมดูล A6 GSM: 4 ขั้นตอน (พร้อมรูปภาพ)
Arduino Christmas Frame & A6 GSM Module: เฟรมทำขึ้นเพื่อความสนุกสนานในช่วงคริสต์มาสเท่านั้น :) รับชมภาพยนตร์ YouTube เพื่อชมการสาธิต โมดูล AI A6 GSM รับ SMS และส่งไปยัง Arduino Uno ในฐานะมาสเตอร์ (บัส i2c) Arduino Uno ส่งข้อมูลบัส i2c ไปยัง Arduino Nano เพื่อเริ่มย้ายเซอร์โวและไปที่