สารบัญ:

สภาพแวดล้อมการพัฒนาสลัม: 5 ขั้นตอน
สภาพแวดล้อมการพัฒนาสลัม: 5 ขั้นตอน

วีดีโอ: สภาพแวดล้อมการพัฒนาสลัม: 5 ขั้นตอน

วีดีโอ: สภาพแวดล้อมการพัฒนาสลัม: 5 ขั้นตอน
วีดีโอ: เถื่อน Walk : คลองเตยไม่น่าอยู่? โดย ชาญชัย เอื้อวศินธร | a day experience 2024, กรกฎาคม
Anonim
สภาพแวดล้อมการพัฒนาสลัม
สภาพแวดล้อมการพัฒนาสลัม

ไม่นานมานี้ ฉันโพสต์วิธี "el cheapo" ที่รวดเร็วและสกปรกในการเริ่มต้นเขียนโปรแกรมชิปซีรีส์ Atmel AVR: Ghetto Programmer (เวอร์ชัน 1.0) ตั้งแต่นั้นมา ฉันได้ vamped, re-vamped และปรับปรุงการตั้งค่าของฉัน คิดว่าน่าจะดีถ้าได้บันทึกไว้ เป้าหมายคือการได้รับสภาพแวดล้อมการสร้างต้นแบบไมโครคอนโทรลเลอร์ที่ใช้ AVR ที่ยืดหยุ่น กะทัดรัด พกพาสะดวก ใช้งานได้ทุกที่ ในราคาถูก (ish) ดังนั้นโดยไม่ต้องกังวลใจต่อไป นี่คือ Ghetto Development Environment (GDE) (เวอร์ชัน 1.2)

ขั้นตอนที่ 1: Kit

The Kit
The Kit

ชุดพื้นฐานประกอบด้วยสิ่งต่อไปนี้: โปรแกรมเมอร์ USB เพราะคุณต้องการโปรแกรมไมโครคอนโทรลเลอร์จากแล็ปท็อปของคุณได้ทุกที่ และเนื่องจาก USB เป็นแหล่งกำเนิด +5v. Programming cradles ที่มีประโยชน์มาก หนึ่งอันสำหรับชิปแต่ละประเภทที่คุณกำลังเล่นด้วย สำหรับฉัน นั่นหมายถึงอันที่มี 8 พิน (ATtiny13, 15), อันที่มี 20 พิน (ATtiny 2313) และอีกอันที่มี 28 พิน (ATmega8) ไฟกระพริบ เมื่อมีสิ่งผิดปกติเกิดขึ้นกับรหัสของคุณ จะไม่มีอะไรชัดเจนเหมือนการติดไฟเพื่อวินิจฉัย นอกจากนี้โปรแกรมไฟกระพริบ LED ยังเป็น "Hello World" ของไมโครคอนโทรลเลอร์อีกด้วย เขียงหั่นขนม มันเป็นชุดพัฒนาหลังจากทั้งหมด

ขั้นตอนที่ 2: โปรแกรมเมอร์ USB

โปรแกรมเมอร์ USB
โปรแกรมเมอร์ USB
โปรแกรมเมอร์ USB
โปรแกรมเมอร์ USB

ในโปรแกรมเมอร์สลัม (v.1.0) ฉันใช้โปรแกรมเมอร์พอร์ตขนาน ดีมากเพราะใช้ง่ายและราคาถูกและรวดเร็ว แต่แล็ปท็อปของฉันไม่มีพอร์ตขนาน ฉันเคยลองสร้างโปรแกรมเมอร์พอร์ตอนุกรมมาบ้างแล้ว แต่จริงๆ แล้ว มันซับซ้อนพอๆ กับเวอร์ชัน USB และแม้แต่พอร์ตอนุกรมก็หายาก อันที่จริงแล็ปท็อปของฉันมี USB เท่านั้น USB มันเป็นอย่างนั้น เมื่อมองไปรอบๆ โปรแกรมเมอร์ USBTiny นั้นค่อนข้างเรียบง่ายและใช้งานได้กับเครื่องมือ GNU/AVR-GCC ฟรี ทำด้วยตัวเองหรือซื้อชุดอุปกรณ์ วิธี DIY นั้นดีถ้าคุณสามารถตั้งโปรแกรม ATTiny2313 (พร้อมโปรแกรมเมอร์แบบขนาน) ได้แล้ว และมีคริสตัล 12MHz นั่งอยู่รอบๆ USBTiny Page นำเสนอพื้นฐาน เขายุติสายเคเบิลการเขียนโปรแกรมด้วยพอร์ตขนาน แต่ฉันจะจบด้วยส่วนหัว 6 พินมาตรฐานถ้าฉันเริ่มใหม่อีกครั้ง (ทำไม? เพราะเป็นมาตรฐาน) นี่คือพินเอาต์ของเขา และตรวจสอบภาพด้านล่างสำหรับเลย์เอาต์ของสายเคเบิล PD3 - MISOPD5 - ResetPD6 - SCKPD7 - MOSI หากคุณสร้างของคุณเอง โปรดเรียนรู้จากประสบการณ์ของฉันและใส่ไว้ในกล่องพลาสติกที่สวยงาม หากไม่เป็นเช่นนั้น คริสตัล 12MHz จะหยุดทำงานในที่สุด นี่คือเหตุผลที่ฉันใช้…วิธีที่รวดเร็วและสง่างามคือชุด USBtinyISP ของ Ladyada มันจะทำให้คุณกลับมาที่ 22 ดอลลาร์ แต่คุณจะได้ PCB ที่ดี ATTiny2313 ที่ตั้งโปรแกรมไว้ล่วงหน้า และกล่องที่สะอาดพร้อมสายเคเบิลที่ดี ชิ้นส่วนดิบมีราคา 15-16 ดอลลาร์อยู่แล้ว และคุณไม่จำเป็นต้องเรียก Digikey แล้วกังวลเกี่ยวกับการเขียนโปรแกรม 2313 ของคุณเอง ใช้เวลา 30 นาที - 1 ชั่วโมงในการประสานทั้งหมดเข้าด้วยกัน ฟุ่มเฟือย เชื่อฉัน. (ไม่มีสังกัด ลูกค้าพอใจ) และเพิ่งเห็นลิงค์นี้ Ladyada's AVR Tutorial ซึ่งถือว่าค่อนข้างดีสำหรับฉัน (และโปรดทราบว่าการออกแบบของ Ladyada และ USBTiny ดั้งเดิมนั้นใช้รหัสระบุผลิตภัณฑ์ USB ที่แตกต่างกัน คุณจะต้องค้นหาสตริง ID และคอมไพล์ avrGCC ใหม่ หากคุณสลับไปมาระหว่างทั้งสอง ฉันคิดว่ามีคำแนะนำในหน้าเว็บที่เกี่ยวข้อง.)

ในกรณีที่คุณอยู่บนระบบ Ubuntu Linux และใช้โปรแกรมเมอร์ USBTiny นี่คือคำสั่งที่จะทำให้ toolchain ทั้งหมดทำงาน:sudo apt-get install build-essential avr-libc binutils-avr gcc-avr avrdude (ทดสอบแล้ว บน Hardy Heron) หากคุณมี AMD64 arch คุณอาจต้องการ: byacc libusb-dev flex bison libc6-devand จากนั้นให้คอมไพล์ AVRdude ด้วยมือ:(wget https://download.savannah.gnu.org/releases/avrdude/ avrdude-5.5.tar.gz tar xvzf avrdude-5.5.tar.gz cd avrdude-5.5 ## แพทช์ที่จำเป็นสำหรับ AMD64: wget https://savannah.nongnu.org/patch/download.php?file_id=14754 patch -p1 < avrdude-5.5.usbtiny.64bit.patch./configure make && make install sudo avrdude -p attiny2313 -c usbtiny ## to test) หากคุณเห็นบางอย่างเช่น "avrdude: อุปกรณ์ AVR เริ่มต้นและพร้อมที่จะยอมรับคำแนะนำ" แสดงว่าคุณ เสร็จแล้ว ใช่แล้วและให้เครดิตกับ Wendel Oskay สำหรับไดอะแกรมของ pinout ของโปรแกรมเมอร์มาตรฐาน

ขั้นตอนที่ 3: แท่นเขียนโปรแกรม

แท่นเขียนโปรแกรม
แท่นเขียนโปรแกรม
แท่นเขียนโปรแกรม
แท่นเขียนโปรแกรม
แท่นเขียนโปรแกรม
แท่นเขียนโปรแกรม

ใน Ghetto Programmer v.1.0 ฉันใช้แท่นเขียนโปรแกรมที่มีอินพุตพินที่ไม่ได้มาตรฐานและมีส่วนหัวของพินสำหรับเสียบปลั๊ก หมุดที่ไม่ได้มาตรฐานเป็นความคิดที่ไม่ดี เพราะคุณจะไม่สามารถใช้เปลของคุณกับโปรแกรมเมอร์ของคนอื่นได้ และในทางกลับกัน หัวเข็มหมุดตัวเมียนั้นสนุกเพราะคุณสามารถเสียบ LED เข้ากับมันได้โดยตรง แต่เมื่อฉันเริ่มทำอะไรที่ซับซ้อนกว่านี้ ฉันก็ต้องต่อสายไฟเข้ากับเขียงหั่นขนมอยู่ดี ด้วยเปลใหม่ ฉันตัดคนกลางออก การเดินสายไฟน้อยลง = ดีขึ้น แต่ข้อได้เปรียบที่ใหญ่ที่สุดของการออกแบบแท่นวางนี้คือ คุณสามารถเสียบแท่นวางได้เกือบทุกที่ที่คุณสามารถเสียบชิป AVR ได้ นี่กลายเป็นเรื่องใหญ่ แทนที่จะออกแบบวงจร ISP ให้กับหุ่นยนต์ของคุณหรืออะไรก็ตาม คุณเพียงแค่เสียบแท่นวางนี้เข้ากับซ็อกเก็ต IC จากนั้นคุณสามารถตั้งโปรแกรม/โปรแกรมสมองของหุ่นยนต์ซ้ำในวงจรได้ เมื่อคุณพัฒนาเสร็จแล้ว ให้เสียบ AVR เข้าไปโดยตรงและเข้าสู่ส่วนถัดไป การทำแท่นวางนั้นง่ายพอ สิ่งที่คุณต้องทำคือเชื่อมต่อพินจากส่วนหัวแบบ 6 ขาไปยังตำแหน่งที่ถูกต้อง ชิป คราวนี้ฉันใช้ PCB แบบสลัก คุณสามารถต่อสายไฟทั้งหมดบนแผ่นไม้อัดได้เช่นเดียวกัน แท่นวาง ATTiny13/15 ทำด้วยซ็อกเก็ตแบบพันลวดแบบ 8 พิน ฉันรักสิ่งเหล่านี้ ง่ายต่อการใส่เศษลงในรูกลมที่สวยงาม และขายาวช่วยเพิ่มระยะห่างบนเขียงหั่นขนม ฉันสร้างร่องรอย PCB ด้วยมือเปล่าด้วย Sharpie แท่นวาง ATTiny2313 ทำด้วย Eagle และวิธีการถ่ายโอนโทนเนอร์กระดาษเลเซอร์ ฉันหาซ็อกเก็ตแบบพันลวด 20 พินไม่เจอ ดังนั้นฉันจึงต้องใช้ซ็อกเก็ตปกติ 20 พินที่บัดกรีบนส่วนหัวพิน 10 พิน 2 อัน ลงเอยด้วยเปลที่มีขาสั้นกว่า แต่ใช้งานได้ แผนผังและ PDF ที่ฉันใช้สำหรับวงจรอยู่ด้านล่าง ทั้งสองฉันต้องต่อสายพิเศษด้วยมือ นั่นคือชีวิต.

ขั้นตอนที่ 4: ไฟกะพริบ

ไฟกระพริบ
ไฟกระพริบ
ไฟกระพริบ
ไฟกระพริบ

ความเรียบง่ายนั่นเอง ฉันจะไม่พูดถึงสิ่งเหล่านี้เลยหากพวกเขาไม่มีประโยชน์

บัดกรีตัวต้านทาน (150-220 โอห์มเป็นค่าที่ดี) ตรงไปยังตะกั่วเชิงลบของ LED บางตัว มันจะสว่างขึ้นจากประมาณ 2v-6v โดยไม่เกิดไฟดับ และตัวต้านทานช่วยให้คุณจำได้ว่าด้านใดเป็นลบ ติดไว้ทุกที่ที่คุณต้องการรู้ว่ามีไฟฟ้า ดูว่าทรานซิสเตอร์ตัวนั้นถูกเป่าหรือไม่ เปลี่ยนก้อนแบตเตอรี่ nicad ให้เป็นไฟกลางคืนที่มีอายุการใช้งานยาวนาน ใช้อินเทอร์เฟซรหัสกะพริบตาเพื่ออ่านค่าจากไมโครโปรเซสเซอร์ของคุณ (อย่างช้าๆ) หรือทำเป็น 8 อันแล้วคุณมีจอแสดงผลแบบหนึ่งไบต์ (พร้อมสารออกฤทธิ์ในดวงตาของ Cylon) สร้างมันขึ้นมา ทำให้หลายๆ. ทำให้พวกเขาตอนนี้

ขั้นตอนที่ 5: จุดจบ

ตอนจบ
ตอนจบ

ดังนั้น "ระบบ" นี้จึงตอบสนองความต้องการด้านการพัฒนาเกือบทั้งหมดของฉัน เป็นแบบโมดูลาร์ ปรับขนาดได้ กะทัดรัด และพกพาได้

ตัวอย่างเช่น ฉันทำกิจวัตรสำหรับการเรียกใช้ข้อความเลื่อนบนจอแสดงผล 4 หลัก (หน้าแนะนำ) บนเครื่องบินระหว่างทางไปงานแต่งงานของเพื่อน ทำเรือตัดน้ำแข็งที่ดีกับพนักงานต้อนรับบนเครื่องบิน โพเทนชิออมิเตอร์นี้ -> ADC -> การตั้งค่าแอมมิเตอร์ที่ขับเคลื่อนด้วย PWM ถูกทำเป็นบอร์ดทดลอง เข้ารหัส และดีบั๊กทั้งหมดระหว่างโซฟากับโต๊ะอาหารของฉัน และทำความสะอาดภายใน 2 นาทีเมื่อมีเพื่อนมา (เป็นส่วนตั้งเวลาปลุกของสิ่งที่จะเป็นนาฬิกาเมตร) ฉันนำการตั้งค่าไปใช้ในบางครั้งเมื่อฉันรู้สึกอยากเล่น ใส่ของเล็กๆ น้อยๆ ไปด้วย (ตัวเก็บประจุและตัวต้านทานบางตัว สายต่อ ทรานซิสเตอร์ ลำโพงเพียโซ โฟโตไดโอด ไมโครโฟน มอเตอร์ขนาดเล็ก ฯลฯ) และคุณจะนำหน้า MacGuyver ไปไกลถึงขนาดไม่ตลกเลย

แนะนำ: