สารบัญ:

Ardubaby Mini Game Console พร้อมเกม 500 เกม: 10 ขั้นตอน
Ardubaby Mini Game Console พร้อมเกม 500 เกม: 10 ขั้นตอน

วีดีโอ: Ardubaby Mini Game Console พร้อมเกม 500 เกม: 10 ขั้นตอน

วีดีโอ: Ardubaby Mini Game Console พร้อมเกม 500 เกม: 10 ขั้นตอน
วีดีโอ: [DIY] Game and Watch Arduboy 2024, พฤศจิกายน
Anonim
Ardubaby มินิเกมคอนโซลพร้อมเกม 500 เกม
Ardubaby มินิเกมคอนโซลพร้อมเกม 500 เกม
Ardubaby มินิเกมคอนโซลพร้อมเกม 500 เกม
Ardubaby มินิเกมคอนโซลพร้อมเกม 500 เกม

เครดิตให้กับผู้สร้าง (Kevin Bates) Arduboy เป็นเกมคอนโซล 8 บิตที่ประสบความสำเร็จอย่างมาก มีเกมหลายพันเกมที่เขียนโดยมือสมัครเล่นที่แบ่งปันเกมเหล่านี้อย่างอิสระบนฟอรัมชุมชนของ Arduboy เพื่อให้ผู้คนจำนวนมากขึ้นสามารถเรียนรู้วิธีการเขียนโค้ด

การออกแบบฮาร์ดแวร์ยังเป็นโอเพ่นซอร์สอีกด้วย และอนุญาตให้ผู้ผลิตเช่นฉันออกแบบฮาร์ดแวร์เวอร์ชันของตนเอง และพัฒนายูทิลิตี้ซอฟต์แวร์เพื่อเพิ่มประสิทธิภาพการทำงานของมัน มอบเครดิตให้กับ MR. Blinky ผู้ออกแบบวงจร Flash-Cart แพ็คเกจโฮมเมดสำหรับ Arduino IDE และยูทิลิตี้ python เพื่อจัดการ Flash cart ที่สามารถจัดเก็บเกม 500 เกมในหน่วยความจำแฟลชซีเรียล 16 เมกะไบต์สำหรับเล่นบนท้องถนนโดยไม่ต้องใช้คอมพิวเตอร์

จากการศึกษาหัวข้อสนทนาในฟอรัมชุมชนของ Arduboy ฉันได้เรียนรู้ว่าฉันต้องทำอะไรเพื่อสร้าง Arduboys ทำเองหลายๆ แบบ สำหรับผู้มาใหม่ นี่อาจไม่ใช่เรื่องง่าย ดังนั้น ฉันต้องการแบ่งปันสิ่งที่ฉันเรียนรู้ในวิดีโอแบบ end-to-end เดียวและคำแนะนำที่เป็นลายลักษณ์อักษรนี้ หวังว่าสิ่งนี้จะช่วยให้ผู้ที่มองหาคำตอบในการสร้างชุดอุปกรณ์ของตนเอง แต่ไม่รู้ว่าจะถามอย่างไรหรือไม่ได้รับช่องทางที่เหมาะสมในการถามคำถามเหล่านั้น

Arduboy รุ่นของฉันมีขนาดเล็กเพียง 1/4 ของขนาดบัตรเครดิต (3.5 ซม. x 5.0 ซม.) แต่หนาเล็กน้อย (2 ซม. รวมฝาครอบด้านล่าง) แต่มีระฆังและนกหวีดทั้งหมดที่คุณต้องการ: OLED 0.9 นิ้ว, ช่องเสียบหูฟัง, ตัวควบคุมระดับเสียง, RGB LED

และที่สำคัญที่สุดคือพอร์ตส่วนขยายที่ให้คุณสลับปุ่มเกมคอนโซลกับปุ่มต่างๆ ได้โดยสลับแผงวงจรด้านบน (ปุ่มหมวก)

จากนั้นคุณสามารถใช้ปุ่มไร้เสียง จอยสติ๊กแบบปุ่ม หรือแม้แต่ตัวควบคุมแบบแอนะล็อก เช่น โพเทนชิออมิเตอร์

คุณยังสามารถเพิ่มเซ็นเซอร์ความชื้นและอุณหภูมิเพื่อสร้างสถานีตรวจอากาศขนาดเล็ก หรือเพิ่มเซ็นเซอร์ซุปเปอร์โซนิคเพื่อสร้างเครื่องวัดระยะทาง

นอกจากนี้ยังมีหน่วยความจำแฟลชแบบอนุกรมเพิ่มเติม 16 ล้านไบต์สำหรับจัดเก็บเกม Arduboy หรือโปรแกรมอรรถประโยชน์ได้มากถึง 500 เกม ด้วยการใช้ bootloader (Cathy3K) ที่ออกแบบโดย MR. Blinky คุณสามารถเรียกเกมใดเกมหนึ่งจาก 500 เกมบนท้องถนนและแฟลชตัวเองไปที่ชิป ATmega32U4 (ไมโครคอนโทรลเลอร์ของ Arduboy) ในไม่กี่วินาทีเพื่อเริ่มเล่นโดยไม่ต้อง เชื่อมต่อกับคอมพิวเตอร์หรือโทรศัพท์ของคุณ

ขั้นตอนที่ 1: รับชิ้นส่วนทั้งหมด

รับอะไหล่ทั้งหมด
รับอะไหล่ทั้งหมด

ชิ้นส่วนส่วนใหญ่สามารถซื้อได้ทางออนไลน์ผ่าน amazon.com, aliexpress.com หรือ taobao.com สิ่งเหล่านี้บางส่วนสามารถเก็บเกี่ยวได้จากบอร์ด Arduino ที่ไม่ได้ใช้

มีค่าใช้จ่ายน้อยกว่า USD 12 (ไม่รวมค่าจัดส่ง) เพื่อซื้อสิ่งเหล่านี้จาก taobao.com และจัดส่งไปยังฮ่องกง

Arduino Pro Micro

OLED 64x128 SSD1306 SPI 0.96"

Winbond W25Q128 ชิปหน่วยความจำ 16Mbyte

3.7V 280 MAH Lipo แบตเตอรี่ USB LiPO โมดูลเครื่องชาร์จแบตเตอรี่ (4.2V)

แจ็คหูฟัง 3.5 มม. 10K mini VR (B103) สำหรับการควบคุมระดับเสียง

10K mini VR (B103) สำหรับโพเทนชิออมิเตอร์หรือตัวควบคุมแบบโรตารี่ (อุปกรณ์เสริม)

ลำโพง Piezo ขนาดเล็ก

ตัวต้านทาน 3k, 3x 1K

3-in-1 RGB LED Seven

ปุ่มเงียบ 5x5 มม.

สวิตช์เลื่อน 9x4 มม. สำหรับสวิตช์ไฟ

บอร์ด perf ด้านคู่ 5x8 ซม. สองแผ่น

บอร์ด perf ด้านเดียว 5x8 ซม. หนึ่งอัน

หัวต่อตัวเมีย 1x13 พิน

ส่วนหัวชาย 1x13 พิน

หัวต่อตัวเมีย 1x7 พิน

ส่วนหัว 1x7 ขาชาย 3.5x5 ซม. แผ่นอะครีลิคสำหรับปกหลัง

ค่าจัดส่งจะรวมอยู่ในงบประมาณของคุณ

ขั้นตอนที่ 2: สร้างกระดานหลัก

ทำกระดานหลัก
ทำกระดานหลัก
ทำกระดานหลัก
ทำกระดานหลัก
ทำกระดานหลัก
ทำกระดานหลัก

1. สร้างเฟรมสำหรับเมนบอร์ด

NS. ใช้บอร์ด perf 8 ซม. x 5 ซม. ตัดมันโดยใช้กรรไกร (หรือเลื่อย) เพื่อทำบอร์ดที่มีขนาดเล็กลง 3.5 ซม. x 5 ซม. ที่ควรจะมีรูเข็ม 18 แถวและ 13 คอลัมน์ ตัดชิ้น 3.5 ซม. x 5 ซม. ออกจากกระดานอะคริลิกเพื่อใช้เป็นปกหลัง

NS. ประสานส่วนหัวเพศหญิง 13 พินไปที่แถวสุดท้ายที่ด้านล่างสำหรับปุ่มหมวกและส่วนขยาย ค. ประสานส่วนหัวของตัวเมีย 7 พินเข้ากับแถวแรกที่ด้านบนสุดสำหรับ OLED แบบ 7 พิน

NS. ประสานปุ่มเงียบสำหรับปุ่มรีเซ็ต อี ประสานสวิตช์เลื่อนสำหรับสวิตช์ไฟ NS. บัดกรีแจ็คหูฟังสเตอริโอ 3.5 มม. สำหรับเฮดโฟน NS. ติดตัวต้านทานแบบปรับได้ขนาดเล็ก 10K แบบ 3 พิน

2. ทำเครื่องชาร์จแบตเตอรี่ 4.2V LIPO และวงจรควบคุม 3.3V

NS. ปลดตัวควบคุม 5 พิน 5 พินบนบอร์ด Pro-Micro เพื่อให้เราสามารถจ่ายพลังงานจากตัวควบคุม 3.3V ภายนอก

NS. ตัดแต่งโมดูลเครื่องชาร์จแบตเตอรี่ LIPO เพื่อให้พอดีกับเมนบอร์ดถัดจากแจ็คแบตเตอรี่ 3.4 มม. คุณจะต้องทำการตัดตรงจุดที่ขั้วต่อ USB มาบรรจบกับวงจรที่เหลือ หากยังใหญ่เกินไป คุณอาจต้องตัดแต่งเพิ่มเติมเล็กน้อย ในกรณีของฉัน ฉันต้องย้ายและบัดกรีตัวต้านทานตัวใดตัวหนึ่งอีกครั้งเพื่อให้ฉันสามารถตัดเพิ่มเติมได้

ค. ตัดแท็บที่ด้านบนของตัวควบคุม 3.3V (AMS1117-3.3) เพื่อลดพื้นที่ และเพื่อหลีกเลี่ยงไฟฟ้าลัดวงจร จากนั้นประสาน tpin 1 เข้ากับเอาต์พุตเชิงลบและพิน 3 เอาต์พุตที่เป็นบวกของโมดูลเครื่องชาร์จแบตเตอรี่ LIPO ประสานตัวเก็บประจุ 0.1uF ระหว่างพิน 1 และพิน 2 เพื่อแยกและลดเสียงรบกวน ใช้ตัวเก็บประจุชนิด SMD ขนาดเล็กเพื่อลดพื้นที่ถ้าเป็นไปได้

NS. ต่อสายเคลือบ (ฉนวน) 0.3 มม. จากพิน RAW ของบอร์ดไมโคร Pro เข้ากับอินพุตบวก 5V ของโมดูลเครื่องชาร์จแบตเตอรี่ เชื่อมต่อสายไฟจากพิน GND ของบอร์ดไมโคร Pro กับอินพุตลบของโมดูลเครื่องชาร์จแบตเตอรี่ ต่อสายไฟจากพินกลาง (พิน 2) ของตัวควบคุม 3.3V ต่อขั้วลบและขั้วบวกของแบตเตอรี่ LIPO เข้ากับขั้วลบและขั้วบวกของเครื่องชาร์จแบตเตอรี่ตามลำดับ

NS. เชื่อมต่อสาย USB จากคอมพิวเตอร์ของคุณเข้ากับบอร์ด Pro-Micro หมุด RAW ควรจ่ายไฟ 5V จากสาย USB ไปยังโมดูลเครื่องชาร์จแบตเตอรี่ LIPO ซึ่งจะถูกควบคุมให้ชาร์จแบตเตอรี่ LIPO ไฟ LED สำหรับชาร์จควรสว่างขึ้น ตัวควบคุม 3.3V ควรแปลงเอาต์พุต 4.2V เป็น 3.3V เพื่อจ่ายไฟให้กับบอร์ด Pro-Micro LED บนบอร์ด Pro-Micro ควรสว่างขึ้น

