Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง: 8 ขั้นตอน (พร้อมรูปภาพ)
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง: 8 ขั้นตอน (พร้อมรูปภาพ)
Anonim
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง
Retro-CM3: คอนโซลเกมที่มีการจัดการ RetroPie อันทรงพลัง

คำแนะนำนี้ได้รับแรงบันดาลใจจาก PiGRRL Zero ของ adafruit การสร้าง Gameboy Zero ดั้งเดิมของ Wermy และคอนโซลเกม Handled ของ GreatScottLab เกมคอนโซลที่ใช้ RetroPie นั้นใช้ raspberry pi zero(W) เป็นแกนหลัก แต่หลังจากที่ฉันสร้าง Pi Zero Consoles ขึ้นมาหลายตัวแล้ว ก็พบปัญหาหลักสองประการ

1) Raspberry Pi Zero (W) มีเพียงคอร์เทกซ์คอร์เท็กซ์-A7 และ แรม 512MB เท่านั้น ซึ่งถือว่าใช้ได้สำหรับ NES/SNES/GB อย่างไรก็ตาม เมื่อฉันพยายามเรียกใช้ PS/N64 Emus ประสบการณ์นี้ค่อนข้างยอมรับไม่ได้ แม้แต่เกม GBA บางเกมก็ไม่สามารถทำงานได้อย่างราบรื่น (เสียงแล็กบางเกม รวมถึงเกม NEOGEO บางเกม เช่น Metal Slug เมื่อจัดการกับฉากที่ซับซ้อน) 2)คอนโซลเกมส่วนใหญ่สร้างใช้ SPI หรือ TV-out เป็นอินเทอร์เฟซการแสดงผล การแสดงผล SPI จะต้องใช้ CPU เพื่อช่วยในไดรเวอร์บัฟเฟอร์เฟรมซึ่งจะทำให้ประสบการณ์เกมแย่ลงและ fps ยังถูกจำกัดด้วยความเร็วของนาฬิกา SPI และคุณภาพการแสดงผลของ TV-out ก็ไม่ดีพอ

ในคำแนะนำนี้ เราจะใช้ RaspberryPi Compute Module 3 และอินเทอร์เฟซ DPI LCD เพื่อสร้างคอนโซลเกม RetroPie ขั้นสูงสุด มันควรจะสามารถรันอีมูเลเตอร์ทั้งหมดได้อย่างราบรื่นและให้ความละเอียดสูงและอัตราเฟรมที่สูง

ขนาดสุดท้ายของคอนโซลเกมคือ 152x64x18 มม. พร้อมแบตเตอรี่สูงสุด 2000mAh บิลด์ทั้งหมดมีราคาประมาณ 65 ดอลลาร์ ซึ่งรวมถึง PCB แบบกำหนดเอง ส่วนประกอบทั้งหมด การ์ด TF ขนาด 16GB และโมดูลประมวลผล RaspberryPi 3 Lite เนื่องจากฉันมีเครื่องพิมพ์ 3D อยู่แล้ว ตัวเคสจึงมีราคาเพียง 64g PLA ฟิลาเมนต์

เอาล่ะ.

หมายเหตุ: เนื่องจากภาษาอังกฤษไม่ใช่ภาษาแรกของฉัน หากคุณพบข้อผิดพลาดหรืออะไรไม่ชัดเจน โปรดแจ้งให้เราทราบ

นี่เป็นโพสต์แรกของฉันใน Instrucable.com และฉันต้องการคำแนะนำจากพวกคุณจริงๆ

ขั้นตอนที่ 1: ส่วนผสม

วัตถุดิบ
วัตถุดิบ
วัตถุดิบ
วัตถุดิบ
วัตถุดิบ
วัตถุดิบ
วัตถุดิบ
วัตถุดิบ

นี่คือส่วนผสมที่คุณต้องใช้เพื่อสร้างคอนโซลเกม ชิ้นส่วนบางส่วนอาจไม่มีให้บริการในภูมิภาคของคุณ ลองใช้ชิ้นส่วนอื่นแทน

1) RaspberryPi Compute Module 3 Lite ซื้อจากร้านค้าที่คุณได้รับ RaspberryPi 3B หรือลองใช้บนอีเบย์

