สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
โปรเจ็กต์นี้เป็นส่วนขยายหรือรีมิกซ์ของ Portal Turret ดั้งเดิมของฉันบน Instructables (Portal-2-Turret-Gun) นอกจากนี้ยังสามารถใช้เป็นตัวควบคุมราคาถูกเพื่อควบคุมทุกอย่างที่ใช้ชิปวิทยุ nRF24L01 หน้าจอ LCD มีประโยชน์อย่างยิ่งเมื่อทำการปรับแต่ง
(ปรากฏว่ามีประโยชน์มากในการตรวจสอบเมื่อวิทยุของฉันสร้างและสูญเสียการเชื่อมต่อกับ nRF24L01 อื่นบน "เครือข่าย" ฉันสามารถเดินไปรอบๆ และดูหน้าจอแสดงผลแสดงสถานะการเชื่อมต่อของวิทยุ! ค่อนข้างมีประโยชน์สำหรับการปรับการตั้งค่าและการตรวจสอบ พิสัย!)
หลังจากที่ฉันสร้าง Portal Turret เสร็จแล้ว ฉันเห็นคลิปวิดีโอสั้นๆ ของฉากโอเปร่า Cara Mia ที่ส่วนท้ายของ Portal 2 ฉันคิดว่า “เฮ้ ตอนนี้ฉันสร้างป้อมปราการสองสามแห่งแล้ว ฉันทำได้!” ฉันมีป้อมปืน แต่เพื่อให้มันใช้งานได้ ตอนนี้พวกมันจะต้องสื่อสารกันหรือกับอุปกรณ์อื่น หลังจากที่ได้คิดดูแล้ว และคิดว่าการควบคุมแบบแมนนวลก็น่าจะเจ๋งแล้ว ฉันก็ตัดสินใจว่าจะสร้าง Master Turret Controller หรือ MTC
ตกลงแล้วจะทำอย่างไรเกี่ยวกับเรื่องนี้? ฉันไม่อยากดัดแปลงป้อมปืนมากเกินไป นั่นเป็นข้อจำกัด ฉันมีชิปวิทยุ nRF24L01 บางตัวที่ฉันยังไม่เคยใช้มาก่อน และคิดว่าจะสอดคล้องกับเป้าหมายของฉันในการใช้ส่วนประกอบที่ราคาไม่แพง และอาศัยการออกแบบทางกลและรหัสเพื่อให้ใช้งานได้ ฉันจะต้องสร้างตัวควบคุมและเริ่มครุ่นคิดถึงสิ่งที่ตัวควบคุมจะมีและสิ่งที่ฉันสามารถทำได้กับป้อมปราการ Cara Mia อยู่ในวาระแล้ว แต่มีอะไรอีกบ้าง?
การควบคุมแบบแมนนวล: เมื่อเปิดปีกแล้ว ฉันต้องการควบคุมระดับเสียงและจุดหมุน 2 แกน = จอยสติ๊ก ดังนั้นการควบคุมจอยสติ๊กและปุ่มกดบางปุ่ม ปุ่มกด 1 จะยิงป้อมปืน และบางทีปุ่มกด 2 จะทำให้มันพูดอย่างใดอย่างหนึ่งของมัน ฟังดูเข้าท่า! ง่ายพอ…
แชท: ฉันเพิ่งเห็นกิจวัตร “ใครมาก่อน” - แอ๊บบอตและคอสเตลโลอีกครั้ง และแสงสว่างในหัวฉันก็ดับวูบ! ฉันยังจะทำกิจวัตรสเก็ตช์เรื่องตลกโดยใช้คำพูดทั้งหมด โดยใช้ป้อมปืนหลายอัน!! ตกลง อันนี้ยังคิดไม่หมด แต่ฉันแน่ใจว่าฉันจะได้รับมันจัดเรียงเมื่องานสร้างของฉันอยู่ระหว่างดำเนินการ
ฉันยังต้องการให้ MTC นี้เป็นแบบไร้สายด้วย ดังนั้นฉันจึงเลือกตัวเลือกที่ใช้แบตเตอรี่ 9V แบบธรรมดา และออกแบบตัวควบคุมให้ใช้พลังงานจากปลั๊ก mini-USB ผ่าน Nano ที่ด้านหลัง มีประโยชน์สำหรับการอัพเดทด้วย
ขั้นตอนที่ 1: ผสมผสานวิทยุเข้ากับป้อมปราการ
อันดับแรก ฉันได้รับวิทยุที่ทำงานร่วมกับ Nanos เปล่าสองสามตัว เพื่อให้แน่ใจว่าฉันสามารถทำให้มันทำงานและส่งข้อมูลระหว่างอุปกรณ์หลายเครื่องได้ เมื่อเสร็จแล้ว มันเป็นเรื่องของการรวมวิทยุเข้ากับป้อมปราการที่มีอยู่ อืม การเพิ่ม PCB จริงลงในป้อมปืนนั้นค่อนข้างง่าย ฉันเพิ่งแก้ไขที่ยึดชิปเพื่อรวม nRF24L01, Nano และชิป mp3 ตกลง. แก้ไขชิ้นส่วนทางกายภาพหนึ่งส่วน โดยมีการเดินสายบางส่วน
ตัวยึดชิปที่ดัดแปลงแล้วเป็นส่วนหนึ่งของชิ้นส่วนพิมพ์ป้อมปืนแล้ว ฉันเพิ่งลบตัวเลือกที่ไม่ใช่วิทยุออกจากส่วนที่พิมพ์ในบิลด์นั้น มันจะไม่สร้างความแตกต่างหากมีคนต้องการสร้างตัวแปรที่ไม่ใช่วิทยุ อย่าเพิ่งรวมชิปวิทยุ nRF24L01 เข้าไปด้วย
ขั้นตอนที่ 2: (อีกครั้ง) การเดินสายไฟของป้อมปราการ
เอ่อโอ้…
มันดูไม่ดี ฉันต้องการเพิ่มการเชื่อมต่อ 5 รายการให้กับนาโน และฉันเหลือพินที่พร้อมใช้งานเหลือน้อยแล้ว หลังจากพิจารณาเรื่องนี้มาซักพักแล้ว ฉันก็รู้ว่าการเชื่อมต่อใดมีความสำคัญกว่า และตระหนักว่าเพื่อให้ใช้งานได้ ฉันจะต้องทำการแมปการเชื่อมต่อ Nano ที่มีอยู่ส่วนใหญ่ใหม่
สำหรับผู้ที่ต้องการสร้าง “Radio Turret” และได้สร้าง Gen ก่อนหน้านี้แล้ว… ขออภัย…
ตอนนี้ ฉันทำการเปลี่ยนแปลงนี้ไปสองสามครั้งแล้ว และปรากฎว่ากระบวนการนี้ไม่ได้แย่เกินไป มันเกี่ยวข้องกับการกลับเข้าไปใหม่ แต่ฉันสามารถยกเลิกการเชื่อมต่อที่มีอยู่กับ Nano แล้วเชื่อมต่อกับหมุดที่เหมาะสมอีกครั้งโดยไม่ต้องเสียใจมากเกินไป ฉันเพิ่มสายไฟ 7 เส้นสำหรับชิปวิทยุเข้ากับ nRF24L01 (สายไฟ 5 สาย 3v และ GND) จากนั้นเชื่อมต่อปลายอีกด้านเข้ากับนาโน
ขณะนี้มีสายไฟจำนวนมากขึ้น ดังนั้นการรักษาความเรียบร้อยในการเดินสายไฟจึงเป็นเรื่องสำคัญมากขึ้น
สำคัญ: เมื่อประกอบ ตรวจสอบให้แน่ใจว่าสายไฟไม่กดบนปุ่ม Nano reset บนบอร์ด!! ที่เกิดขึ้นกับฉันในครั้งเดียวและโยนฉันวนซ้ำไม่จำเป็น!
ดังนั้นการสร้างป้อมปืนจึงมีแผนผังการเดินสายไฟ 2 แบบ: ตัวเลือก "ไม่ใช่วิทยุ" แบบเก่าและตัวเลือก "ป้อมปืนวิทยุ" ที่ปรับปรุงใหม่ ถ้าสร้างป้อมปืนที่ "ไม่ใช่วิทยุ" ในวันนี้ ฉันยังคงใช้แผนผังวิทยุและโค้ด เพียงลบหรือแสดงความคิดเห็นในส่วนวิทยุหากเป็นเส้นทางที่เลือกหรือไม่ ป้อมปืนควรทำงานด้วยตัวเองโดยไม่มีวิทยุ
ขั้นตอนที่ 3: ส่วนประกอบไฟฟ้า MTC
เมื่อแยกป้อมปราการ ก็ถึงเวลาสร้างเอ็มทีซี
MTC ใช้ส่วนประกอบต่อไปนี้ ซึ่งทั้งหมดมาจาก Amazon หรือ Baggood หรือ Ali Express ฯลฯ ฉันกำลังแสดงหมายเลขชิ้นส่วนของ Amazon ที่ฉันอ้างอิงเพื่อใช้อ้างอิง เนื่องจากสินค้าเหล่านี้มีจำหน่ายทั่วไปและมีราคาที่สมเหตุสมผล (และฉันไม่ต้อง รอ 2+ สัปดาห์กว่าจะได้สิ่งที่ต้องการก่อนจึงจะเริ่มออกแบบกลไกได้!)
- Arduino Nano 0.96” LCD, (SSD1306) ฉันใช้รุ่นสีน้ำเงิน/เหลือง
- จอยสติ๊กขนาดเล็ก (HW-504) โมดูลจอยสติ๊ก 5V PS
- สวิตช์สลับ (dx-004) 22mm * 13mm
- วิทยุ - (nRF24L01)
- ปุ่มกด 12 มม. (CLT1088 สำหรับปุ่มสี, PBS-33B สำหรับสีดำ)
- สกรู 2 มม. (ชุดสกรูต๊าปตัวเอง M2, ชุดหัวแกนครอสไดรฟ์)
- ไฟ LED 5 มม. ที่คุณเลือกสำหรับตัวบ่งชี้ (อย่าใช้ไฟ LED สว่าง!!)
- ขั้วต่อแบตเตอรี่ 9V ทั่วไปพร้อมผมเปีย
- แบตเตอรี่ 9V (ใช้แบตเตอรี่ที่ดี ไม่ใช่รุ่นเก็บดอลลาร์ที่ไม่สามารถจ่ายพลังงานเพียงพอสำหรับโครงการเหล่านี้ได้เสมอ!)
- ฉันใช้ลวดหุ้มซิลิโคน ฉันชอบใช้มันสำหรับโครงการเหล่านี้
ตอนแรกฉันใช้ไฟ LED ที่สว่าง แต่พบว่ามันดีเกินไป พวกเขาทำให้ฉันตาบอด! ฉันลงเอยด้วยการใช้ไฟ LED เก่า ๆ ที่อ่อนแอและนั่นก็สมเหตุสมผลกว่าสำหรับแอปพลิเคชันนี้
ขั้นตอนที่ 4: ชิ้นส่วนที่พิมพ์ 3 มิติ
ฉันออกแบบ MTC โดยใช้ Fusion คล้ายกับการออกแบบป้อมปืน
แอสเซมบลีที่พิมพ์ต้องการเพียง 3 ส่วน:
- แผงด้านบน (เวอร์ชัน 1 หรือ 2)
- ตัวเรือนด้านล่าง
- สาย LCD
ชิป nRF, นาโน, แบตเตอรี่ 9V, สวิตช์สลับและไฟ LED ถูกติดตั้งไว้ที่เพลทด้านบนโดยไม่มีตัวยึด ไฟ LED เพียงแค่กดลงในเพลตและยึดไว้กับที่โดยแท็บ พวกเขาควรจะเข้ามา แต่อย่าหักโหมจนเกินไป เพลทด้านบนได้รับการออกแบบให้ยึดนาโนไว้แน่น และชิป nRF ควรจะเข้าไปอย่างแผ่วเบา ระวังด้วยแท็บเล็ก nRF; มีขนาดเล็กและงอกลับเพื่อเปิดและปล่อยเพื่อจับชิป แม้ว่าการเดินทางจะมีจำกัด แต่จงอ่อนโยนที่นี่
จอยสติ๊กและจอ LCD ต้องใช้สกรู 2 มม. (ยาว 5 มม.) เพื่อยึดไว้กับแผ่นด้านบน PCB ของจอยสติ๊กมีรูขนาดใหญ่ ดังนั้นฉันจึงรู้สึกว่าฉันต้องการแหวนรองขนาดเล็กเพื่อให้แน่ใจว่าสกรูจะไม่ดึงผ่าน
ฉันพบว่า PCB ของ LCD มาในมิติที่แตกต่างกันเล็กน้อยจากผู้ผลิตไปยังผู้ผลิต ดังนั้นฉันจึงเลือกใช้สายรัดธรรมดาเพื่อยึดไว้แทนที่จะใช้คลีตหรือตะขอ
โปรดทราบว่าสามารถติดตั้ง LCD ลงในเพลทด้านบนได้ไม่ว่าจะด้วยวิธีใด แต่จอแสดงผลจะแสดงขึ้นเต็มที่ผ่านช่องเปิดในทิศทางเดียวเท่านั้น! ด้วยเหตุนี้ ฉันจึงได้รวมตัวเลือกแผ่นที่ 2 ไว้เมื่อใช้หน้าจอแยกสีเหลือง/น้ำเงิน รุ่นหนึ่งมีสีเหลืองที่ด้านบนและอีกรุ่นจะแสดงสีเหลืองที่ด้านล่างตามที่แสดงในรูปภาพของฉัน
สำหรับ LCD รุ่นสีเดียว ไม่สำคัญว่าจะใช้สีใด เพราะคุณสามารถพลิกหน้าจอโดยใช้ซอฟต์แวร์ได้
เนื่องจากการเดินสายทั้งหมดทำบนเพลทด้านบน ด้านล่างจึงเป็นเพียงฝาครอบที่ยึดไว้กับเพลทด้านบนด้วยสกรู 2 มม. ที่ยาวกว่า (จำนวน:4)
แทนที่จะใช้ตัวเลือก "ประตูแบตเตอรี่" ฉันแค่ใส่แบตเตอรี่ลงในเพลตด้านบน ซึ่งหมายถึงการถอดสกรู 4 ตัวที่ยึดด้านล่างขึ้นด้านบนเพื่อเปลี่ยนแบตเตอรี่ แต่เนื่องจากสามารถใช้พลังงานจากสาย USB ได้ ไม่ใช่จุดจบของโลก เพลทด้านบนทำมาจากระบบที่วางแบตเตอรี่ 9V ที่ควรจะแข็งแรงพอสำหรับการใช้งานซ้ำๆ ไม่ซับซ้อนจนเกินไป แต่จะป้องกันไม่ให้แบตเตอรี่เคลื่อนไปรอบๆ
ฉันพิมพ์แผ่นบนเป็น 2 สีตามที่เห็นในรูปภาพ ฉันใช้ Prusa i3 Mk2 โดยไม่มีตัวเลือกหลายสี แต่ใช้เครื่องมือพิมพ์สี (https://www.prusaprinters.org/color-print/) เพื่อเปลี่ยนสีระหว่างกระบวนการ ตรวจสอบเลเยอร์ที่ข้อความหยุดและกลายเป็นของแข็ง และทำให้เป็นเลเยอร์การเปลี่ยนแปลง โว้ว! ข้อความสี!
ฉันพิมพ์ชิ้นส่วนที่ความสูงของชั้น 0.35 มม. เนื่องจากไม่ต้องการความละเอียดที่ละเอียดกว่านี้บนชิ้นส่วนเรียบๆ เหล่านี้ ฉันชอบวิธีการดูความละเอียดนี้ด้วย โอ้และพิมพ์ได้ค่อนข้างเร็วด้วย!
ขั้นตอนที่ 5: การประกอบไฟฟ้า
ส่วนประกอบทางไฟฟ้าทั้งหมดถูกติดตั้งไว้ที่ด้านล่างของแผ่นด้านบน และเดินสายทั้งหมดเข้าด้วยกัน ต้องติดตั้งปุ่มกดและสวิตช์ก่อน และสามารถติดตั้ง LCD, Nano, Joystick, วิทยุ nRF ล่วงหน้าได้ก่อนที่จะติดตั้งในเพลทด้านบน ฉันแนะนำวิธีนี้ในการเดินสายส่วนประกอบแต่ละส่วนล่วงหน้า จากนั้นจึงทำการเชื่อมต่อกับนาโนในตอนท้าย ฉันยังแนะนำให้อัปโหลดภาพสเก็ตช์ไปที่ Nano เปล่าก่อน ก่อนที่จะเดินสายจนเสร็จ
ไม่มีอะไรจะน่าพอใจไปกว่าการเปิดเครื่องแล้วดูมีชีวิตชีวาอย่างที่คิดไว้เมื่อทำเสร็จแล้ว!
การเตรียมชิ้นส่วนไฟฟ้าเพียงอย่างเดียวที่จำเป็นคือการถอดหมุดส่วนหัวออกจากจอยสติ๊กเพื่อให้พอดีกับใต้เพลทด้านบน หน้าจอ LCD สามารถซื้อได้ทั้งแบบมีหมุดและไม่ได้ติดตั้งไว้ และจะทำงานด้วยวิธีใดวิธีหนึ่ง ควรเลือกนาโนที่ไม่มีหมุดส่วนหัว
ขั้นตอนที่ 6: รหัส
รหัสสำหรับ MTC, Red turret, White Turret และ Blue Turret ขึ้นแล้ว
นี่เป็นประสบการณ์ในการเขียนโค้ด! ฉันมีป้อมปืนทำงานอิสระ แต่การรวมวิทยุนั้นยากกว่าที่ฉันคิดไว้ในตอนแรก! ฉันยังสนุกกับการทำให้ส่วน "แชท" ทำงานได้ตามต้องการ (เพิ่มเติมในภายหลัง)
เมื่อรู้รหัส MTC แล้ว ก็เริ่มจำกัดหน่วยความจำของนาโน! ฉันต้องทำการปรับเปลี่ยนและประหยัดโค้ดเพื่อให้หน่วยความจำมีประสิทธิภาพมากขึ้น อีกหนึ่งประสบการณ์การเรียนรู้ที่ดี
ฉันได้รวมโค้ด "Turret w radio option" ที่เกี่ยวข้องไว้ในโครงสร้างนี้ เนื่องจากทำงานร่วมกัน การสร้างป้อมปืนตัวเลือกวิทยุตามหน้าการสร้าง Turret จะทำให้พร้อมใช้งานกับ MTC หรือสำหรับวิธีการควบคุม nRF24L01 อื่นๆ ของคุณ
นอกจากนี้ การทำให้เสียงใช้งานได้กับโค้ดนี้ใช้เวลาพอสมควร และเนื่องจากเสียงดังกล่าวมาจากเว็บไซต์อื่นๆ ที่เข้าถึงได้แบบสาธารณะ ฉันจึงรวมเสียงทั้งหมดไว้ในไฟล์ ZIP สองสามไฟล์ อันหนึ่งสำหรับป้อมปืนปกติ และอีกอันสำหรับป้อมปืนที่ชำรุด สิ่งที่ดีสำหรับคุณผู้อ่านที่รักคือคุณสามารถใช้เสียงในการ์ด SD ของคุณด้วยรหัสตามที่เขียนไว้และคุณก็พร้อมแล้ว!
ขั้นตอนที่ 7: เมนู MTC - การนำทาง
รหัส MTC เริ่มต้นด้วยหน้าจอ Splash แบบกำหนดเอง จากนั้นตรวจสอบสถานะของป้อมปราการ หากไม่มีป้อมปราการ มันจะนั่งอยู่ที่นั่นจนกว่าป้อมปราการจะเชื่อมต่อ!
หากมีการเชื่อมต่อป้อมปืนอย่างน้อยหนึ่งเครื่อง เมนูหลักจะแสดงขึ้นและไฟ LED "พร้อม" จะสว่างขึ้น เว้นแต่ป้อมจะถูกขัดจังหวะหรือกำลังยุ่งอยู่กับ "การจัดการกับใครบางคน" หากไม่ว่าง หน้าจอ "Turrets are Busy" จะปรากฏขึ้น และไฟ LED "ไม่ว่าง" จะสว่างขึ้น
ป้อมปราการที่เชื่อมต่ออย่างแข็งขันทั้งหมดต้องอยู่ใน "โหมดพร้อม" ก่อนที่ MTC จะสามารถควบคุมป้อมปราการได้
ใช้จอยสติ๊ก (ขึ้นและลง) เพื่อหมุนเวียนผ่านตัวเลือกเมนู:
- อาเรีย
- แชท
- คู่มือ
เลือกตัวเลือกที่ต้องการโดยใช้ปุ่ม 'X' หรือโดยการกดลงบนจอยสติ๊ก
โหมด Aria - การเลือกตัวเลือกนี้จะแสดงหน้าจอ "โหมด Aria" และทำให้ป้อมปราการแสดงฉาก Aria เมื่อสิ้นสุดเกม Portal 2 เมื่อเสร็จแล้ว ป้อมปราการจะปิดและรอคำสั่งหรือใครก็ตามที่จะปลุกมันขึ้นมา
โหมดแชท - การเลือกตัวเลือกนี้จะแสดงหน้าจอ "โหมดแชท" และเริ่มลำดับการแชท เมื่อเสร็จแล้ว ป้อมปราการจะปิดและรอคำสั่งหรือใครก็ตามที่จะปลุกมันขึ้นมา
โหมดแมนนวล - การเลือกตัวเลือกนี้จะแสดงหน้าจอ "โหมดแมนนวล" ให้ไฟ LED "แมนนวล" สว่างขึ้น และอนุญาตให้ใช้งานป้อมปืนแบบแมนนวลได้ จอยสติ๊กควบคุมระดับเสียงและเดือย การกดปุ่ม 'X' จะเปิดใช้งานลำดับการยิง การกดปุ่ม 'T' จะทำให้พวกเขา "พูด" โดยที่ป้อมปราการจะพูดคำพูดแบบสุ่มจากห้องสมุดของพวกเขา
การกดปุ่ม '<' หรือปุ่มย้อนกลับจะยกเลิกโหมดทั้งสามนี้ ปิดป้อมปืนและกลับสู่เมนูหลัก
หากคุณต้องการดูสถานะการเชื่อมต่อของกลุ่มป้อมปราการของคุณ (ปัจจุบันจำกัดอยู่ที่ 3) ให้กดปุ่ม 'T' เมื่ออยู่ในเมนูหลัก คุณจะถูกนำไปที่หน้าจอ "สถานะป้อมปืน" ซึ่งคุณสามารถดูสถานะการเชื่อมต่อของแต่ละป้อมปืนได้
เมื่ออยู่ในหน้าจอ “สถานะป้อมปราการ” คุณจะเห็นสถานะของแต่ละป้อม
- พร้อม - พร้อมสำหรับการควบคุม
- ไม่ว่าง - ป้อมปืนกำลังยุ่ง "ดูแล" ใครบางคน
- ไม่พร้อมใช้งาน - MTC ไม่สามารถเชื่อมต่อกับป้อมปืนนี้ได้
กดปุ่ม '<' เพื่อกลับไปยังเมนูหลัก
ขั้นตอนที่ 8: การปรับแต่งโค้ด
ภาพหน้าจอที่แสดงในที่นี้แสดงให้เห็นว่าฉันจ้องมองอะไรนานเกินไป… ครั้งละ 4 ภาพร่าง! ใครว่าแก้จุดบกพร่องไม่สนุก!
รหัสให้การควบคุมและตัวเลือกที่แสดงด้านบน แต่แล้วการปรับแต่งรหัสล่ะ
แน่นอน! แต่มีจำนวนพอสมควรเกิดขึ้นที่นี่ ดังนั้นนี่คือแนวทางหรือเคล็ดลับบางประการ
เคล็ดลับที่ 1 - การแก้ไขลำดับ "แชท" การปรับเปลี่ยนนี้เกิดขึ้นในรหัสป้อมปืน
ฉันพยายามคิดหาวิธีทำให้โค้ดใช้งานได้ทุกที่ที่ทำได้ ทำให้ลำดับการแชทสามารถแก้ไขได้มากขึ้น (นั่นคือคำหรือเปล่า) เพื่อให้ฉันสามารถจดจ่อกับเรื่องราวได้ล่วงหน้ามากขึ้น แต่ทำให้ปรับแต่งได้ง่ายขึ้นในภายหลัง
การเปลี่ยนลำดับการแชทโดยใช้โครงสร้างการเข้ารหัสที่มีให้สามารถทำได้ในวิธีที่ตรงไปตรงมา หากคุณปฏิบัติตามวิธีการที่ใช้ในโค้ด การใช้ไฟล์เสียงที่ให้ไว้ จากเกม Portal 2 คุณจะต้องเปลี่ยนตาราง (chatSayings) เท่านั้น
เลือกคำกล่าวสำหรับป้อมปืนปกติหรือป้อมปืนชำรุด คำพูดคือไฟล์ mp3 ที่ระบุด้วย "00XX -" ตามด้วยข้อความที่อธิบายคำพูดนั้น เป็นตัวเลขที่เป็นส่วนสำคัญ ป้อมปืน # 1 จะใช้ค่า XX นี้ในตาราง ป้อมปืน # 2 จะนำหน้าค่า XX ด้วย '1' และป้อมปืน # 3 จะนำหน้าค่า XX ด้วย '2' ตัวอย่างเช่น หากคุณเลือกสำนวน "0040 - ขอโทษ" และต้องการให้ป้อมปืน # 3 พูด คุณจะต้องใส่ "240" ลงในตารางตามลำดับที่ถูกต้อง ถ้าป้อมปืน # 1 พูด คุณจะต้องใส่ “40” ลงในตาราง
ทำเช่นเดียวกันสำหรับนิพจน์ถัดไป เป็นต้น มันอาจจะเป็นการแสดงออกเล็กน้อยระหว่างป้อมปราการหรือค่อนข้างน้อย (ฉันไม่ทราบข้อจำกัดของวิธีนี้ นอกเหนือจากหน่วยความจำ)
คุณไม่จำเป็นต้องเปลี่ยนค่าของตารางอื่น ๆ เนื่องจากเป็นการกำหนดเวลาที่สอดคล้องกับคำพูดในตาราง อีกบรรทัดเดียวที่จะเปลี่ยนคือรอบบรรทัด 520
if (i >= 43) { // สิ้นสุดลำดับ
ค่าของฉันที่นี่จะต้องถูกกำหนดเป็นจำนวนคำพูดในตาราง chatSayings
ในการสร้างคำพูดที่ปรับแต่งได้อย่างสมบูรณ์ (ซึ่งความสนุกที่แท้จริงเริ่มต้นขึ้น!) คุณจะต้องตั้งค่านิพจน์ในไฟล์ที่มีตัวเลข และรู้ระยะเวลาที่จำเป็นในการเล่นไฟล์ บันทึกไฟล์ลงในโฟลเดอร์ "mp3" ในไดเรกทอรีรากของการ์ด SD โดยใช้วิธีการสี่หลัก ("0001", "0002" เป็นต้น) จากนั้นบันทึกเวลาเป็นมิลลิวินาทีที่ไฟล์นั้นเล่น แทรกค่าเหล่านี้ลงในตารางที่เหมาะสม
ดังนั้นสำหรับนิพจน์ที่บันทึกเป็น “0037 - [นิพจน์ของคุณ]” ซึ่งใช้เวลา 5400 มิลลิวินาทีในการเล่น คุณจะต้องใส่ '37' ลงในตาราง chatSayings ในตำแหน่งที่เหมาะสม (และเพิ่มคำนำหน้าขึ้นอยู่กับว่าป้อมปืนใดพูด นั้น) และ 5400 ในตาราง NormaTimings ที่ตำแหน่งเดียวกัน (เช่น รายการที่ 5 ในแต่ละตาราง)
ตอนนี้เมื่อค่าของ 'i' เพิ่มขึ้น รหัสจะเล่น 0037 เป็นเวลา 5400 มิลลิวินาที
โปรดทราบว่าฉันได้เพิ่มตัวแปร "timeadder" ซึ่งเพิ่มเวลาพิเศษเล็กน้อยให้กับแต่ละคำพูดเมื่อเล่น ซึ่งจะทำให้ระยะห่างระหว่างคำพูดเล็กน้อยเพื่อไม่ให้ดูเหมือนทับซ้อนกัน
ความงามของวิธีนี้คือตารางที่เสร็จสมบูรณ์ในแต่ละป้อมปืนจะเหมือนกันทุกประการ! ไม่จำเป็นต้องปรับแต่งตารางเหล่านี้สำหรับแต่ละป้อมปืน คุณเพียงแค่ต้องจัดเรียงตารางหนึ่งตาราง และรหัสจะระบุสิ่งที่แต่ละป้อมปืนพูดโดยอิงจากตารางเดียวกัน
ซึ่งหมายความว่าคุณสามารถมุ่งเน้นไปที่การเขียนสคริปต์แทนการเข้ารหัส!
ถ้าใครมีวิธีที่ดีกว่านี้ ก็ยินดีรับฟัง!!
ขั้นตอนที่ 9: สรุป
ดังนั้นสิ่งนี้จึงใช้เวลานานกว่าที่ฉันคิด แต่ฉันรู้สึกจั๊กจี้กับผลลัพธ์ที่ได้ กิจวัตรการแชทบางรายการยังทำให้ฉันหัวเราะได้!
ฉันชอบที่จะได้ยินวิธีการอื่นในการทำสิ่งที่ฉันทำในโค้ดของฉัน ฉันแน่ใจว่ามีส่วนต่างๆ ที่สามารถเขียนใหม่และใช้หน่วยความจำน้อยลง ทำให้มีคุณลักษณะหรือตัวเลือกมากขึ้น
ฉันยังอยากเห็นไอเดียอื่นๆ รวมอยู่ใน MTC และการควบคุมป้อมปราการด้วย!
ฉันหวังว่าฉันได้จัดเตรียมแพลตฟอร์มสำหรับนักออกแบบและผู้เขียนโค้ดคนอื่นๆ เพื่อใช้ / ขโมย / เรียนรู้จาก ฉันเห็นว่ามีการใช้สิ่งนี้เพื่อช่วยให้ผู้คนเรียนรู้การเขียนโค้ด นำส่วนออกจาก MTC และ/หรือป้อมปืน เช่น "โหมดแมนนวล" และให้นักเรียนพัฒนาวิธีการของตนเองเพื่อรวมการควบคุมด้วยตนเอง!
ฉันได้เรียนรู้มากมายจากชุมชนนี้และเว็บในวงกว้างโดยทั่วไป ฉันยังคงประหลาดใจที่มีผู้คนมากมายใช้เวลามากมายในการค้นหาสิ่งต่าง ๆ และแบ่งปันให้กับโลก ฉันคิดว่าฉันควรจะนำสิ่งที่ฉันได้เรียนรู้ไปประยุกต์ใช้ แล้วแบ่งปันกับพวกคุณด้วย!
ขอให้โชคดีและสนุกกับการสร้างกองทัพป้อมปราการของคุณเอง!