สารบัญ:
- ขั้นตอนที่ 1: คุณสมบัติ
- ขั้นตอนที่ 2: สิ่งที่คุณต้องการ
- ขั้นตอนที่ 3: เบิร์น Bootloader
- ขั้นตอนที่ 4: การสร้างหน่วย
- ขั้นตอนที่ 5: แผนผัง
- ขั้นตอนที่ 6: ซอฟต์แวร์ที่รันออนบอร์ด
- ขั้นตอนที่ 7: วิดีโอคลิปของมินิแอพ 'sm' ที่กำลังรันอยู่
วีดีโอ: DemUino - โฮมคอมพิวเตอร์/คอนโทรลเลอร์: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:04
คอมพิวเตอร์ที่ได้รับแรงบันดาลใจจาก Arduino โดย DemeterArt ใช้ประโยชน์สูงสุดจากแป้นพิมพ์ PS2 เก่าของคุณ แฮ็คลงในคอมพิวเตอร์ส่วนบุคคลที่ปรับแต่งเพื่อควบคุมสิ่งต่าง ๆ! ฉันต้องการสร้างคอมพิวเตอร์ที่บ้านของตัวเองมาโดยตลอด สไตล์ย้อนยุค ไม่มีอะไรหรูหรา แต่มีความสามารถพิเศษที่ปรับให้เข้ากับความชอบของฉัน ดังนั้นฉันจึงใช้ atmega328 MCU และชุดพัฒนา Arduino
ให้ฉันระบุว่าโครงการนี้จะใช้เวลานานกว่ามากโดยมีผลลัพธ์ที่น่าสงสัยหากไม่ใช่สำหรับแฟน ๆ ที่มีพรสวรรค์ที่เห็นแก่ตัวน้อยลงจัดหาไลบรารีฟรีแวร์ให้ทุกคนใช้ ขอบคุณทุกคน:-)
เยี่ยมชมเว็บไซต์ของฉันเพื่ออ่านเรื่องราวทั้งหมดและดาวน์โหลดไฟล์ที่เกี่ยวข้องทั้งหมด
www.sites.google.com/site/demeterart
ขั้นตอนที่ 1: คุณสมบัติ
- อ้างอิงจาก ATMEGA328 พร้อมแฟลช 32KB, SRAM 2KB และ EEPROM 1KB
- รองรับโหมดโต้ตอบและแบทช์
- ตัวแก้ไขบรรทัดและโหมดรายการขณะแก้ไข
- 8 อักขระที่กำหนดเองสำหรับกราฟิกผู้ใช้
- 60 ขั้นตอนโปรแกรมหมายเลข 00, …, 99
- 'ถ้า' เงื่อนไข 'ในขณะที่' และ 'สำหรับ' ลูปบวกคำสั่ง 'goto' และ 'ย่อย' สำหรับการแตกแขนง
- นิพจน์เลขคณิตและคณิตศาสตร์พื้นฐานพร้อมการทดสอบบูลีน
- ตัวแปรระบบอนุญาตสำหรับเหตุการณ์หมดเวลา ค่าเฉลี่ย rms ค่าต่ำสุดและสูงสุดจากพินอะนาล็อก ฯลฯ
- ตัวแปรผู้ใช้ 26 ตัวเพื่อโต้ตอบกับตัวแปรระบบและคำสั่ง
- 104 ไบต์ของอาร์เรย์ที่กำหนดแอดเดรสของผู้ใช้หรือจำนวนเต็มสั้น 52 ตัว
- ความสามารถในการอ่าน/เขียนข้อมูลโปรแกรมและโค้ด on-the-fly (ตัวแปร p)
- แอพมินิออสซิลโลสโคปพร้อมตัวละครที่ปรับแต่งสำหรับกราฟิกหลอก
- บันทึกและโหลดโปรแกรมและข้อมูลไปยัง/จาก EEPROM
- โหลด/บันทึกโปรแกรมและตัวแปรจาก/ไปยัง PC
- autoexec ในการโหลดและรันโปรแกรมจาก EEPROM หลังจากการรีเซ็ตแต่ละครั้ง
- 9 GPIO พิน (รวม SPI) พร้อมใช้งานบนตัวเชื่อมต่อ DB15 ภายนอก
- BUZZER สำหรับเอฟเฟกต์เสียง
ขั้นตอนที่ 2: สิ่งที่คุณต้องการ
แป้นพิมพ์ ps/2 แบบเก่าที่หนาพอที่จะติดตั้งตัวแสดงอักขระ pcb LCD (รูปแบบขนานยอดนิยม) ชิป MAX232 สำหรับพอร์ต RS232 atmel atmega328PU ชุดพัฒนา Arduino พร้อม IDE 1.0.1 LM7805 regulator 5V วงจรเรียงกระแสสะพาน Buzzer, ตัวเก็บประจุ, ปุ่มกดรีเซ็ต, ขั้วต่อ ฯลฯ
ขั้นตอนที่ 3: เบิร์น Bootloader
ดังนั้นหลังจากซื้อชิป atmega328PU ที่ 'ว่างเปล่า' ก็จะต้องตัดสินใจ ฉันใช้โปรแกรมเมอร์พิเศษทั้งภายนอกหรือ ISP หรือฉันจะเบิร์น Arduino bootloader ลงในสัตว์ร้ายและทำให้หน่วยโปรแกรมสามารถตั้งโปรแกรมผ่านพอร์ต UART ได้หรือไม่ ฉันเลือกอย่างหลังเพื่อทำให้ชีวิตของฉันง่ายขึ้น! bootloader ใหม่นี้ใช้หน่วยความจำแฟลชเพียงครึ่งกิโลไบต์ ทำให้เหลือโปรแกรมผู้ใช้และข้อมูลสแตติกมากกว่า 31KB เล็กน้อย ไซต์ Arduino ครอบคลุมกรณีของการเบิร์น bootloader บนชิปใหม่ เมื่อพูดถึงการใช้ avrdude เพื่อเบิร์นชิปเป้าหมายจริง ๆ กระบวนการล้มเหลวด้วยข้อผิดพลาดที่ระบุ ID ที่ไม่ถูกต้องสำหรับ MCU โดยเฉพาะ ดังนั้นหลังจากการค้นหาบางอย่าง ฉันพบผู้ชายคนนี้ที่เข้าใจถูก และฉันก็ทำตามขั้นตอนของเขา ข้อแตกต่างเพียงอย่างเดียวคือ 2 ไฟล์การกำหนดค่า avrdude.conf และ boards.txt ที่ avrdude และ arduino IDE 1.0.1 ต้องการเพื่อให้เป็นไปได้ หลังจากคัดลอกไฟล์ 2 ไฟล์ไปยังตำแหน่งที่เหมาะสม (สำรองไฟล์เก่าก่อน) ตัวเลือก 'arduino328' จากเครื่องมือ -> บอร์ดพร้อมใช้งานและ avrdude ดำเนินการเบิร์นฟิวส์และบูตโหลดเดอร์ ตอนนี้ชิปพร้อมที่จะตั้งโปรแกรมจากภายในเครื่องใหม่แล้ว!
ขั้นตอนที่ 4: การสร้างหน่วย
บอร์ดเจาะรูพร้อมแถบทองแดงถูกใช้เป็นวิธีประกอบที่รวดเร็วพร้อมซ็อกเก็ต DIP สำหรับชิป คุณก็รู้ เผื่อไว้! จากนั้นรูและรอยตัดสำหรับขั้วต่อ ปุ่มรีเซ็ต และจอ LCD ถูกเปิดผ่านแป้นพิมพ์พลาสติกที่ทนทานและหนาเป็นพิเศษ ใช่ นั่นสร้างเมื่อ 25 ปีที่แล้ว! มีสายไฟที่เล็ดลอดออกมาจาก pcb ไปยังอุปกรณ์ต่อพ่วงต่างๆ การตรวจสอบความต่อเนื่องเบื้องต้นแล้วต่อแหล่งจ่ายไฟโดยไม่มีชิปที่บรรจุอยู่เพียงเพื่อตรวจสอบซ็อกเก็ตสำหรับแรงดันไฟฟ้าที่เหมาะสม จากนั้นมาในไอซี 2 ตัวและเคสคีย์บอร์ดถูกปิดอย่างแน่นหนาโดยใช้สแน็ปพลาสติกที่ด้านล่าง หน่วยพร้อมที่จะเขียนภาพร่างในคอนโทรลเลอร์!
ฉันขอแนะนำให้ใช้ตัวเก็บประจุแบบไม่มีขั้ว 1uF/16V สำหรับปั๊มชาร์จ MAX232 ค้นหาตัวเก็บประจุดีคัปปลิ้ง 100nF สำหรับชิปสองตัวให้ใกล้เคียงกับพิน VCC และ GND ที่เกี่ยวข้องมากที่สุด ใช้การเชื่อมต่อแบบดาวสำหรับกำลังไฟฟ้าและกราวด์ที่อ้างอิงถึงตัวควบคุม LM7805 สวิตช์ 2 อาจเป็นจัมเปอร์ขึ้นอยู่กับการติดตั้ง แต่ควรมีไว้เพื่อหลีกเลี่ยงการรีเซ็ต MCU ที่ไม่ต้องการจากโฮสต์พีซีในบางกรณีเท่านั้น ไม่ว่าในกรณีใด สวิตช์จะต้องปิดเพื่อให้ Arduino IDE เขียนสเก็ตช์ผ่านการรีเซ็ต MCU เป้าหมาย (พิน DTR ของ RS232) ในกรณีของฉัน การเชื่อมต่อเป็นแบบถาวร (ปิดเสมอ) ใช้ตัวต้านทานแบบอนุกรมสำหรับออดเพื่อแยกความจุ nF หลายตัวออกจากประตูขับ … คุณไม่มีทางรู้หรอก.. ค้นหา XTAL และตัวเก็บประจุโหลด 18-22pF ให้ใกล้เคียงพินที่เกี่ยวข้องของคอนโทรลเลอร์มากที่สุด
เนื่องจากบริดจ์เรกติไฟเออร์ หน่วยอาจได้รับพลังงานจากทั้งอะแดปเตอร์ไฟ AC และ DC ในกรณีของ DC จะมีแรงดันตก 1.5 V ระหว่างอะแด็ปเตอร์และอินพุตไปยังตัวควบคุม ในกรณีของ AC อินพุตของตัวควบคุมจะอยู่ที่ประมาณ 1.4 เท่าของเอาต์พุต RMS ของอะแดปเตอร์หรือน้อยกว่าเนื่องจากการโหลด หากความแตกต่างระหว่างอินพุตของตัวควบคุมและเอาต์พุต (+5V) มีขนาดใหญ่ พูด 7 โวลต์ พลังงานที่ใช้โดยตัวควบคุมจะเข้าใกล้ 0.5 วัตต์ และควรใช้ฮีทซิงค์ขนาดเล็กเพื่อติดตั้งชิป (มีให้) มีที่ว่างสำหรับการทำงานเป็นเวลานานในสภาพอากาศร้อน
ฟิวส์อินพุต AC สามารถเลือกได้ขึ้นอยู่กับโหลดภายนอกของคุณ (ผ่านขั้วต่อ DB15) ปัจจัยอื่นๆ ที่ส่งผลต่อการเลือกฟิวส์ ได้แก่ ตัวต้านทานจำกัดกระแสสำหรับไฟแบ็คไลท์ LED ของ LCD, ตัวเก็บประจุแบบบริดจ์สำหรับกระแสไฟชาร์จ และความจุกระแสไฟของหม้อแปลงไฟฟ้าที่จ่าย
ขั้นตอนที่ 5: แผนผัง
ขั้นตอนที่ 6: ซอฟต์แวร์ที่รันออนบอร์ด
นี่คือภาพร่างที่ทำให้ทุกอย่างเกิดขึ้น… และ 32KB ไม่เพียงพอ! คุณสามารถใช้มันโดยไม่มีการแก้ไข ในกรณีนี้ฉันจะขอบคุณสำหรับการอ้างอิงถึงชื่อของฉัน หรือเปลี่ยนแปลงได้ตามต้องการและลืมฉัน;-)
นี่คือเอกสารโดยละเอียดเกี่ยวกับเครื่อง
สรุปคำสั่งและนิพจน์
“: บรรทัดความคิดเห็นที่ไม่สามารถพิมพ์ได้
ai: แนบอินเตอร์รัปต์ 0 (พิน D2)
ar: อ่านอนาล็อก
aw: 'การเขียนแบบแอนะล็อก' ต่อ Arduino หรือมากกว่า pwm
ca: การจับภาพแบบอะนาล็อกในอาร์เรย์
cl: ล้างการแสดงผล cno: return *Prgm index of line number
di: รอชุดพัลส์และวัดระยะเวลาและระยะเวลา
dl: ล่าช้า
ทำ: ร่วมกับ 'wh'
dr: ดิจิตอลอ่านพินใดก็ได้
dw: ดิจิตอลเขียนพินใด ๆ
ed: โหมดตัวแก้ไข / โหลดโปรแกรมจาก PC / กำหนดหมายเลขใหม่
el: ฟังก์ชั่นการเข้าถึง EEPROM
end: คำสั่ง END ของโปรแกรม
ensb: สิ้นสุดรูทีนย่อย
es: ฟังก์ชั่นการเข้าถึง EEPROM
fl: ตัวกรองค่าเฉลี่ยเคลื่อนที่อย่างง่าย
fr: for-next loop (fr-nx)
go: ข้ามไปที่ขั้นตอนของโปรแกรม
gosb: ดำเนินการดำเนินการกับรูทีนย่อยต่อไป
gt: รอการป้อนข้อมูลของผู้ใช้
if: ทดสอบเงื่อนไขแล้วข้ามไปที่ขั้นตอน
io: GPIO 1-9 บิต
ld: โหลด/รวมโปรแกรมจาก EEPROM
lp:: คีย์บอร์ดควบคุมลูปในโหมดโต้ตอบ
ls: รายการโหมด / ส่งโปรแกรมไปยังพีซีทีละบรรทัด
ml: ได้เวลา
mm: แสดงหน่วยความจำว่าง
nos: แปลงตัวเลขเป็นสตริง
nx: ร่วมกับ 'fr'
pl: พล็อตอาร์เรย์ cxx
pm: ตั้งพินสำหรับเข้าหรือออก
pr: พิมพ์ข้อความหรือค่าหรืออักขระที่กำหนดเอง
rgc: คำสั่งคัดลอกช่วงสำหรับอาร์เรย์
rgs: range set คำสั่งสำหรับ arrays
rn: รันโปรแกรมใน RAM
rs: ซอฟต์รีเซ็ต
rx: รับตัวละครผ่าน RS232
si: อินพุตอนุกรมแบบซิงโครนัสพร้อมนาฬิกาและหมุดข้อมูล
sm: แอพ mini oscilloscope sno: แปลงสตริงเป็นตัวเลข
ดังนั้น: เอาต์พุตอนุกรมแบบซิงโครนัสพร้อมนาฬิกาและหมุดข้อมูล
sub: ประกาศรูทีนย่อย
sv: บันทึกโปรแกรมไปที่ EEPROM
tn: เสียงบี๊บ
tx: ส่งหมายเลขผ่าน RS232
wh: do-while loop ใช้ร่วมกับ 'do'
ขั้นตอนที่ 7: วิดีโอคลิปของมินิแอพ 'sm' ที่กำลังรันอยู่
เยี่ยมชมเว็บไซต์ของฉันเพื่ออ่านเรื่องราวทั้งหมดและดาวน์โหลดไฟล์ที่เกี่ยวข้องทั้งหมด
www.sites.google.com/site/demeterart
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
เครื่อง Rube Goldberg 11 ขั้นตอน: 8 ขั้นตอน
เครื่อง 11 Step Rube Goldberg: โครงการนี้เป็นเครื่อง 11 Step Rube Goldberg ซึ่งออกแบบมาเพื่อสร้างงานง่ายๆ ในรูปแบบที่ซับซ้อน งานของโครงการนี้คือการจับสบู่ก้อนหนึ่ง