อี เริ่ม Arduino IDE แล้วคลิก Tools -> Ports เพื่อตรวจสอบชื่อพอร์ตเพื่อตรวจสอบว่าคอมพิวเตอร์ของคุณรู้จักพอร์ต USB ของ Pro Micro หรือไม่ บน MAC OSX ของฉัน มันแสดง “/dev/cu.usbmodem14201 (Arduino Leonardo)” คลิก Tools-Boards และเลือก "Arduino Leonardo" จากนั้นโหลดภาพร่างตัวอย่าง “Blink” จากนั้นทดสอบการอัปโหลดเพื่อตรวจสอบว่าคุณสามารถอัปโหลดไปยัง Pro Micro ได้หรือไม่ หากมีปัญหาใดๆ ให้ตรวจสอบสายไฟและการบัดกรีอีกครั้ง

3. สร้างบอร์ดลูกสาวแฟลชอนุกรม NS. ตัดบอร์ด perf ด้านเดียวที่เล็กกว่าที่มีรู 7 พิน x 4 รูพินออกเพื่อใช้เป็นบอร์ดลูกสำหรับใส่ชิปหน่วยความจำแฟลชและพินแยกพิเศษของ D11, D12, D14 NS. แบ่งแผ่นบัดกรีบนแถวที่ 2 สุดท้ายของกระดานออกเป็นสองส่วน ซึ่งจะใช้เพื่อยึดโมดูลหน่วยความจำแฟลชแบบอนุกรมซึ่งเป็นอุปกรณ์ยึดบนพื้นผิวที่มีระยะห่างระหว่างพินที่แคบ เพื่อให้หมุดสองตัวตรงกลางยืนอยู่บนสองส่วนของแผ่นบัดกรีและจะไม่ลัดวงจร ค. ประสานชิปหน่วยความจำ Winbond W25Q128 เข้ากับบอร์ดประสิทธิภาพ ตรวจสอบให้แน่ใจว่าไม่มีหมุดสองตัวสัมผัสกัน

4. ประสานรอยแยกเพิ่มเติมจากชิป ATMega32U4 สำหรับพิน D11, D12, D13 NS. ใช้ปลายบัดกรีแบบละเอียดและแว่นขยาย บัดกรีลวดเคลือบ (ฉนวน) ขนาด 0.5 มม. สามเส้น ลงบนหมุดของชิป ATMega32U4 เพื่อตอกหมุด D11, D12, D13 อ้างถึงรูปแบบพินของ ATMega32U4 นี่เป็นส่วนที่ยากที่สุดของโครงการ ฉันใช้เวลาครึ่งชั่วโมงในแต่ละครั้งที่ฉันต้องการประสานสิ่งนี้ คุณต้องระวังอย่างยิ่งที่จะไม่ลัดวงจรพินอื่นๆ ของไมโครคอนโทรลเลอร์โดยไม่ได้ตั้งใจ ในขณะที่ยังคงสร้างข้อต่อที่มั่นคงซึ่งจะคงอยู่ตลอดไป ดูวิดีโอ youtube เพื่อเรียนรู้วิธีบัดกรีบัดกรีเล็กๆ น้อยๆ และวิธีช่วยชีวิตบัดกรีที่หกโดยไม่ได้ตั้งใจโดยใช้เกลียวที่บัดกรี ฉันจะไม่แนะนำปืนลม/เครื่องเป่าลมร้อนเว้นแต่คุณจะชำนาญเพียงพอ หากควบคุมระยะทางและกำลังได้ไม่ดี อาจทำให้บัดกรีบัดกรีของชิป ATMega32U4 ได้อย่างง่ายดาย หรือหลอมส่วนประกอบอื่นๆ และทำให้บอร์ดทั้งหมดเสียหายจนไม่สามารถกู้คืนได้

NS. ประสานปลายอีกด้านของสายไฟสามเส้นเข้ากับแผ่นประสาน 3 แผ่นตรงกลางที่แถวสุดท้ายของบอร์ดลูกแฟลชแบบอนุกรม

5. ติดตั้งบอร์ดลูกแฟลชซีเรียลเข้ากับชิป Pro Micro NS. บัดกรีสายไฟ 0.5 มม. ที่หมุดแถวแรกที่ด้านบนของบอร์ด Pro Micro เช่น TX และ RAW

NS. บัดกรีสายไฟ 0.5 มม. (เช่น จากขาของทรานซิสเตอร์) ไปจนถึงพินสี่แถวสุดท้ายที่ด้านหลังของชิป Pro Micro เช่น D6, D7, D8, D9 และ SCLK, MISO, MOSI และ A10 ลวดควรยื่นออกมาจากด้านบนและด้านล่างเพื่อให้เราสามารถใช้มันในการบัดกรีบนกระดานลูกและเชื่อมต่อกับกระดานหลักที่ด้านล่าง ค. ประสานบอร์ดลูกแฟลชซีเรียลเข้ากับ Pro micro โดยเชื่อมต่อพินแถวสุดท้ายของ Pro Micro กับพินของบอร์ดลูก

6. ติดตั้งบอร์ดเครื่องชาร์จ LIPO Battery เข้ากับเมนบอร์ด NS. บัดกรีสายไฟ 0.5 มม. (เช่น จากขาของทรานซิสเตอร์) ถึง 4 มุมของบอร์ดชาร์จแบตเตอรี่ LIPO (สำหรับอินพุต -ve, อินพุต +ve, เอาต์พุต -ve, เอาต์พุต +ve) เจาะรูตรงจุดที่หมุดตรงกลางของตัวควบคุม 3V อยู่ บัดกรีลวดเคลือบ 0.3 มม. เข้ากับพินกลาง (เอาต์พุต 3.3V).. ประสาน 4 ขาของบอร์ดชาร์จแบตเตอรี่เข้ากับเมนบอร์ด ถัดจากแจ็คหูฟัง 3.5 มม. เพื่อลดพื้นที่ ควรกดแผงเครื่องชาร์จลงเพื่อให้ตรงกับกระดานหลัก

7. ติดตั้งบอร์ด Pro micro ที่ด้านล่างของเมนบอร์ดและบัดกรีหมุดทั้งหมดจาก 4 แถวสุดท้ายและแถวแรกของ Pro Micro เข้ากับบอร์ดหลัก ไม่จำเป็นต้องบัดกรีหมุดอื่น ๆ พวกเขาจะเชื่อมต่อด้วยสายเคลือบตามต้องการในภายหลัง เพื่อให้ปรับเปลี่ยนได้ง่ายขึ้นและหากจำเป็นต้องเปลี่ยน Pro Micro หากถูกไฟไหม้

8. ทำการบัดกรีที่เหลือ

เชื่อมต่อหมุดของบอร์ด Pro Micro กับส่วนประกอบและส่วนหัวต่างๆ การเชื่อมต่อบัดกรีทั้งหมดจะทำที่ด้านล่างของบอร์ด perf สองด้าน หลังจากบัดกรีเสร็จแล้ว ให้ทดสอบการเชื่อมต่อ

9. ปิดส่วนล่างของกระดานหลักด้วยแผ่นอะคริลิกที่มีขนาดเท่ากัน

ขั้นตอนที่ 3: สร้างปุ่ม Hat

1. สร้างกรอบสำหรับปุ่มหมวก

NS. ใช้บอร์ด perf 8 ซม. x 5 ซม. ตัดมันโดยใช้กรรไกร (หรือเลื่อย) เพื่อทำบอร์ดที่มีขนาดเล็กลง 3.5 ซม. x 5 ซม. ที่ควรจะมีรูเข็ม 18 แถวและ 13 คอลัมน์ ตัดหน้าต่างที่มีหน้าต่าง 2.8 x 2.2 ซม. ที่ใหญ่พอที่จะให้กระจก OLED ยื่นออกมาจากด้านหลัง ฉันใช้ล้อเจียรเพชรในการทำเช่นนี้ เครื่องมือนี้คมและแข็งแรงมากจนนิ้วอาจหลุดได้หากไม่ระวัง คุณสามารถวางรูเข็มที่แถวที่สองของรูเข็มจากด้านบน และแถวที่ 9 ของรูสลักจากด้านล่าง และที่เสาเข็มที่ 2 ของรูเข็มจากแต่ละด้าน

NS. ประสานส่วนหัวชาย 13 พินที่แถวสุดท้ายของบอร์ดประสิทธิภาพ

ค. ปุ่มเค้าโครงบนบอร์ดประสิทธิภาพสำหรับ D-PAD (ปุ่มทิศทาง ขึ้น ลง ซ้าย ขวา) และปุ่ม A และปุ่ม B จากนั้นประสานไว้ที่ด้านหน้าของบอร์ดที่สมบูรณ์แบบ

NS. ที่ด้านล่างของบอร์ด perf ให้เชื่อมต่อด้านหนึ่งของปุ่มทั้งหมดเข้ากับพินกราวด์ (พิน 2) ของส่วนหัวของตัวผู้

อี เชื่อมต่อพินที่สองของแต่ละปุ่มเข้ากับพินที่ตรงกันบนส่วนหัวของตัวผู้สำหรับปุ่มนั้น

NS. หากคุณกำลังสร้างปุ่มหมวกสำหรับโพเทนชิออมิเตอร์แบบโรตารี่หรือไดอัลคอนโทรลเลอร์ คุณจะต้องติดตั้งตัวต้านทานแบบปรับได้ 10K แบบ 3 พินแทนปุ่มทิศทาง D-PAD ตรวจสอบว่าหมายเลขชิ้นส่วนของตัวต้านทานปรับค่าได้เริ่มต้นด้วย "B" (เช่น "B103" ย่อมาจาก Max. 10K) ไม่ใช่ "A" “A” หมายถึงมุมของการหมุนเป็นสัดส่วนกับ LOG ของความต้านทาน B หมายถึง มุมเลี้ยวเป็นสัดส่วนกับแนวต้าน เราต้องการ VR ประเภท B สำหรับตัวควบคุมเกมแบบหมุน เชื่อมต่อด้านหนึ่งของโพเทนชิออมิเตอร์ (พิน GND) กับ GND (พิน 2 ของส่วนหัวของปุ่มหมวก) เชื่อมต่ออีกด้านหนึ่งของโพเทนชิออมิเตอร์กับ VCC (พิน 3 ของส่วนหัวหมวกปุ่ม) เชื่อมต่อพินกลางของโพเทนชิออมิเตอร์กับพินอนาล็อกที่เลือกกับพินดิจิทัลของบอร์ด Pro Micro (หนึ่งใน A0, A1, A2, A3) ขึ้นอยู่กับพินที่เข้ารหัสของเกม หากการควบคุมไม่ราบรื่น (กระโดดไปรอบๆ) คุณสามารถเชื่อมต่อตัวเก็บประจุ 100pf ระหว่างพิน GND และพินตรงกลางของโพเทนชิออมิเตอร์เพื่อแยกสัญญาณรบกวนบนวงจร

ขั้นตอนที่ 4: ตั้งค่า Arduino IDE

หากคุณเพิ่งเริ่มใช้ Arduino ให้ไปที่ https://www.arduino.cc เพื่อดาวน์โหลด Arduino IDE สำหรับระบบปฏิบัติการที่คุณใช้อยู่ เช่น Windows 10 หรือ Mac OSX หรือ Linux

จากนั้นติดตั้ง

ขั้นตอนที่ 5: สร้างสาย USBasp

ทำสาย USBasp
ทำสาย USBasp

ไม่เหมือนกับการโหลดรหัสไบนารี/เกมไปยังบอร์ด Arduino ใดๆ การเขียนโปรแกรม bootloader ไม่สามารถทำได้ผ่านพอร์ต USB