2) จอ LCD ขนาด 3.2 นิ้วพร้อมอินเทอร์เฟซ RGB/DPI ตรวจสอบให้แน่ใจว่าคุณมีโมดูล LCD อินเทอร์เฟซ RGB/DPI เนื่องจากต้องสร้างคอนโซลนี้ ฉันได้จอ LCD จากร้าน e-shop ในพื้นที่และโมดูลเดียวกันนี้สามารถพบได้ในอาลีบาบา หากคุณซื้อโมดูล LCD สำรอง โปรดสอบถามผู้ให้บริการเพื่อส่งพารามิเตอร์โดยละเอียดและรหัสเริ่มต้นให้คุณ นอกจากนี้ยังเป็นทางเลือกที่ชาญฉลาดในการซื้อตัวเชื่อมต่อที่เกี่ยวข้องจากร้านเดียวกัน เนื่องจากมีตัวเชื่อมต่อประเภทต่างๆ มากมาย

3) เทือกเขาแอลป์ SKPDACD010. สวิตช์แทคระยะการเดินทาง 1.75 มม. ค้นหาจากร้านชิ้นส่วนอิเล็กทรอนิกส์ในพื้นที่ของคุณ

4) คีย์อื่น ๆ ใช้ปุ่มชั้นเชิงอื่นๆ ที่คุณจะได้รับจากปุ่ม START/SELECT/VOL+/VOL-

5) วิทยากร ลำโพงขนาด 8 โอห์ม 0.5-1.5 วัตต์ใดๆ

6) แบตเตอรี่ ฉันเลือก 34*52*5.0 มม. 1S 1000mAh Li-ion แบตเตอรี่ x2

7) ไอซีบางตัว STM32F103C8T6, IP5306, TDA2822, NC7WZ16, SY8113, PT4103 และอื่นๆ

8) ตัวเชื่อมต่อบางตัว USB-Micro ตัวเมีย, PJ-237 (แจ็คโทรศัพท์), แจ็ค TF-Card, DDR2 SODIMM และอื่น ๆ

9) ส่วนประกอบแบบพาสซีฟบางส่วน ตัวต้านทาน ตัวเก็บประจุ และตัวเหนี่ยวนำ

10) PCB แบบกำหนดเอง ไฟล์แผนผังและ PCB มีให้ในตอนท้าย อย่าลืมทำการเปลี่ยนแปลงหากคุณใช้ส่วนอื่น

11) เครื่องพิมพ์ 3 มิติ ตรวจสอบให้แน่ใจว่าสามารถพิมพ์ชิ้นส่วนได้ถึงขนาด 152*66*10 มม.

12) เส้นใยปลาเพียงพอ

ขั้นตอนที่ 2: โมดูลคำนวณ 3

โมดูลการคำนวณ 3
โมดูลการคำนวณ 3
โมดูลการคำนวณ 3
โมดูลการคำนวณ 3

Raspberry Pi Compute Module 3 เป็นบอร์ดหลักที่ทรงพลังมากสำหรับการสร้างต้นแบบแกดเจ็ตที่น่าสนใจ รายละเอียดเบื้องต้นสามารถพบได้ที่นี่ และข้อมูลที่เป็นประโยชน์บางอย่างสามารถพบได้ที่นี่

โมดูลนี้ใช้ขั้วต่อชนิด DDR2 SODIMM ซึ่งใช้งานยากกว่าเล็กน้อย นอกจากนี้หมุด GPIO ทั้งหมดของแกน BCM2837 BANK1 และ BANK0 นั้นถูกนำออก

ในการเริ่มใช้โมดูลคำนวณ เราจำเป็นต้องจัดหาแรงดันไฟฟ้าที่แตกต่างกันหลายแบบ: 1.8V, 3.3V, 2.5V และ 5.0V ในหมู่พวกเขา 1.8V และ 3.3V ถูกใช้เพื่อจ่ายไฟให้กับอุปกรณ์ต่อพ่วงบางตัวที่ต้องการประมาณ 350mA ต่อตัว สายไฟ 2.5V ขับเคลื่อน DAC TV-out และสามารถเชื่อมโยงกับ 3.3V เนื่องจากเราไม่ต้องการคุณสมบัติ TV-out 5.0V ควรเชื่อมต่อกับพิน VBAT และให้พลังงานแก่ Core อินพุต VBAT ยอมรับช่วงแรงดันไฟฟ้าตั้งแต่ 2.5V ถึง 5.0V และตรวจสอบให้แน่ใจว่าแหล่งจ่ายไฟสามารถส่งออกได้สูงสุด 3.5W พิน VCCIO (GPIO_XX-XX_VREF) สามารถเชื่อมต่อกับ 3.3V เนื่องจากเราใช้ระดับ CMOS 3.3V พิน SDX_VREF ควรเชื่อมต่อกับ 3.3V ด้วย

พิน HDMI, DSI, CAM ทั้งหมดไม่ได้ใช้ที่นี่ ปล่อยให้ลอย อย่าลืมผูกพิน EMMC_DISABLE_N กับ 3.3V เนื่องจากเราจะใช้การ์ด TF เป็นฮาร์ดไดรฟ์แทนคุณสมบัติการบูต USB

จากนั้นเชื่อมต่อพิน SDX_XXX กับพินที่เกี่ยวข้องบนช่องเสียบการ์ด TF และไม่จำเป็นต้องใช้ตัวต้านทานแบบดึงขึ้นหรือแบบดึงลง ในขั้นตอนนี้ เราพร้อมที่จะบูต Raspberry Pi Compute Module 3 แล้ว เปิดแหล่งจ่ายไฟตามลำดับที่ลดลง: 5V, 3.3V และ 1.8V จากนั้นระบบควรจะสามารถบู๊ตได้ แต่เนื่องจากไม่มีเอาต์พุต เครื่องเราแค่ไม่รู้ว่ามันใช้ได้ดีหรือเปล่า ดังนั้นเราต้องเพิ่มจอแสดงผลเพื่อตรวจสอบในขั้นตอนถัดไป

แต่ก่อนที่เราจะดำเนินการต่อ เราต้องบอก Pi ก่อนว่า GPIO แต่ละอันมีหน้าที่อะไร ที่นี่ฉันให้ไฟล์บางไฟล์ใส่ "dt-blob.bin", "bcm2710-rpi-cm3.dtb" และ "config.txt" ในโฟลเดอร์บูตของการ์ด TF ที่เพิ่งแฟลชใหม่ วาง "dcdpi.dtbo" ในโฟลเดอร์ /boot/overlay dt-blob.bin กำหนดฟังก์ชันเริ่มต้นของแต่ละ GPIO ฉันเปลี่ยน GPIO14/15 เป็น GPIO ปกติ และย้ายฟังก์ชัน UART0 เป็น GPIO32/33 เนื่องจากเราต้องการ GPIO14/15 เพื่อเชื่อมต่อกับโมดูล LCD ฉันยังบอกให้ Pi ใช้ GPIO40/41 เป็นฟังก์ชัน pwm และทำให้เป็นเอาต์พุตเสียงด้านขวาและด้านซ้าย dcdpi.dtbo เป็นไฟล์โอเวอร์เลย์แบบอุปกรณ์และบอก Pi ว่าเราจะใช้ GPIO0-25 เป็นฟังก์ชัน DPI สุดท้าย เราเขียน "dtoverly=dcdpi" เพื่อรับรู้ Pi เพื่อโหลดไฟล์โอเวอร์เลย์ที่เราให้ไว้

ในขณะนี้ Raspberry Pi เข้าใจอย่างถ่องแท้ว่าควรใช้ฟังก์ชันใดสำหรับแต่ละ GPIO และเราพร้อมที่จะดำเนินการต่อไป

ขั้นตอนที่ 3: เชื่อมต่อโมดูล LCD

การเชื่อมต่อโมดูล LCD
การเชื่อมต่อโมดูล LCD
การเชื่อมต่อโมดูล LCD
การเชื่อมต่อโมดูล LCD
การเชื่อมต่อโมดูล LCD
การเชื่อมต่อโมดูล LCD

เนื่องจากอาจใช้โมดูล LCD อินเทอร์เฟซ DPI/RGB ที่แตกต่างกันในคอนโซลนี้ เราจึงนำโมดูลที่ใช้ในงานสร้างของฉันมาเป็นตัวอย่าง และหากคุณเลือกแบบอื่น ให้ตรวจสอบคำจำกัดความพินของโมดูลของคุณ และทำการเชื่อมต่อตามชื่อพินตามที่แสดงในตัวอย่าง

