สารบัญ:
- ขั้นตอนที่ 1: ส่วนที่ฉันใช้
- ขั้นตอนที่ 2: วงจร
- ขั้นตอนที่ 3: PCB
- ขั้นตอนที่ 4: การอัปโหลดรหัส
- ขั้นตอนที่ 5: การประกอบ
- ขั้นตอนที่ 6: ข้อบกพร่องและงานในอนาคต
วีดีโอ: คอมพิวเตอร์พื้นฐานพกพา: 6 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
คำแนะนำนี้อธิบายกระบวนการของฉันในการสร้างคอมพิวเตอร์พกพาขนาดเล็กที่ใช้พื้นฐาน คอมพิวเตอร์ถูกสร้างขึ้นโดยใช้ชิป ATmega 1284P AVR ซึ่งเป็นแรงบันดาลใจให้ชื่อคอมพิวเตอร์โง่ (HAL 1284)
งานสร้างนี้ได้รับแรงบันดาลใจอย่างมากจากโปรเจ็กต์ที่น่าทึ่งที่นี่และ SuperCON BASIC Badge
คอมพิวเตอร์ใช้ TinyBasic เวอร์ชันดัดแปลง แม้ว่าซอฟต์แวร์ส่วนใหญ่จะอิงตามโครงการโดย dan14 แน่นอนคุณสามารถทำตามคำแนะนำนี้หรือปรับปรุงให้ดีขึ้นได้เนื่องจากฉันทำผิดพลาดเล็กน้อย
สำหรับโครงการนี้ ฉันยังได้สร้างคู่มือ มันกล่าวถึงข้อบกพร่องและคุณสมบัติเฉพาะบางอย่างสำหรับจอภาพที่เลือก แต่ที่สำคัญที่สุด มันมีรายการการทำงานพื้นฐาน
หลังจากเผยแพร่แล้ว ฉันได้จัดทำวิดีโอนำเสนอโครงการ
ขั้นตอนที่ 1: ส่วนที่ฉันใช้
สำหรับไอซีหลัก:
- ATmega 1284P
- คริสตัล 16MHz
- 2x 22pf ตัวเก็บประจุเซรามิก
- ตัวต้านทาน 10KΩ (สำหรับการรีเซ็ตแบบดึงขึ้น)
- ปุ่ม 4 พิน (สำหรับรีเซ็ต)
- ตัวต้านทาน 470Ω (สำหรับวิดีโอคอมโพสิต)
- ตัวต้านทาน 1kΩ (สำหรับการซิงค์วิดีโอคอมโพสิต)
- จัมเปอร์ 3 พิน (สำหรับสัญญาณวิดีโอ)
- Buzzer แบบพาสซีฟ
สำหรับการควบคุมแป้นพิมพ์:
- ATmega 328P (เหมือนกับที่ใช้ใน Arduino Uno)
- คริสตัล 16MHz
- 2x 22pf ตัวเก็บประจุเซรามิก
- ตัวต้านทาน 12x10KΩ (สำหรับดึงขึ้นและปุ่มรีเซ็ต)
- ปุ่ม 51x 4-pin (สำหรับคีย์บอร์ดจริง)
สำหรับพลังงาน:
- L7805 ตัวควบคุมแรงดันไฟฟ้า
- 3mm LED
- ตัวต้านทาน 220Ω (สำหรับ LED)
- 2x 0.1µF ตัวเก็บประจุด้วยไฟฟ้า
- 0.22 µF ตัวเก็บประจุแบบอิเล็กโทรไลต์ (คุณสามารถแทนที่ 0.22 นี้และ 0.1 หนึ่งตัวสำหรับ 0.33 อัน ฉันยังได้รับแจ้งว่าค่าไม่สำคัญจริงๆ แต่ฉันไม่ค่อยเก่งเรื่องตัวเก็บประจุ)
- 2x จัมเปอร์ 2 พิน (สำหรับอินพุตพลังงานและสำหรับสวิตช์หลัก)
GPIO (อาจเพิ่มอีกสองสามเหตุผล):
- จัมเปอร์ 7 พิน
- จัมเปอร์ 8 พิน 2x
- จัมเปอร์ 2 พิน (สำหรับ 5V และ GND)
- จัมเปอร์ 3-4 พิน (สำหรับการสื่อสารแบบอนุกรม)
ไม่ใช่ PCB:
- จอแสดงผล LCD ขนาด 4 นิ้วพร้อมวิดีโอคอมโพสิต (ของฉันมีแรงดันไฟฟ้าขาเข้าระหว่าง 7-30V)
- ที่ใส่เครื่องพิมพ์ 3 มิติสำหรับจอแสดงผล
- สวิตช์บางชนิด
ขั้นตอนที่ 2: วงจร
วงจรไม่สวยนักและส่วนหลักของ IC-region ได้รับแรงบันดาลใจจาก dan14 ที่ถูกกล่าวว่าเป็น Arduino ที่ค่อนข้างตรงไปตรงมาบน Breadboard-circuit แป้นพิมพ์เป็นตารางธรรมดาและควบคุมโดย ATmega328 ชิป AVR สองตัวสื่อสารผ่าน UART Serial pins
ทั้งรูปภาพและไฟล์ Eagle ของฉันถูกแนบมาด้วย และหวังว่าจะเพียงพอที่จะสร้างวงจรขึ้นใหม่ ถ้าไม่โปรดแจ้งให้ฉันทราบและฉันจะอัปเดตคำแนะนำ
ขั้นตอนที่ 3: PCB
PCB มี 2 ชั้นและสร้างขึ้นโดยใช้เส้นทางอัตโนมัติ (โอ้ ช่างเป็นหลุมอะไร!) มีปุ่มและไฟ LED แสดงสถานะการทำงานที่ด้านหน้าและส่วนที่เหลือที่ด้านหลัง ฉันมี PCB ของฉันที่สร้างด้วย JCL PCB และพวกเขาก็ทำได้ดีมากด้วย ไฟล์ที่จำเป็นในการสร้าง PCB ใหม่ควรอยู่ในไฟล์ Eagle จากเมื่อก่อน
ฉันขอแนะนำให้คุณออกแบบ PCB ใหม่ เนื่องจากฉันมีบางสิ่งที่ฉันอยากทำแตกต่างออกไป ถ้าคุณชอบการออกแบบของฉัน ฉันยังมี (ในขณะที่เขียน) กระดานที่ไม่ได้ใช้สี่แผ่นซึ่งฉันเต็มใจที่จะขายมากกว่า
กระดานมีรูเจาะสี่รูที่ฉันใช้สำหรับติดตั้งจอ LCD
ขั้นตอนที่ 4: การอัปโหลดรหัส
แน่นอนว่าทั้ง 1284 และ 328 ต้องการรหัสและรหัสที่ฉันใช้สามารถพบได้ที่นี่: https://github.com/PlainOldAnders/HAL1284 ภายใต้ ArduinoSrc/src ฉันแค่ใช้ Arduino IDE เพื่อแก้ไขและอัปโหลดโค้ด แต่ก่อนหน้านั้น คุณจะต้องเบิร์น bootloaders บนไอซี:
ATMega328:
อันนี้ง่าย ในแง่ที่ว่ามีการสนับสนุนมากมายเกี่ยวกับวิธีการเบิร์น bootloader และรหัสอัปโหลดไปยัง IC นี้ ฉันมักจะทำตามคำแนะนำนี้ ส่วนใหญ่เพราะฉันลืมรายละเอียดเฉพาะ
รหัสสำหรับ 328 (ภายใต้ ArduinoSrc/ปุ่มกด) ค่อนข้างง่าย มันอาศัยไลบรารี Adafruit_Keypad-master- โดยสิ้นเชิง ในกรณีที่มีการเปลี่ยนแปลงเกี่ยวกับ lib ฉันได้รวมเวอร์ชันที่ฉันใช้ใน github-page ภายใต้ ArduinoSrc/lib
ATmega1284:
มันค่อนข้างยากสำหรับฉันเมื่อได้รับ IC ครั้งแรก ฉันเริ่มต้นด้วยการรับ bootloader จากที่นี่ และทำตามคำแนะนำในการติดตั้ง ในการเบิร์น bootloader ฉันเพียงแค่ทำสิ่งเดียวกันกับ 328 และได้รับความช่วยเหลือจากที่นี่ สำหรับ IC ทั้งสองฉันเพิ่งใช้ Arduino Uno สำหรับทั้งการเบิร์น bootloader และอัปโหลดรหัส (ลบ IC ออกจาก Arduino Uno เมื่ออัปโหลด)
โค้ด (ภายใต้ ArduinoSrc/HAL1284Basic) ซับซ้อนเกินไปสำหรับฉัน แต่ฉันสามารถแก้ไขโค้ดบางส่วนได้:
ฉันเพิ่มคำสั่งสองสามคำสั่ง (ที่ทำเครื่องหมายด้วย [A] ใน manual.pdf) และฉันก็เปลี่ยนคำสั่งอื่นๆ ด้วย:
โทน: คำสั่ง tone เพิ่งใช้ฟังก์ชันโทนของ Arduino มาก่อน แต่เมื่อใช้ไลบรารี TVout สิ่งนี้ทำให้ออดทำงานไม่ถูกต้อง ฉันเปลี่ยนเป็นใช้ฟังก์ชันโทนของ TVout แต่นี่หมายความว่าโทนพินต้องเป็นพิน 15 (สำหรับ atmega1284)
การสื่อสารแบบอนุกรม: เนื่องจากแป้นพิมพ์เป็นแบบ DIY จึงใช้การสื่อสารแบบอนุกรมเพื่ออ่านอักขระ เนื่องจากมีการใช้ atmega1284 ที่นี่ จึงมีสายการสื่อสารซีเรียลสองสาย และเมื่อเปิดใช้งาน "sercom" รหัสยังช่วยให้เขียนผ่านพอร์ตอนุกรม (จากคอมพิวเตอร์หรืออะไรก็ตาม)
ความละเอียด: จอภาพที่ใช้สำหรับโปรเจ็กต์นี้ค่อนข้างโง่ และจำเป็นต้องมีความละเอียดเล็กน้อย มิฉะนั้นภาพจะกะพริบ หากใช้จอภาพที่ดีกว่านี้ เราขอแนะนำให้คุณเปลี่ยนความละเอียดในฟังก์ชันการตั้งค่า
ขั้นตอนที่ 5: การประกอบ
เมื่ออัปโหลดโค้ดและ PCB และชิ้นส่วนพร้อมแล้ว ก็ถึงเวลาประกอบ ทุกส่วนที่ฉันใช้นั้นเป็นรู ดังนั้นการบัดกรีก็ไม่ยากเกินไป จอภาพถูกยึดเข้ากับรูเจาะสี่รูใน PCB ด้วยที่ยึดที่พิมพ์ 3 มิติ หากใช้จอภาพอื่น อาจใช้รูเจาะสี่รูสำหรับติดตั้งสิ่งนี้
ที่ยึดจอภาพที่ใช้ในที่นี้ ยังได้รับการออกแบบเพื่อใช้เป็นสวิตช์สลับ (เชื่อมต่อกับจัมเปอร์ "สวิตช์" บน PCB) และปุ่มควบคุมสามปุ่มสำหรับจอภาพ ตัวยึดยึดด้วยสลักเกลียว M3 และสเปเซอร์พลาสติก
สำหรับปลั๊กไฟ ฉันใช้ตัวเชื่อมต่อ JST PCB แม้ว่าแจ็คแบบลำกล้องจะเรียบกว่าเล็กน้อย ในการจ่ายไฟให้กับบอร์ด ฉันสลับระหว่างแหล่งจ่ายไฟ 12V หรือแบตเตอรี่ 18650 สามก้อนเป็นชุด คาวบอยที่นุ่มนวลกว่าฉันอาจออกแบบที่ใส่แบตเตอรี่แบบเรียบสำหรับบอร์ดได้
ขั้นตอนที่ 6: ข้อบกพร่องและงานในอนาคต
ปุ่มลูกศร: ปุ่มลูกศรถูกวางโดยไม่ได้ตั้งใจและใช้งานไม่ได้มากนัก ทำให้การนำทางลำบาก
ไฟล์ I/O: มีความสามารถของไฟล์ I/O อยู่แต่ไม่ได้ใช้งาน เพื่อต่อสู้กับสิ่งนี้ ซอฟต์แวร์ HAL1284Com สามารถอัปโหลดไฟล์ไปยังบอร์ดได้ นอกจากนี้ยังสามารถอัปโหลดไปยัง EEPROM
PEEK/POKE: PEEK และ POKE ยังไม่ผ่านการทดสอบ และฉันไม่แน่ใจว่าที่อยู่คืออะไร
ตัวแบ่ง: บางครั้งตัวแบ่ง (Esc) ยุ่งกับโค้ดทั้งหมด เมื่ออยู่ในลูปไม่สิ้นสุด
พิน 7: พิน PWM 7 อาจทำได้ยากเมื่อพยายาม DWRITE High หรือ AWRITE 255 ใช้งานได้ดีกับ AWRITE 254
คนงี่เง่า: เป็นการดีที่จะสามารถอัปโหลดผ่าน UART1 ได้เช่นกัน แต่การอัปโหลดทำได้ผ่าน UART0 เท่านั้น ดังนั้นการอัปโหลดจะต้องทำโดยการแยกไอซีหลักออก หน้าจอและตัวควบคุมแรงดันไฟฟ้า 5 จะร้อนเกินไปเล็กน้อยเมื่อใช้งานเป็นเวลานาน
แนะนำ:
DIY 37 Leds เกมรูเล็ต Arduino: 3 ขั้นตอน (พร้อมรูปภาพ)
DIY 37 Leds เกมรูเล็ต Arduino: รูเล็ตเป็นเกมคาสิโนที่ตั้งชื่อตามคำภาษาฝรั่งเศสหมายถึงวงล้อเล็ก
หมวกนิรภัย Covid ส่วนที่ 1: บทนำสู่ Tinkercad Circuits!: 20 ขั้นตอน (พร้อมรูปภาพ)
Covid Safety Helmet ตอนที่ 1: บทนำสู่ Tinkercad Circuits!: สวัสดีเพื่อน ๆ ในชุดสองตอนนี้ เราจะเรียนรู้วิธีใช้วงจรของ Tinkercad - เครื่องมือที่สนุก ทรงพลัง และให้ความรู้สำหรับการเรียนรู้เกี่ยวกับวิธีการทำงานของวงจร! หนึ่งในวิธีที่ดีที่สุดในการเรียนรู้คือการทำ ดังนั้น อันดับแรก เราจะออกแบบโครงการของเราเอง: th
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-