หากต้องการเบิร์น bootloader แบบกำหนดเอง (Cathy3K) ลงในชิป Atmega32U4 คุณต้องมีโปรแกรมเมอร์ USBasp อย่างไรก็ตาม การสร้างของเราทำงานที่ 3.3V เราจำเป็นต้องแก้ไขโปรแกรมเมอร์ USBasp เพิ่มเติมเพื่อให้ทำงานใน 3.3V

อ้างถึงโครงการที่แนะนำต่อไปนี้เพื่อแก้ไขโปรแกรมเมอร์ USBasp ของคุณให้ทำงานทั้ง 3.3V หรือ 5V ผ่านการตั้งค่าจัมเปอร์

www.instructables.com/id/Modify-a-5V-USBasp-Arduino-Bootloader-Programmer-t/

จากนั้นทำตามเลย์เอาต์พินและวิดีโอเพื่อสร้างสายเคเบิลโปรแกรม USBasp to ArduBaby สาย USBasp ดั้งเดิมที่มาพร้อมกับ USBasp มีขั้วต่อสองตัว แต่ละตัวมี 10 ขา เราจะตัดสายเคเบิลนี้ออกเป็นสองส่วน และต่อหัวต่อตัวผู้ 6 พินเข้ากับปลายด้านหนึ่ง ในขณะที่ยังคงปลายอีกด้านที่เชื่อมต่อกับบอร์ด USBasp ที่ 10 พิน

ปลายอีกด้านนี้จะเชื่อมต่อ GND, VCC, MOSI, MISO, SCK, รีเซ็ตพินจาก USBasp ไปยังพินที่เกี่ยวข้องของ ATmega32U4 ผ่านส่วนหัวของตัวผู้ที่เชื่อมต่อกับหมุดหกพินแรกของส่วนหัวของตัวเมียบน Ardubaby

ในการทำโปรแกรมหรือเบิร์น bootloader ไปที่ ATmega32U4 คุณจะต้องถอดปุ่มหมวกและเสียบสาย USBasp 6 พินนี้

ตรวจสอบให้แน่ใจว่าคุณทำเครื่องหมายพินใดพินหนึ่งไว้อย่างชัดเจนบนส่วนหัวของสายเคเบิล เพื่อไม่ให้เกิดการเชื่อมต่อที่ผิดพลาด เมื่อฉันออกแบบเลย์เอาต์พินสำหรับส่วนหัวของหมวกปุ่ม Ardubaby ฉันพยายามจัดเรียงพินในลักษณะที่แม้ว่าคุณจะสลับพิน 1 กับพิน 13 แหล่งจ่ายไฟ -ve จะไม่พบกับแหล่งจ่ายไฟ +ve โดยไม่ได้ตั้งใจเพื่อหลีกเลี่ยงความเสียหาย อย่างไรก็ตาม คุณไม่มีทางรู้ อาจมีสิ่งอื่นที่อาจยังคงสร้างความเสียหายให้กับชุดของคุณได้หากคุณเชื่อมต่อในทิศทางที่ไม่ถูกต้อง

ฉันจะเผารูเล็ก ๆ เพื่อทำเครื่องหมายที่ส่วนหัวโดยใช้ปลายหัวแร้ง

ขั้นตอนที่ 6: เบิร์น Bootloader

MR. Blinky สร้างแพ็คเกจ Arduboy-homemade-package สำหรับ Arduboy แบบโฮมเมด

แพ็คเกจของเขาประกอบด้วยไดรเวอร์บอร์ดและไลบรารีของ Arduboy ที่ทำงานร่วมกับ Arduboy เวอร์ชันต่างๆ ได้เช่นเดียวกับเวอร์ชันที่เขาทำเอง

1. เรียกดูโฟลเดอร์ GitHub ของ MR. Blinky สำหรับ Arduboy แบบโฮมเมด https://github.com/MrBlinky/Arduboy-homemade-package 2. ทำตามคำแนะนำบน GitHub เพื่อกำหนดค่า Arduino IDE ของคุณด้วยแพ็คเกจโฮมเมด 3. ขั้นแรกให้คัดลอก URL ของ “ผู้จัดการบอร์ดเพิ่มเติม” สำหรับแพ็คเกจทำเองของ Arduboy

4. เริ่ม Arduino IDE คลิกการตั้งค่าจากเมนูด้านบนของ Arduino วางข้อความนี้ลงใน "URL ของผู้จัดการบอร์ดเพิ่มเติม" หมายเหตุ: หากคุณมีข้อความอื่นในช่องนี้อยู่แล้ว ให้แทรกข้อความเพิ่มเติมนี้ที่จุดเริ่มต้น จากนั้นเพิ่ม ", " และเก็บข้อความอื่นไว้เหมือนเดิม 5. ออกจาก Arduino IDE แล้วเริ่ม IDE อีกครั้งเพื่อให้มีผลกับการเปลี่ยนแปลงด้านบน 6. คลิกเครื่องมือ -> บอร์ด: -> ผู้จัดการบอร์ด ป้อนโฮมเมดเพื่อค้นหา เลือกติดตั้งแพ็คเกจโฮมเมด Arduboy โดย Mr. Blinky จากนั้นคลิกอัปเดตเพื่อรับเวอร์ชันล่าสุด แพ็คเกจจะถูกเพิ่มไปยัง Arduino 7. ตอนนี้เลือก Tools-> Board: “Home-made Arduboy. และเลือกพารามิเตอร์ต่อไปนี้สำหรับ Homemade Arduboy” ตาม: “SparkFun Pro Micro 5V - สายไฟมาตรฐาน” Core: “Arduboy Optimized core” Bootloader: “Cathy3K” โปรแกรมเมอร์: USBasp 8. ปิด Ardubaby และถอดปุ่มหมวก 9. ตั้งจัมเปอร์บน USBasp เป็น 3.3V ตรวจสอบให้แน่ใจว่าคุณใช้ USBasp ที่ดัดแปลงซึ่งทำงานได้ทั้งหมดใน 3.3V 10. เชื่อมต่อ USBasp เข้ากับพอร์ต USB ของคอมพิวเตอร์ของคุณ เชื่อมต่อสาย USBasp พิเศษกับสาย ArduBaby เข้ากับ USBasp และปลายอีกด้านหนึ่งเข้ากับส่วนหัวของปุ่มหมวกของ Ardubaby ให้เรียงพิน 1 เข้ากับพิน 1 มีเพียง 6 พินแรกของ Ardubaby เท่านั้นที่ใช้สำหรับการเผาไหม้ bootloader