โมดูล LCD มีอินเทอร์เฟซสองแบบ: SPI และ DPI SPI ใช้เพื่อกำหนดการตั้งค่าเริ่มต้นของ IC ไดรเวอร์ LCD และเราสามารถเชื่อมต่อกับ GPIO ที่ไม่ได้ใช้ เชื่อมต่อเฉพาะพินรีเซ็ต CS, MOSI(SDA/SDI) และ SCLK(SCL) เท่านั้น พิน MISO(SDO) จะไม่ถูกใช้งาน ในการเริ่มต้นไดรเวอร์ LCD ในที่นี้ เราใช้ไลบรารี BCM2835 C เพื่อขับเคลื่อน GPIO และส่งออกลำดับการเริ่มต้นที่กำหนดโดยซัพพลายเออร์โมดูล ไฟล์ต้นฉบับสามารถพบได้ในภายหลังในคำแนะนำนี้

ติดตั้ง BCM2835 C Library บน Raspberry Pi 3 อื่นตามคำแนะนำที่นี่ จากนั้นใช้คำสั่ง "gcc -o lcd_init lcd_init.c -lbcm2835" เพื่อคอมไพล์ไฟล์ต้นฉบับ จากนั้นเพิ่มบรรทัดใหม่ในไฟล์ /etc/rc.local ก่อน "exit 0": "/home/pi/lcd_init" (สมมติว่าคุณได้วางแอปพลิเคชันที่คอมไพล์ไว้ใต้โฟลเดอร์ /home/pi) ควรเน้นว่าไฟล์ต้นฉบับใช้สำหรับบางโมดูลที่ฉันใช้เท่านั้น และสำหรับโมดูล LCD อื่น เพียงแค่ขอให้ซัพพลายเออร์สำหรับลำดับการเริ่มต้นและแก้ไขไฟล์ต้นฉบับตามนั้น กระบวนการนี้ค่อนข้างยุ่งยากเพราะ ณ จุดนี้ไม่มีอะไรสามารถมองเห็นได้จากหน้าจอ นั่นเป็นเหตุผลที่ฉันแนะนำอย่างยิ่งให้คุณทำเช่นนี้บนบอร์ด RPI-CMIO เนื่องจากจะนำ GPIO ออกทั้งหมด เพื่อให้คุณสามารถดีบักด้วย uart หรือ wlan

ส่วนต่อไปนี้เป็นเรื่องง่าย เพียงเชื่อมต่อหมุดด้านซ้ายของโมดูล LCD ตามที่นี่ ขึ้นอยู่กับชนิดของโมดูล LCD ที่คุณได้รับ เลือกโหมด RGB อย่างชาญฉลาด สำหรับฉัน ที่นี่ฉันเลือก DPI_OUTPUT_FORMAT_18BIT_666_CFG2 (โหมด 6) เปลี่ยนบรรทัด "dpi_output_format=0x078206" ตามที่คุณต้องการ และหากโมดูล LCD ของคุณใช้ความละเอียดที่ต่างออกไป ให้ปรับ "hdmi_timings=480 0 41 60 20 800 0 5 10 10 0 0 0 60 0 32000000" ให้อ้างอิงกับไฟล์ที่นี่

หากการตั้งค่าทั้งหมดถูกต้อง ในการบู๊ต Pi ครั้งต่อไป คุณจะเห็นหน้าจอหลังจาก 30-40 วินาทีเป็นสีดำ (จากพลังงานไปยังระบบจะโหลดสคริปต์เริ่มต้น SPI ของคุณ)

ขั้นตอนที่ 4: ปุ่มกดและเสียง

ปุ่มกดและเสียง
ปุ่มกดและเสียง
ปุ่มกดและเสียง
ปุ่มกดและเสียง

เราได้ทำกับ Core และ Output ในสองขั้นตอนสุดท้ายแล้ว ตอนนี้เรามาดูส่วนอินพุตกัน

เกมคอนโซลต้องการปุ่มและปุ่ม ที่นี่เราต้องการสวิตช์ 10 ALPS SKPDACD010 เป็นปุ่มขึ้น/ลง/ขวา/ซ้าย, LR และ A/B/X/Y และปุ่มยึดพื้นผิวขนาด 6x6 ปกติใช้สำหรับปุ่มอื่นๆ เช่น เริ่ม/เลือก และ เพิ่ม/ลดระดับเสียง

มีสองวิธีในการเชื่อมต่อปุ่มต่างๆ กับ Raspberry Pi วิธีหนึ่งคือการเชื่อมต่อปุ่มโดยตรงกับ GPIO บน Pi และอีกวิธีหนึ่งคือการเชื่อมต่อปุ่มกับ MCU และเชื่อมต่อกับ Pi ผ่านโปรโตคอล USB HID ที่นี่ฉันเลือกอันที่สองเพราะเราต้องการ MCU เพื่อจัดการกับพลังตามลำดับและจะปลอดภัยกว่าที่จะเก็บ Pi ให้ห่างจากการสัมผัสของมนุษย์

ดังนั้นให้เชื่อมต่อกุญแจกับ STM32F103C8T6 จากนั้นเชื่อมต่อ MCU กับ Pi ด้วย USB ตัวอย่างของโปรแกรม MCU สามารถพบได้ที่ส่วนท้ายของขั้นตอนนี้ แก้ไขคำจำกัดความของพินใน hw_config.c และคอมไพล์ด้วยไลบรารี USB ของ MCU ที่พบที่นี่ หรือคุณสามารถดาวน์โหลดไฟล์ hex โดยตรงไปยัง MCU ตราบใดที่คุณแชร์คำจำกัดความพินเดียวกันในแผนผังที่ส่วนท้ายของคำแนะนำนี้

สำหรับเอาต์พุตเสียง แผนผังอย่างเป็นทางการของ Raspberry Pi 3 B เป็นวิธีที่ดีในการกรองคลื่น pwm และวงจรเดียวกันควรทำงานได้อย่างสมบูรณ์ที่นี่ สิ่งหนึ่งที่ควรชี้ให้เห็นคืออย่าลืมเพิ่มบรรทัด "audio_pwm_mode=2" ที่ส่วนท้ายของ config.txt เพื่อลดสัญญาณรบกวนของเอาต์พุตเสียง

ในการขับลําโพง จำเป็นต้องมีไดรฟเวอร์ของลําโพง ที่นี่ฉันเลือก TDA2822 และวงจรเป็นวงจร BTL อย่างเป็นทางการ โปรดทราบว่าแจ็คโทรศัพท์ PJ-327 มีพินถอดอัตโนมัติที่เอาต์พุตด้านขวา เมื่อไม่ได้เสียบหูฟัง พิน 3 จะเชื่อมต่อกับช่องสัญญาณด้านขวา และทันทีที่เสียบหูฟัง พินนี้จะหลุดออกจากช่องด้านขวา พินนี้สามารถใช้เป็นพินอินพุตของลำโพงและลำโพงจะปิดเสียงเมื่อเสียบหูฟัง

ขั้นตอนที่ 5: พลัง

พลัง
พลัง
พลัง
พลัง
พลัง
พลัง

กลับไปที่ส่วนพลังงานและตรวจสอบการออกแบบพลังงานโดยละเอียด

มี 3 ส่วนพลังงาน: แหล่งจ่าย MCU, เครื่องชาร์จ/บูสเตอร์ และ DC-DC Bucks

ตัวจ่ายไฟของ MCU นั้นถูกแบ่งออกจากแหล่งจ่ายไฟอื่น ๆ ทั้งหมด เนื่องจากเราต้องการมันเพื่อดำเนินการตามลำดับก่อนการเปิดเครื่อง เมื่อกดปุ่มเปิดปิด PMOS จะเชื่อมต่อพิน EN ของ LDO กับแบตเตอรี่เพื่อเปิดใช้งาน LDO MCU จะถูกเปิดขึ้น (ปุ่มยังคงกดอยู่) ตอนบูทเครื่อง MCU จะตรวจดูว่ากดปุ่มเปิดปิดนานพอหรือเปล่า หลังจากผ่านไปประมาณ 2 วินาที หาก MCU พบว่าปุ่มเปิด/ปิดยังคงถูกกดอยู่ เครื่องจะดึงพิน "PWR_CTL" ขึ้นเพื่อให้ PMOS ทำงานต่อไป ในขณะนี้ MCU เข้าควบคุมแหล่งจ่ายไฟของ MCU

เมื่อกดปุ่มเปิดปิดเป็นเวลา 2 วินาทีอีกครั้ง MCU จะทำการปิดเครื่องตามลำดับ เมื่อสิ้นสุดลำดับการปิดเครื่อง MCU จะปล่อยพิน "PWR_CTL" เพื่อให้ PMOS ปิดได้ และแหล่งจ่ายไฟ MCU จะถูกปิดใช้งาน

ส่วนเครื่องชาร์จ/บูสเตอร์ใช้ IC IP5306 IC นี้คือการชาร์จ 2.4A และการจ่ายกระแสไฟ 2.1A Soc แบบบูรณาการสูงสำหรับการใช้งานธนาคารพลังงานและเหมาะอย่างยิ่งสำหรับความต้องการของเรา IC สามารถชาร์จแบตเตอรี่ ให้เอาต์พุต 5V และแสดงระดับแบตเตอรี่พร้อมไฟ LED 4 ดวงพร้อมกัน

ส่วน DC-DC Buck ใช้ SY8113 3A ประสิทธิภาพสูงสองตัว แรงดันไฟขาออกสามารถตั้งโปรแกรมโดยตัวต้านทาน 2 ตัว เพื่อให้แน่ใจว่าลำดับพลังงาน เราต้องการ MCU เพื่อเปิดใช้งาน Booster ก่อน สัญญาณ KEY_IP จะจำลองการกดปุ่มไปยังพิน KEY ของ IP5306 และเปิดใช้งานบูสเตอร์ 5V ภายใน หลังจากนั้น MCU จะเปิดใช้งานบั๊ก 3.3V โดยการดึงพิน RASP_EN ให้สูง และหลังจากจ่ายไฟ 3.3V แล้ว พิน EN ของบั๊ก 1.8V จะถูกดึงให้สูงและเปิดใช้งานเอาต์พุต 1.8V ได้

สำหรับแบตเตอรี่ แบตเตอรี่ลิเธียมไอออน 1000mAh สองก้อนก็เพียงพอแล้วสำหรับคอนโซล ขนาดปกติของแบตเตอรี่ชนิดนี้คือประมาณ 50*34*5 มม.

ขั้นตอนที่ 6: การตั้งค่าระบบ

การตั้งค่าระบบ
การตั้งค่าระบบ

ในขั้นตอนนี้ เราจะนำการตั้งค่าทั้งหมดมารวมกัน

ขั้นแรก คุณต้องดาวน์โหลดและแฟลชภาพ RetroPie ลงในการ์ด TF ใหม่ สามารถดูการสอนและดาวน์โหลดได้ที่นี่ ดาวน์โหลดเวอร์ชัน Raspberrypi 2/3 คุณจะเห็น 2 พาร์ติชั่นหลังจากแฟลชอิมเมจ: พาร์ติชั่น "บูต" ของรูปแบบ FAT16 และพาร์ติชั่น "Retropie" ของรูปแบบ EXT4

เมื่อคุณทำเสร็จแล้วอย่าใส่ลงใน Raspberry Pi ทันทีเพราะเราต้องเพิ่มพาร์ติชั่น FAT32 สำหรับรอม ใช้เครื่องมือพาร์ติชั่น เช่น DiskGenius เพื่อปรับพาร์ติชั่น EXT4 เป็น 5-6GB และสร้างพาร์ติชั่น FAT32 ใหม่โดยมีพื้นที่ว่างเหลืออยู่บนการ์ด TF ของคุณ อ้างถึงรูปภาพที่ฉันอัปโหลด

ตรวจสอบให้แน่ใจว่าระบบของคุณสามารถระบุเครื่องอ่านการ์ด TF เป็นอุปกรณ์ USB-HDD และคุณจะเห็น 3 พาร์ติชั่นใน explorer ของคุณ สามารถเข้าถึงได้สองแบบและ Windows จะขอให้คุณจัดรูปแบบด้านซ้าย ห้ามจัดรูปแบบ!!

ขั้นแรกให้เปิดพาร์ติชั่น "บูต" และทำตามขั้นตอนที่ 2 เพื่อตั้งค่าการกำหนดค่าพิน หรือคุณสามารถคลายซิป boot.zip ภายใต้ขั้นตอนนี้ และคัดลอกไฟล์และโฟลเดอร์ทั้งหมดไปยังพาร์ติชันสำหรับเริ่มระบบของคุณ อย่าลืมคัดลอกสคริปต์ lcd_init ที่คอมไพล์แล้วลงในพาร์ติชันสำหรับเริ่มระบบด้วย

ที่นี่เราพร้อมที่จะทำการบูตครั้งแรก แต่เนื่องจากไม่มีจอแสดงผล เราขอแนะนำให้คุณใช้บอร์ด RPI-CMIO กับอุปกรณ์ usb wlan จากนั้นคุณสามารถกำหนดค่าไฟล์ wpa_supplicant และเปิดใช้งาน ssh ในขั้นตอนนี้ อย่างไรก็ตาม หากคุณไม่ต้องการซื้อ GPIO32/33 สามารถใช้เป็นเทอร์มินัล UART ได้ เชื่อมต่อพิน TX(GPIO32) และ RX(GPIO33) เข้ากับบอร์ด usb-to-uart และเข้าถึงเทอร์มินัลด้วยอัตราบอดที่ 115200 ไม่ว่าจะด้วยวิธีใด คุณต้องเข้าถึงเทอร์มินัลสำหรับ Pi ของคุณ

เมื่อบู๊ตครั้งแรกระบบจะค้างเมื่อพยายามขยายระบบไฟล์ ละเว้น กดเริ่ม (ป้อนคีย์ของแป้นพิมพ์ USB HID) และรีบูต บนเทอร์มินัล ให้คัดลอกสคริปต์ lcd_init ไปยังโฟลเดอร์เริ่มต้นของผู้ใช้ "pi" และทำตามขั้นตอนที่ 3 เพื่อตั้งค่าการเริ่มต้นอัตโนมัติ หลังจากรีบูตอีกครั้ง คุณจะเห็นหน้าจอสว่างขึ้นและแสดงบางอย่าง

ในขณะนี้ เกมคอนโซลของคุณพร้อมที่จะเล่นแล้ว อย่างไรก็ตาม ในการโหลด roms และ BIOS ลงในการ์ด TF คุณต้องเข้าถึงเทอร์มินัลในแต่ละครั้ง เพื่อให้ง่าย ฉันแนะนำให้คุณตั้งค่าพาร์ติชัน FAT32

ก่อนอื่นให้สำรองข้อมูลโฟลเดอร์ RetroPie ภายใต้ /home/pi ไปยัง RetroPie-bck: "cp -r RetroPie RetroPie-bck" จากนั้นเพิ่มบรรทัดใหม่ใน /etc/fstab: "/dev/mmcblk0p3 /home/pi/RetroPie defaults, uid=1000, gid=1000 0 2" เพื่อต่อเชื่อมพาร์ติชัน FAT32 โดยอัตโนมัติในโฟลเดอร์ RetroPie โดยตั้งค่าเจ้าของเป็นผู้ใช้ "ปี่" หลังจากรีบูต คุณจะพบว่าเนื้อหาของโฟลเดอร์ RetroPie หายไป (หากไม่ใช่ ให้รีบูตอีกครั้ง) และข้อผิดพลาดบางอย่างปรากฏขึ้นบนหน้าจอ คัดลอกไฟล์ทั้งหมดใน RetroPie-bck กลับไปที่ RetroPie แล้วรีบูตอีกครั้ง ข้อผิดพลาดควรหายไปและคุณสามารถกำหนดค่าอุปกรณ์อินพุตได้โดยทำตามคำแนะนำบนหน้าจอ

หากคุณต้องการเพิ่ม roms หรือ BIOS ให้ถอดการ์ด TF เมื่อปิดเครื่องและเชื่อมต่อกับคอมพิวเตอร์ของคุณ เปิดพาร์ติชั่นที่ 3 (อย่าลืมที่จะละเว้นคำแนะนำรูปแบบ!!!) และคัดลอกไฟล์ไปยังโฟลเดอร์ที่เกี่ยวข้อง

ขั้นตอนที่ 7: เคสและปุ่มที่พิมพ์ 3 มิติ

เคสและปุ่มที่พิมพ์ 3 มิติ
เคสและปุ่มที่พิมพ์ 3 มิติ
เคสและปุ่มที่พิมพ์ 3 มิติ
เคสและปุ่มที่พิมพ์ 3 มิติ
เคสและปุ่มที่พิมพ์ 3 มิติ
เคสและปุ่มที่พิมพ์ 3 มิติ

ฉันออกแบบเคสสไตล์ GameBoy Micro สำหรับเกมคอนโซล

แค่พิมพ์

4x ABXY. STL

2x LR. STL (จำเป็นต้องเพิ่มการรองรับ)

1x CROSS. STL

1x TOP. STL

1x ด้านล่าง. STL

ฉันพิมพ์โดยใช้ PLA โดยเติม 20% เลเยอร์ 0.2 มม. และมีความแข็งแรงเพียงพอ

เนื่องจากเคสแน่นหนา ให้ตรวจสอบความแม่นยำของเครื่องพิมพ์ด้วยลูกบาศก์ทดสอบก่อนพิมพ์

และจำเป็นต้องประกอบสกรูยาว φ3 มม. ยาว 5 มม. สามตัว และสกรูยาว φ3 มม. ยาว 10 มม. สี่ตัวเข้าด้วยกัน

ขั้นตอนที่ 8: ร่วมกันและแก้ปัญหาทั้งหมด

ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา
ทั้งหมดเข้าด้วยกันและแก้ปัญหา

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

หลังจากประสานส่วนประกอบทั้งหมดบน PCB และทดสอบแล้ว สิ่งแรกที่ต้องทำคือดาวน์โหลดไฟล์ฐานสิบหกไปยัง MCU หลังจากนั้น ติดโมดูล LCD บน PCB โมดูล LCD ควรอยู่เหนือ PCB 3 มม. เพื่อให้พอดีกับเคส ใช้เทปกาวสองหน้าแบบหนาติด จากนั้นเชื่อมต่อ FPC เข้ากับขั้วต่อแล้วใส่การ์ด CM3L และ TF อย่าเพิ่งบัดกรีแบตเตอรี่ตอนนี้ เสียบแหล่งพลังงาน usb และบูตเครื่อง!

ตรวจสอบปุ่มทั้งหมดและแสดงผล วัดแรงดันไฟฟ้าระหว่าง BAT+ และ GND ตรวจสอบว่าแรงดันไฟฟ้าอยู่ที่ 4.2V หรือไม่ หากแรงดันไฟฟ้าเป็นปกติ ให้ถอดสาย USB แล้วบัดกรีแบตเตอรี่ ลองกดปุ่มเพาเวอร์

ใส่ปุ่ม CROSS และ ABXY ในกล่อง TOP แล้วใส่ PCB ลงในเคส ใช้สกรู 3 ตัวเพื่อยึด PCB ในกล่อง เพิ่มเทปสองด้านหนาที่ด้านหลังของปุ่ม SKPDACD010 ทั้งหมด แล้วติดแบตเตอรี่ไว้ DO ใช้เทปหนาเพื่อหลีกเลี่ยงหมุดของ SKPDACD010 ทำให้แบตเตอรี่เสียหาย จากนั้นติดลำโพงเข้ากับเคสด้านล่าง ก่อนปิด คุณอาจต้องลองใช้ปุ่มทั้งหมด ตรวจสอบว่าปุ่มทำงานและเด้งอย่างถูกต้องหรือไม่ จากนั้นปิดเคสด้วยสกรู 4 ตัว

สนุก.

เคล็ดลับการแก้ไขปัญหาบางประการ:

1) ตรวจสอบการเชื่อมต่อพินของโมดูล LCD สามครั้งบนแผนผังและ PCB

2) เดินสายสัญญาณ LCD ด้วยข้อจำกัดด้านความยาว

3) เมื่อคุณไม่แน่ใจเกี่ยวกับส่วนกำลัง ให้ประสานและทดสอบแต่ละส่วนตามลำดับพลังงาน 5V ก่อนจากนั้น 3.3V และ 1.8V หลังจากทดสอบส่วนกำลังทั้งหมดแล้ว ให้บัดกรีส่วนประกอบอื่นๆ

4) หากจอแสดงผลเบลอบ่อยครั้ง ให้ลองสลับขั้วของสัญญาณ PCLK โดยตั้งค่า dpi_output_format

5) หากจอแสดงผลอยู่ตรงกลางมาก ให้ลองกลับขั้วของสัญญาณ HSYNC หรือ VSYNC

6) หากจอแสดงผลอยู่ตรงกลางเล็กน้อย ให้ลองปรับการตั้งค่าโอเวอร์สแกน

7) หากหน้าจอเป็นสีดำ ให้ลองรอให้ระบบบู๊ตเป็นสคริปต์ rc.local หากคุณต้องการแสดงผลตั้งแต่เริ่มต้น ให้ลองเชื่อมต่ออินเทอร์เฟซ SPI กับ MCU และใช้ MCU เพื่อเริ่มต้นโมดูล LCD

8) หากหน้าจอเป็นสีดำตลอดเวลา ให้ตรวจสอบลำดับการเริ่มต้นอีกครั้ง

9) อย่าลังเลที่จะถามคำถามใด ๆ ที่นี่หรือทางอีเมล: [email protected]

แนะนำ: