โปรแกรม ATTiny ได้ง่ายๆ ด้วย Arduino Mega

สวัสดีครับ
วันนี้กำลังจะเริ่มรันโปรเจ็กบอลลูนอีกครั้งหลังจากที่หยุดไปนานเพราะเจ้างานว่างแล้ว และผมสนใจจะเพิ่ม ATTiny เข้าไปเพื่อลดจำนวน Pin ของ Raspberry Pi ก็เลยลองเอา ATTiny มาลองโปรแกรมเข้าไปดูครับ

ATTiny จริงๆ มันก็คือ chip microcontroller ตัวหนึ่งจาก Atmel นั่นแหละครับ แต่มีขนาดเล็กกว่ากันเยอะ ใช้พื้นที่ไม่มาก แต่ก็ทำงานได้ไม่เยอะสักเท่าไหร่เพราะ memory มันมีน้อยเช่นกัน (ไม่แน่ใจว่า 10 kb หรือเปล่านะครับ) เหมาะสำหรับควบคุมงานง่ายๆ เช่นอ่านค่าจาก sensor ไปเป็น I2C ไว้ส่งค่าเข้า uC ใหญ่อีกที อย่างนี้เป็นต้น

การใช้งาน ในที่นี้ก็ไม่ยุ่งยากมากครับ มีแค่ Arduino ตัวหนึ่งกับสายไฟสี่ห้าเส้นและ cap ตัวหนึ่งก็โปรแกรมได้แล้วครับ

ขั้นตอนหลักๆ ก็ไม่มีอะไรมาก เริ่มต้นก็เปิดคอม เปิดเฟซบุ๊ก สั่ง Arduino แล้วก็เลิกทำ ไม่ใช่ล่ะ

  1. Download Arduino IDE และติดตั้ง ATTiny board firmware ลงไปครับ (วิธีการ follow ตามลิงคได้เลยครับ)
  2. Upload Arduino ISP เข้าบอร์ดแม่ที่ใช้เป็นโมเด็มลงไปครับ (ตัวโปรแกรมหาได้ที่ File > Example > Arduino ISP > Arduino ISP ตั้งค่าบอร์ดแม่แล้วิัพได้เลยครับ)
  3. ต่อสายตามรูปแบบ SPI ไปยัง ATTiny ตามลิงค์ได้เลย บอร์ดแต่ละแบบจะต่อไม่เหมือนกัน แต่ฝั่ง ATTiny จะเป็นตามตารางครับ
    SPI pin (Arduino Mega Pin)ATTiny Pin
    MOSI (51)5
    MISO (50)6
    SCK (52)7
    V+8
    Ground4

    และก็ต่อขา RESET (ATTiny pin 1) กับขา 10 ครับ (ตายตัวทุกบอร์ด แต่เปลี่ยนได้ตอนอัพโหลด Arduino ISP บรรทัดที่ 73  ตรง #define RESET)
    อ้อ! ถ้าให้ต่อ Cap 10 µF ระหว่างขา ATTiny 1 กับ ground ด้วย จะลดปัญหาอัพไม่ผ่านได้ครับ

    การโยงสายที่ใช้ในการทดลอง

    การโยงสายที่ใช้ในการทดลองจาก Arduino Mega ไปยัง ATTiny85

    ATtiny45-85 Pin

    ATtiny45-85 Pin

  4. เขียนโปรแกรมเข้า ATTiny โดยตั้งค่าดังนี้ครับ :
    Board: ATTiny
    Processor: ATTiny85
    Clock: 1 MHz (internal) –> ตรงนี้อาจจะแก้เป็น 8 MHz ได้นะครับ ต้องลองดู
    Port: เลือกที่ต่อกับ Arduino ครับ
    ด้านล่างเป็นตัวอย่างโปรแกรมที่ผมลงไป

ปกติเวลาอัพโหลดจะขึ้น Error บ้าง แต่ส่วนใหญ่เป็น error define ค่าซ้ำกัน ไม่กังวล อัพแล้วไฟกระพริบเป็นอันใช้ได้

 

เท่านี้กาวก็พร้อมดม เอ้ย! ATTiny ก็พร้อมใช้งานได้แล้วล่ะครับ

ระหว่างรอเรียน (ซึ่งสุดท้ายก็ยกคลาส) เลยเอา ATTiny85 มาลองโปรแกรมดูแหม่ นั่งงมตั้งนานกว่าจะสั่งกระพริบไฟได้

Posted by ราชศักดิ์ รักษ์กำเนิด on Thursday, March 17, 2016