11. Ardubaby ของคุณควรเปิดเครื่องโดยใช้พลังงาน 3.3V ที่จัดหาโดย USBasp 12. กดปุ่มรีเซ็ตของ ArduBaby หนึ่งครั้ง 13. คลิกเครื่องมือ -> บอร์ด -> ปุ่มเบิร์น Bootloader บน Arduino IDE 14. ตรวจสอบข้อความเพื่อดูว่าการเบิร์น bootloader สำเร็จหรือไม่ 15. ถ้าไม่ ให้ตรวจสอบสายเคเบิลและตรวจดูให้แน่ใจว่าคุณต่อพินในทิศทางที่ถูกต้อง และจัดเรียงพิน 1 กับพิน 1 บางครั้ง Ardubaby จะเริ่มเล่นเกมก่อนหน้าหากเมนูการบู๊ตหมดเวลา ดังนั้น คุณต้องคลิกปุ่มเบิร์น bootloader อย่างรวดเร็วหลังจากที่คุณกดปุ่มรีเซ็ตเพื่อให้ Ardubaby อยู่ในโหมดรอแฟลช 16. ถ้าทุกอย่างดี ArduBaby จะรีบูตและคุณจะเห็นเมนูบูตเครื่องหรือเกมก่อนหน้าที่คุณโหลดลงใน ArduBaby

ขั้นตอนที่ 7: รวบรวมและอัปโหลดเกมเดี่ยวไปยัง Arduboy

เกมสำหรับ Arduboy สามารถดาวน์โหลดได้จากแหล่งต่อไปนี้:

ฟอรัมชุมชน Arduboy สำหรับเกม:

ค้นหา GitHub ใน "เกม Arduboy" https://github.com/topics/arduboy-game หรือเพียงแค่ค้นหา "เกม GitHub arduboy" บน Google

คอลเลกชันเกมที่ผู้อื่นแบ่งปัน เช่น. คอลเลกชั่น Arduboy ของเออร์วิน

arduboy.ried.cl/

คุณสามารถดาวน์โหลดซอร์สโค้ดของเกมที่คุณโหลดไปยัง Arduino และอัปโหลดไปยัง Arduboy ดูวิดีโอเกี่ยวกับวิธีการทำ

หรือเพียงแค่ไฟล์ hex (ไฟล์ไบนารีที่คอมไพล์แล้ว แต่แสดงเป็นเลขฐานสิบหกพิมพ์เป็นไฟล์ข้อความแทนที่จะเป็นไฟล์ไบนารี)

สำหรับซอร์สโค้ด เพียงเปิดซอร์สโค้ดภายใน Arduino IDE

ซอร์สโค้ดเช่น picovaders.ino จะต้องเก็บไว้ในโฟลเดอร์ชื่อเดียวกันเช่น picovaders

ไลบรารี Arduboy2 ที่จำเป็นควรได้รับการติดตั้งแล้วในขั้นตอนก่อนหน้าซึ่งเราโหลดตัวจัดการบอร์ดสำหรับแพ็คเกจ Arduboy แบบโฮมเมด

เพียงเชื่อมต่อ Arduboy เข้ากับพอร์ต USB ของคอมพิวเตอร์ของคุณ

เปิดเครื่อง จากนั้นคลิกปุ่มอัปโหลดบน Arduino IDE เพื่อคอมไพล์และอัปโหลดโค้ดไปยัง Arduboy เพื่อเล่นเกม

ขั้นตอนที่ 8: อัปโหลดไฟล์ Hex เดียว

ไฟล์ Hex เป็นไฟล์ข้อความที่มีรหัสไบนารี่ซึ่งเป็นผลจากการรวบรวมโปรแกรม Arduino ของคุณ (สเก็ตช์) แต่แสดงในรูปแบบไฟล์ข้อความโดยใช้เลขฐานสิบหกสองหลัก 0-9, A-F

คุณสามารถรับไฟล์ hex เหล่านี้ได้หลายวิธี

1. เราสามารถดาวน์โหลดไฟล์ hex จากแหล่งต่าง ๆ ที่เราได้อธิบายไว้ข้างต้น:

community.arduboy.com/c/games คอลเลกชันเกม Arduboy ของเออร์วิน

ค้นหา "เกม Arduino" บน GitHub.com หรือบน google.com

บันทึกไฟล์ hex เหล่านี้ลงในไฟล์ที่มีนามสกุล.hex

2. หรือคุณสามารถสร้างไฟล์ hex ของคุณเองได้

ใน Arduino IDE เลือก Sketch > ส่งออกไบนารีที่คอมไพล์แล้ว ภาพสเก็ตช์ของคุณจะถูกรวบรวม จากนั้นสำเนาของไฟล์.hex ที่คอมไพล์แล้วจะถูกส่งไปยังไดเร็กทอรีของภาพสเก็ตช์ของคุณ เรียกดูโฟลเดอร์ Sketch หรือใน IDE เลือก Sketch > Show Sketch Folder เพื่อดูไฟล์ hexหากคุณติดตั้งแพ็คเกจโฮมเมดของ MR. Blinky ไฟล์.hex สองเวอร์ชันจะถูกสร้างขึ้น ตัวอย่างเช่น หากคุณคอมไพล์ picovaders.ino sketh ไฟล์.hex สองไฟล์ต่อไปนี้จะถูกสร้างขึ้น

picovaders.ino-arduboy-promicro-ssd1306.hex picovaders.ino with_bootloader-arduboy-promicro-ssd1306.hex

เราจะใช้ไฟล์แรก: picovaders.ino-arduboy-promicro-ssd1306.hex

3. ในการอัปโหลดไฟล์ hex ไปยัง Arduboy คุณต้องใช้ตัวอัปโหลด มีมากมายบนอินเทอร์เน็ต ฉันชอบใช้เครื่องมืออัปโหลดของ MR. Blinky เพราะมันใช้งานง่าย

เรียกดู https://github.com/MrBlinky/Arduboy-Python-Utilities และทำตามคำแนะนำเพื่อติดตั้งยูทิลิตี้ Arduboy Python ของ MR. Blinky หากคุณไม่ได้ติดตั้ง python ไว้ คุณต้องทำตามคำแนะนำเพื่อติดตั้ง python และโมดูล python ที่จำเป็นก่อน

4. เชื่อมต่อ Arduboy เข้ากับพอร์ต USB ของคอมพิวเตอร์ของคุณ เปิด Arduboy

5. เริ่มโปรแกรมเชลล์ในระบบปฏิบัติการของคุณเช่น แอพเทอร์มินัลใน Mac OSX หรือพรอมต์คำสั่งใน windows เพื่อพิมพ์คำสั่งต่อไปนี้เพื่ออัปโหลดไฟล์ hex ไปยัง Arduboy ยกตัวอย่าง picovaders.ino สเก็ตช์ก่อนหน้าของเรา

หลาม uploader.py picovaders.ino-arduboy-promicro-ssd1306.hex

6. เมื่ออัปโหลดเกมแล้ว Arduboy จะรีเซ็ตและเริ่มเกม

ขั้นตอนที่ 9: เขียนเกมลงใน Serial Flash

1. ในการเขียนไฟล์เกมที่รวมไว้ในแฟลชอนุกรม คุณต้องใช้ Arduboy Python Utilities ของ MR. Blinky อีกครั้ง คุณควรติดตั้งสิ่งนี้แล้วหากคุณทำตามขั้นตอนก่อนหน้า

มิฉะนั้น ให้เรียกดู https://github.com/MrBlinky/Arduboy-Python-Utilities และทำตามคำแนะนำเพื่อติดตั้งโปรแกรมอรรถประโยชน์ Arduboy Python ของ MR. Blinky หากคุณไม่ได้ติดตั้ง python ไว้ คุณต้องทำตามคำแนะนำเพื่อติดตั้ง python และโมดูล python ที่จำเป็นก่อน

2. สร้างไฟล์ดัชนีสำหรับไฟล์ภาพเกมรวมเพื่อเก็บเกมได้มากถึง 500 เกม

เราจะใช้สคริปต์ Use the flashcart-builder.py เพื่อสร้างไฟล์ภาพเกมรวมสำหรับเกมทั้งหมดที่คุณต้องการจัดเก็บไว้ในแฟลชอนุกรมของ Arduboy แฟลชซีเรียล 16MB สามารถเก็บเกมได้มากถึง 500 เกม สคริปต์นี้สร้างภาพแฟลชไบนารีจากไฟล์ดัชนี (.csv) และ 2 ไฟล์ต่อไปนี้สำหรับแต่ละเกม: ไฟล์.hex ที่เป็นไฟล์ข้อความที่มีรหัสฐานสิบหกของภาพไบนารีของเกม Arduboy ที่คอมไพล์แล้ว อ้างถึงไฟล์ See the example-flashcart\flashcart-index.csv สำหรับตัวอย่างไวยากรณ์ ไฟล์นี้จะรวมอยู่ในแพ็คเกจหากคุณคลิก Clone หรือ Download NS. ไฟล์ภาพกราฟิก-p.webp

วิดีโอ youtube ยังอธิบายวิธีวางสิ่งของต่างๆ ไว้ในตำแหน่งที่ถูกต้องของไฟล์ดัชนี.csv นี้ สิ่งหนึ่งที่ควรทราบคือ ไฟล์ตัวอย่าง.csv จาก GitHub ของ MR. Blinky ถูกใช้ใน Windows PC ส่วนแบ็กสแลช "\" ถูกใช้ในชื่อพาธ หากคุณใช้ระบบ liunx หรือ MAC OSX คุณต้องเปลี่ยนเป็น "/"

หากต้องการเริ่มต้นอย่างรวดเร็ว คุณสามารถดาวน์โหลดแพ็คเกจ 63 เกมของฉันได้จาก https://github.com/cheungbx/ArduBaby 63games.zip

แพ็คเกจนี้ประกอบด้วยไฟล์ hex และไฟล์-p.webp

คุณสามารถเพิ่มเกมลงใน games.csv และสร้างไฟล์ภาพไบนารีเกมรวมของคุณเองเพื่อเขียนลงในแฟลชซีเรียล คุณสามารถใส่เกมได้สูงสุด 500 เกมบนแฟลชซีเรียล 16M

ฉันจะอธิบายวิธีสร้างไฟล์.csv โดยใช้ games.csv ซึ่งคุณสามารถดาวน์โหลดจาก GitHub ของฉันได้

แม้ว่าไฟล์.csv จะสามารถเปิดได้โดยใช้ excel ห้ามใช้ excel ในการเปิดไฟล์ มันจะทำให้ไฟล์เสียหาย โปรดใช้โปรแกรมแก้ไขข้อความธรรมดาเท่านั้น คุณสามารถใช้แผ่นจดบันทึกใน windows ฉันใช้ textEdit ใน MAC แล้วคลิก "รูปแบบ" -> "สร้างข้อความธรรมดา"

บรรทัดแรกของไฟล์.csv คือส่วนหัวที่คุณสามารถละเว้นได้ รายการ;คำอธิบาย;หน้าจอชื่อเรื่อง;ไฟล์ฐานสิบหก

บรรทัดที่สองชี้ไปที่ไฟล์ภาพกราฟิก (ต้องมีขนาด 128x64 พิกเซลในรูปแบบไฟล์ png) สำหรับหน้าจอ manu ตัวโหลดการบูต 0;Bootloader;arduboy_loader.png;;;

เกมได้รับการกำหนดค่าเริ่มต้นจากบรรทัดที่สาม เกมถูกจัดเป็นกลุ่มในเมนู bootloader ที่เรียกว่าหมวดหมู่ บรรทัดนี้เป็นชื่อกลุ่มของรายชื่อเกมสำหรับกลุ่มนั้นๆ เช่น เกมแอคชั่น. นอกจากนี้ยังชี้ไปที่ไฟล์ภาพกราฟิกสำหรับกลุ่มเกม "1" ที่จุดเริ่มต้นหมายถึงหมายเลขกลุ่ม 1 เกมทั้งหมดที่ตามหลังกลุ่มนี้จะขึ้นต้นด้วยหมายเลขนี้ 1;เกมแอคชั่น;หมวดหมู่หน้าจอ\Action.png;;;

จากนั้นคุณเพิ่มหนึ่งบรรทัดสำหรับแต่ละเกมภายในกลุ่มนั้น เริ่มต้นด้วยกลุ่มหมายเลข 1 ชื่อเกม และเส้นทางของไฟล์กราฟิกสำหรับสแน็ปช็อตของหน้าจอ และเส้นทางของไฟล์ hex ทั้งหมดคั่นด้วย ";" เพิ่มอีกหนึ่ง ";" เพื่อข้ามพารามิเตอร์สำหรับไฟล์บันทึก 1;1943;อาร์เคด/Nineteen43.png;อาร์เคด/Nineteen43.hex;; 1;2048;อาร์เคด/2048.png;อาร์เคด/2048.hex;;

หลังจากคุณเล่นเกมกลุ่มแรกเสร็จแล้ว คุณสามารถเพิ่มเกมกลุ่มที่สองได้เป็นต้น เช่น.

9;สาธิต & ทดสอบ;สาธิต/demotest.png;;; 9;เนยร้อน;สาธิต/HotButter_AB.png;สาธิต/HotButter_AB.hex;; 9;การทดสอบ Flashcart;สาธิต/flashcart-test/flashcart-test-title.png;สาธิต/flashcart-test/flashcart-test.hex;สาธิต/flashcart-test/badapple-frames.bin;

บรรทัดสุดท้ายมีไฟล์บันทึกในพารามิเตอร์ซึ่งเป็นภาพยนตร์การ์ตูน

3. ในการสร้างไฟล์ภาพเกมรวม ให้พิมพ์คำสั่ง โดยที่ games.csv เป็นไฟล์ดัชนีเกมของคุณ

หลาม flashcart-builder.py games.csv

จะสร้างไฟล์ชื่อ games-image.bin

4. เขียนไฟล์ภาพเกมรวมไปที่ Arduboy

เราใช้สคริปต์ flashcart-writer.py ของ MR. Blinky เพื่อเขียนไฟล์ภาพเกมรวมไปยังหน่วยความจำแฟลชแบบอนุกรมของ Arduboy

หากคุณกำลังใช้ไฟล์ games-image.bin ตัวอย่างของฉัน คุณสามารถพิมพ์คำสั่งนี้ได้

หลาม flashcart-writer.py เกม-image.bin

หากคุณใช้หน้าจอ OLED แบบ SSD1309 แทน SSD1306 OLED ในรุ่นมาตรฐาน คุณสามารถแก้ไขไดรเวอร์หน้าจอได้ทันที หากต้องการใช้โปรแกรมแก้ไข SSD1309 กับภาพที่อัปโหลดโดยอัตโนมัติ ให้คัดลอก flashcart-writer.py และเปลี่ยนชื่อเป็น flashcart-writer-1309.py แล้วพิมพ์

หลาม flashcart-writer-1309.py เกม-image.bin

ขั้นตอนที่ 10: เล่นเกมจาก Serial Flash

ในการเล่นเกมจากแฟลชซีเรียล ให้เปิด Arduboy

หากคุณโหลดเกมไว้แล้ว เกมจะเริ่มโดยอัตโนมัติ กดปุ่มรีเซ็ตที่ด้านบนของ Ardubaby หนึ่งครั้งเพื่อไปที่เมนู bootloader

เมนู bootloader จะปรากฏขึ้น ไฟ LED RGB จะสว่างขึ้นตามลำดับ

หากคุณเห็นไอคอนที่ดูเหมือนพอร์ต USB ปรากฏขึ้นแทน แสดงว่าชิปหน่วยความจำแฟลชซีเรียลของคุณไม่ทำงาน กรุณาตรวจสอบสายไฟ

หากคุณไม่กดปุ่มใดๆ ภายใน 12 วินาที เกมที่จัดเก็บไว้ในหน่วยความจำแฟลชภายในของ ATMega32U4 จะทำงาน

หากต้องการกลับจากเกมไปที่เมนู bootloader เพียงกดปุ่มรีเซ็ตหนึ่งครั้ง

คุณสามารถกดปุ่มซ้ายหรือขวาเพื่อเลื่อนดูหมวดหมู่ต่างๆ (กลุ่ม) ของเกมได้ กดปุ่มลงหรือขึ้นเพื่อเลื่อนดูเกมภายในหมวดหมู่ (กลุ่ม) กดปุ่ม "B" เพื่อคัดลอกเกมจากหน่วยความจำแฟลชซีเรียลไปยังหน่วยความจำแฟลชภายในของ ATMega32U4 เกมจะเริ่มภายในไม่กี่วินาที

ตอนนี้คุณมีเกมคอนโซลเล็กๆ ที่คุณสามารถเล่นได้บนท้องถนน

ฉันขอท้าให้คุณรวบรวมและโหลดแฟลชอนุกรม 16M ของคุณพร้อมเกม 500 เกม ฉันยังไม่เห็นใครที่ทำอย่างนั้นเพื่อเติมแฟลชซีเรียล หากคุณสามารถทำได้ ให้แชร์ไฟล์เกมที่รวมไว้กับเรา

แนะนำ: