วิศวกรรมระดับชิป: การโปรแกรม ATtiny85 ฉบับตัวตึง
คู่มือการโปรแกรม ATtiny นี้จะสอนให้แกขยับจากแค่ "เด็กต่อวงจรทดลอง" ไปเป็น "สายผลิต" ของจริง. พอแกทำโปรเจกต์เสร็จ (อย่างไอ้แค่ไฟกระพริบดวงเดียวเนี่ย) จะเอาบอร์ด Arduino Uno ราคาตั้งหลายร้อยไปยัดใส่เคส 3D print ทำไมวะ? เปลืองที่แถมเปลืองงบฉิบหาย. ทางแก้ที่หล่อกว่าคือใช้ชิป ATtiny85 ตัวละไม่กี่สิบบาทนี่ไงน้อง จัดไปวัยรุ่น!

โปรโตคอลการโปรแกรมแบบ ICSP
จำไว้ว่าชิป ATtiny มันไม่มีพอร์ต USB มาให้ในตัวนะเว้ย! แกจะเอาสายเสียบคอมตรงๆ ไม่ได้. เพราะงั้นแกต้องใช้เครื่องโปรแกรมแยกต่างหาก เช่น USBasp หรือจะเอาบอร์ด Arduino Uno ตัวเก่ามาทำเป็นตัวโปรแกรม (ArduinoISP) ก็ได้
- ไล่ Pinout ให้แม่น: ต่อสาย 6 เส้นจาก USBasp เข้ากับชิป ATtiny บน Breadboard ให้ถูก:
MISO,MOSI,SCK(Serial Clock),RESET,VCC, และGND. ห้ามเสียบสลับนะตัวนี้ เดี๋ยวมีควันพุ่ง! - เซ็ต IDE: ไปเพิ่ม "ATTinyCore" ของ SpenceKonde ใน Boards Manager ของ Arduino IDE ให้เรียบร้อย
- การเบิร์น (The Burn): เลือก "ATtiny85" จากรายการ Board, เลือก Programmer เป็น "USBasp" แล้วกด "Upload" โลด!
- พอกดปุ่มปุ๊บ IDE จะทำการคอมไพล์โค้ด แล้วแทนที่จะส่งผ่าน Serial USB มันจะยัดข้อมูล Binary เข้าไปในหน่วยความจำของชิปตัวจิ๋วผ่าน Pins โดยตรงเลยพี่ชาย!
ข้อจำกัดด้านฮาร์ดแวร์ (รู้ไว้จะได้ไม่เอ๋อ)
- ชิป ATtiny85: มีแค่ 8 ขาเท่านั้นน้องรัก. เป็น GPIO ที่ใช้งานได้จริง 5 ขา, ขาไฟเลี้ยง/GND อีก 2 ขา และขา Reset อีก 1 ขา
- เครื่องโปรแกรม USBasp: เปรียบเสมือนสะพานเชื่อมระหว่างคอมกับชิป
- หน่วยความจำโคตรน้อย: ชิปนี้มี Flash Memory แค่ 8KB เองนะ. อย่าริอ่านไปรันหน้าจอ TFT ใหญ่ๆ หรือยัด Library ซับซ้อนลงไปล่ะ เครื่องมันรับไม่ไหว. มันออกแบบมาสำหรับงานถึกๆ ทนๆ และเรียบง่าย เช่น อ่านค่าปุ่ม, ทำ Timer, หรือคุม LED Strip ก็หล่อเท่แล้ว
ถ้าแกเซียนเรื่องนี้เมื่อไหร่ บอกเลยว่าแกอัปเกรดจากแค่ "Arduino Hacker" กลายเป็น "นักผลิตอุปกรณ์อิเล็กทรอนิกส์" ของจริงแล้วว่ะ... สู้งานนะน้อง!