สารบัญ:
- ขั้นตอนที่ 1: บอร์ด ESP32, การติดตั้ง Arduino IDE และการกำหนดค่าไลบรารี VGA
- ขั้นตอนที่ 2: การอัปโหลด Tiny Basic Code ไปยัง ESP32
- ขั้นตอนที่ 3: เชื่อมต่อพอร์ต VGA
- ขั้นตอนที่ 4: เชื่อมต่อพอร์ต PS2
- ขั้นตอนที่ 5: การเขียนโปรแกรมด้วย Tiny Basic
- ขั้นตอนที่ 6: การเชื่อมต่อการ์ดหน่วยความจำ SD
- ขั้นตอนที่ 7: การรับทราบ
วีดีโอ: ESP32 Basic PC พร้อมเอาต์พุต VGA: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:05
ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างพีซีสไตล์ย้อนยุคแบบเรียบง่ายโดยใช้ ESP32 ตัวเดียวและส่วนประกอบอื่นๆ อีกสองสามตัว
พีซีเครื่องนี้ใช้งาน Tiny Basic ซึ่งเป็นภาษาถิ่นที่เรียบง่ายของ BASIC และสร้างเอาต์พุตสำหรับจอภาพ VGA
ความละเอียดคือ 640x350 พิกเซล อนุญาตให้ใช้อักขระ asci 80x25 ใน 8 สี แป้นพิมพ์ PS2 สามารถเชื่อมต่อและใช้เขียนโค้ดได้ ทำให้มีหน่วยความจำสูงสุด 14059 ไบต์
สามารถขับเคลื่อนหมุด ESP32 I/O ได้โดยตรงด้วยคำสั่งพื้นฐานเฉพาะ
โครงการนี้เกิดขึ้นได้ด้วยไลบรารี ESP32 VGA ที่ยอดเยี่ยมซึ่งเขียนโดย Fabrizio Di Vittorio ดูที่นี่สำหรับรายละเอียดเพิ่มเติม
ขั้นตอนที่ 1: บอร์ด ESP32, การติดตั้ง Arduino IDE และการกำหนดค่าไลบรารี VGA
ก่อนอื่นคุณต้องซื้อ ESP32 รุ่นแก้ไข 1 หรือสูงกว่า มีหลายเวอร์ชั่นให้เลือก แต่ผมแนะนำให้เลือกรุ่นที่มีพินหลายอัน ฉันกำลังใช้เวอร์ชันนี้อยู่ แต่ฉันคิดว่าหลายๆ ตัวก็ใช้ได้ดีเช่นกัน ตัวอย่างเช่น ในคำอธิบายของวิดีโอนี้ คุณจะพบโมเดลอื่นๆ อีกสามรุ่นซึ่งมีราคาต่ำกว่า 5 เหรียญ
เมื่อคุณได้บอร์ดแล้ว คุณต้องดำเนินการตามขั้นตอนย่อยสามขั้นตอนต่อไปนี้:
- ติดตั้ง Arduino IDE. ตัวสุดท้าย
- กำหนดค่า ESP32 ใน IDE และ
- ติดตั้งไลบรารี VGA
ขั้นตอนย่อย 1
มีวิธีการต่างๆ ในการเขียนโปรแกรม ESP32 แต่ที่นี่คุณต้องใช้ Arduino IDE ล่าสุด (ฉันใช้เวอร์ชัน 1.8.9) ในการติดตั้ง คุณสามารถไปที่หน้า Arduino IDE และทำตามคำแนะนำ
ขั้นตอนย่อยที่ 2
เมื่อการดำเนินการก่อนหน้านี้เสร็จสิ้น คุณต้องกำหนดค่า ESP32 ของคุณภายใน Arduino IDE นี่ไม่ใช่เรื่องเล็กน้อยเนื่องจาก ESP32 ยังไม่มี (ยัง?) อยู่ในนั้น คุณสามารถทำตามบทช่วยสอนนี้หรือขั้นตอนต่อไปนี้
1) เปิด Arduino IDE
2) เปิดหน้าต่างการตั้งค่า ไฟล์/การตั้งค่า หรือกด "Ctrl+comma"
3) ไปที่ "URL ผู้จัดการบอร์ดเพิ่มเติม" คัดลอกและวางข้อความต่อไปนี้:
https://dl.espressif.com/dl/package_esp32_index.json
และคลิกปุ่มตกลง
4) เปิดผู้จัดการบอร์ด ไปที่ Tools/Board/Boards Manager…
5) ค้นหา ESP32 และกดปุ่มติดตั้งสำหรับ "ESP32 by Espressif Systems":
6) ณ จุดนี้ เมื่อคุณเชื่อมต่อเป็นครั้งแรกกับ ESP32 คุณควรเลือกรุ่นที่เหมาะสมในรายการบอร์ด ESP32 ที่มีอยู่จำนวนมาก (ดูภาพในขั้นตอนนี้) ในกรณีที่มีข้อสงสัยเกี่ยวกับรูปแบบ ให้เลือกแบบทั่วไป นั่นคือ แบบแรก มันใช้งานได้สำหรับฉัน
7) ระบบควรเลือกพอร์ต USB ที่เหมาะสมและความเร็วในการอัพโหลด (ปกติ 921600) ณ จุดนี้ การเชื่อมต่อระหว่างพีซีของคุณกับบอร์ด ESP32 ควรจะถูกสร้างขึ้น
ขั้นตอนย่อย 3
สุดท้ายคุณต้องติดตั้งไลบรารี FabGL VGA [อัปเดตกรกฎาคม 2019] คุณต้องการและเวอร์ชันเก่าของ libray นี้: คุณสามารถดาวน์โหลดไฟล์ zip src.old.zip ที่ด้านล่างของขั้นตอนนี้ คลายการบีบอัดและเปลี่ยนชื่อโฟลเดอร์เป็น "src" ใน
โฟลเดอร์ " …\arduino-1.8.9\libraries"
เมื่อคุณดำเนินการเหล่านี้เสร็จแล้ว คุณสามารถไปยังขั้นตอนถัดไปและอัปโหลด TinyBasic ที่แก้ไขแล้วตามขั้นตอนต่อไป
ขั้นตอนที่ 2: การอัปโหลด Tiny Basic Code ไปยัง ESP32
ดาวน์โหลด ESP32_TinyBasicPlus_PS2_FabLab_beta.ino ที่ด้านล่างของขั้นตอนนี้
เปิดด้วย Arduino IDE และอัปโหลดไปยัง ESP32 ดิบของคุณ
หากคุณไม่มีข้อความแสดงข้อผิดพลาด แสดงว่ารหัสควรจะทำงานอยู่แล้ว
ขั้นตอนหลัก: หากคุณต้องการทดสอบ TinyBasic ก่อนเชื่อมต่อแป้นพิมพ์ VGA และ PS2 คุณสามารถทำได้ด้วยไคลเอ็นต์ SSH และ telnet ฉันใช้ PuTTY
คุณสามารถดูลักษณะที่ปรากฏในภาพในขั้นตอนนี้
ขั้นตอนที่ 3: เชื่อมต่อพอร์ต VGA
คุณต้องการชิ้นส่วนต่อไปนี้:
- ขั้วต่อ DSUB15 เช่น ขั้วต่อ VGA ตัวเมีย หรือสาย VGA ที่จะตัด
- ตัวต้านทาน 270 โอห์มสามตัว
เชื่อมต่อ ESP32 GPIO pin 2, 15 และ 21 กับ VGA Red, Green และ Blue ตามลำดับ ผ่านตัวต้านทาน 270 Ohm
เชื่อมต่อ VGA Hsync และ Vsync กับ ESP32 GPIO พิน 17 และ 4 ตามลำดับ
เชื่อมต่อพินตัวเชื่อมต่อ DSUB15 5, 6, 7, 8 และ 10 เข้ากับ ESP32 GND
สำหรับความละเอียดของพินตัวเชื่อมต่อ VGA DSUB15 โปรดดูรูปภาพในขั้นตอนนี้ NB นี่คือด้านบัดกรีของขั้วต่อตัวเมีย
ขั้นตอนที่ 4: เชื่อมต่อพอร์ต PS2
คุณต้องมีขั้วต่อคีย์บอร์ด PS2 ตัวเมีย
คุณสามารถหาซื้อได้จากมาเธอร์บอร์ดพีซีเครื่องเก่า เพียงแค่ขายมันด้วยปืนความร้อน ในภาพที่แสดงในขั้นตอนนี้ คุณจะพบฟังก์ชันของพินที่จำเป็นของขั้วต่อ PS2
การเชื่อมต่อคือ:
- ข้อมูลแป้นพิมพ์ไปยังขา ESP32 GPIO 32
- แป้นพิมพ์ IRQ (นาฬิกา) ถึง ESP32 GPIO พิน 33
- คุณต้องเชื่อมต่อพิน 5V และ GND ด้วย
ขั้นตอนที่ 5: การเขียนโปรแกรมด้วย Tiny Basic
ณ จุดนี้ หากคุณสามารถเชื่อมต่อจอภาพ VGA และแป้นพิมพ์ PS2 และ ESP32 กับแหล่งจ่ายไฟ
รูปภาพที่แสดงที่นี่ควรปรากฏบนจอภาพ ตอนนี้คุณสามารถเล่นเล็กน้อยด้วยคำสั่ง Tiny Basic
ลองยกตัวอย่างเช่น Hello, Word! วนไม่มีสิ้นสุด:
10 พิมพ์ "สวัสดีชาวโลก!"
20 ไปถึง 10
วิ่ง
คุณสามารถเปลี่ยนสีได้สี่สีโดยกดปุ่ม esc และหยุดการวนซ้ำด้วย ctrl+c
โปรดทราบว่าหากคุณพิมพ์ผิด คุณจะไม่สามารถยกเลิกได้! หรือดีกว่า คุณสามารถยกเลิกได้ แต่ระบบไม่รับรู้การแก้ไขข้อผิดพลาด คุณต้องเขียนบรรทัดคำสั่งใหม่ทั้งหมด
ตอนนี้คุณสามารถลองสิ่งที่ซับซ้อนมากขึ้น เช่น ขับไฟ LED ที่กะพริบด้วยโปรแกรมพื้นฐาน เชื่อมต่อ ตัวอย่างเช่น LED anode (ขายาว) กับ ESP32 GPIO pin 13 และขั้วลบกับ GND
จากนั้นเขียน:
ใหม่
10 i=1000
20 พิมพ์ i
30 ล่าช้า i
40 dwrite 13 สูง
50 ล่าช้า i
60 dwrite 13 ต่ำ
70 i=i*9/10
80 ถ้า i>0 ไปถึง 20
90 จบ
วิ่ง
คุณสามารถเห็นผลในวิดีโอที่ฝังอยู่ในคำแนะนำนี้
ขั้นตอนที่ 6: การเชื่อมต่อการ์ดหน่วยความจำ SD
พีซีโบราณ ไม่สำคัญว่าจะเล็กน้อยและอ่อนแอเพียงใด ไม่สมบูรณ์หากคุณไม่สามารถจัดเก็บโปรแกรมของคุณอย่างถาวร
ในขั้นตอนนี้ฉันจะแสดงวิธีเชื่อมต่อการ์ดหน่วยความจำ SD แต่น่าเสียดายที่ในขณะนี้ (ฉันหวังว่าเพียงชั่วครู่เท่านั้น) การจัดเก็บโปรแกรมไม่ทำงาน!
BTW ฉันใช้อะแดปเตอร์การ์ด microSD เป็น SD และบัดกรีหมุดรูปตัว L 8 อันตามที่แสดงในรูปภาพในขั้นตอนนี้
จากนั้นฉันเชื่อมต่อหมุดอะแดปเตอร์ SD กับ ESP32 ตามภาพที่สองนั่นคือ ฉันเชื่อมต่อหมุด ESP32 GPIO 5, 18, 19, 23 กับ SC, นาฬิกา, MISO, MOSO ตามลำดับ บวก 3.3V และ GND สองตัว
ฉันยังทำตามคำแนะนำและตัวอย่างที่นี่ และด้วยรหัสตัวอย่าง SD_test.ino ฉันสามารถเขียนลงในการ์ด microSD ขนาด 2 GBytes ได้
ดังนั้นหากใครพบวิธีแก้ปัญหาโปรดแจ้งให้ฉันทราบโดยเร็วไปที่อีเมลของฉัน [email protected] และฉันจะทำตามคำแนะนำนี้
ขั้นตอนที่ 7: การรับทราบ
ฉันต้องการแสดงรถถังของฉันไปยัง Fabrizio Di Vittorio สำหรับห้องสมุด ESP32 VGA ที่ยอดเยี่ยมของเขา สำหรับรายละเอียดเพิ่มเติม ตัวอย่าง และ… Space Invaders เยี่ยมชมเว็บไซต์ของเขาที่นี่
ขอบคุณมากสำหรับผู้เขียน Tiny Basic:
- ไมค์ ฟิลด์
- สกอตต์ ลอว์เรนซ์
- Brian O'Dell
สุดท้ายนี้ หากคุณชอบโปรเจกต์นี้ โปรดเขียนความคิดเห็นหรือแชร์รูปภาพของอุปกรณ์ที่คุณสร้าง… และเหนือสิ่งอื่นใด โหวตให้ในโครงการ Arduino!
แนะนำ:
ESP32 VGA เกมอาเขตและจอยสติ๊ก: 6 ขั้นตอน (พร้อมรูปภาพ)
เกมอาเขตและจอยสติ๊ก ESP32 VGA: ในคำแนะนำนี้ฉันจะแสดงวิธีสร้างเกมอาร์เคดสี่เกมเช่น Tetris - Snake - Breakout - Bomber - โดยใช้ ESP32 พร้อมเอาต์พุตสำหรับจอภาพ VGA ความละเอียด 320 x 200 พิกเซล 8 สี ฉันเคยทำเวอร์ชันที่มี
Arduino Basic PC พร้อมเอาต์พุต VGA: 5 ขั้นตอน (พร้อมรูปภาพ)
Arduino Basic PC พร้อมเอาต์พุต VGA: ในคำแนะนำก่อนหน้าของฉัน ฉันได้แสดงวิธีสร้างคอมพิวเตอร์ 8 บิตย้อนยุคที่ใช้ BASIC โดยใช้ Arduino สองตัวและมีสัญญาณเอาต์พุตเป็นขาวดำสำหรับหน้าจอทีวี ตอนนี้ผมจะแสดงวิธีการสร้างคอมพิวเตอร์เครื่องเดียวกัน แต่ด้วยสัญญาณเอาท์พุตใน
เครื่องคิดเลข Arduino พร้อมเอาต์พุต LED: 5 ขั้นตอน
เครื่องคิดเลข Arduino พร้อมเอาต์พุต LED: เฮ้พวก! ต้องการเรียนรู้วิธีใช้อินพุตและเอาต์พุตของจอภาพอนุกรม ที่นี่คุณมีบทช่วยสอนที่สมบูรณ์แบบเกี่ยวกับวิธีการทำเช่นนั้น! ในคำแนะนำนี้ ฉันจะแนะนำคุณเกี่ยวกับขั้นตอนง่าย ๆ ที่จำเป็นในการสร้างเครื่องคิดเลขโดยใช้ Arduino serial m
ESP32 VGA Snake: 5 ขั้นตอน
ESP32 VGA Snake: ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างเกมอาร์เคดคลาสสิก - Snake - ด้วย ESP32 พร้อมเอาต์พุตสำหรับจอภาพ VGA ความละเอียด 640x350 พิกเซล มี 8 สี ฉันเคยทำเวอร์ชันกับ Arduino Uno มาก่อนแล้ว (ดูที่นี่) แต่
ESP32 VGA Tetris: 3 ขั้นตอน
ESP32 VGA Tetris: ในคำแนะนำนี้ ฉันจะแสดงวิธีสร้างโคลนเกม Tetris แบบคลาสสิก โดยใช้ ESP32 และสร้างเอาต์พุตสำหรับจอภาพ VGA เกมนี้เกิดขึ้นได้ด้วยไลบรารี่ ESP32Lib Arduino อันน่าทึ่งที่ทำโดย bitluni คุณจะต้องใช้ ESP32 b