Digispark ATtiny85

เข้าออฟฟิสวันนี้ได้พัสดุมาอีกล้อตตึง เปิดออกมามีทั้ง Relay Module ที่ลงบอร์ดเรียบร้อยไว้ต่อกับ Wemos D1 mini , บอร์ด ATtiny85 และบอร์ดสุดท้าย STM32 ตอนแรกก็ว่าจะเก็บลงกระป๋องแล้วค่อยหาเวลามาเล่น วันนี้ลงไปกินข้าวตอน 11.30 ไม่ทัน เพราะลงเที่ยงทีไรคนเยอะทุกที

 

ว่าแล้วก็หยิบมาลองซะหน่อย กะว่าจะลอง STM32 ก่อน อ้าววว ขายังไม่ได้บัดกรีลงบอร์ด Serial to USB ก็อยู่ที่บ้าน ส่วนที่ไม่ได้ซื้อ ST Link มาตั้งแต่แรกเลยก็เพราะอ่านเจอว่าค่อนข้างมีปัญหากับเครื่อง mac วันนี้ก็เลยข้าม STM32 ไปก่อนละกัน มาเล่นน้องเล็กบอร์ดจิ๋วอย่าง ATtiny85 กันดีกว่า

เทียบขนาดกับเหรียญบาท

 

จากซ้ายไปขวา ESP-01, ESP-12E, ATtiny85, Nodemcu, Pycom Lopy

 

อย่างที่เห็นกันในรูปแหละครับ เล็กมากกก ตอนจับเสียบเข้า usb port ของเครื่องยังกลัวทำหักเลยครับ เทียบขนาดกับอุปกรณ์ตัวอื่นๆแล้ว มาดู Spec กันซะหน่อย

  • Support for the Arduino IDE 1.0+ (OSX/Win/Linux)
  • Power via USB or External S
  • ource – 5v or 7-35v (12v or less recommended, automatic selection)
  • On-board 500ma 5V Regulator
  • Built-in USB
  • 6 I/O Pins (2 are used for USB only if your program actively communicates over USB, otherwise you can use all 6 even if you are programming via USB)
  • 8k Flash Memory (about 6k after bootloader)
  • I2C and SPI (vis USI)
  • PWM on 3 pins (more possible with Software PWM)
  • ADC on 4 pins
  • Power LED and Test/Status LED

เรียกได้ว่าจิ๋วแต่แจ๋วเหมือนกันนะเนี่ย สำหรับงานที่ไม่ต้องใช้ i/o มากๆ ไม่จำเป็นต้องใช้ WiFi และอยากได้ mcu ขนาดเล็กมี usb ในตัว (แต่ถ้าต้องการ WiFi และใช้ i/o ไม่เกิน 2 Port ก็ใช้ ESP-01 แทน)

 

คราวนี้เราจะมาเริ่มต้นการใช้งานกันละ เริ่มแรกก็ Add Board กันก่อน ซึ่งตัว IDE ที่ใช้ในการพัฒนาก็เป็น Arduino IDE เหมือนเดิมครับ โดยเข้าไปที่ Arduino Preference แล้วแปะ URL ด้านล่างนี้เพิ่มเข้าไปในส่วนของ Additional Boards Manager URLs ครับ ใครที่มีใส่บอร์ดอื่นอยู่ก่อนหน้าก็ใส่ , (comma) กั้นระหว่าง URL ได้ครับ


http://digistump.com/package_digistump_index.json

 

จากนั้นก็เข้าไปที่ Tools –> Board –> Boards Manager แล้ว Search คำว่า Digispark จากนั้นก็ทำการ Install เหมือนปกติที่เรา Add Board อื่นๆเข้ามาครับ

 

เมื่อติดตั้งเสร็จเรียบร้อยแล้วก็พร้อมทดลองโค้ดแรกของการใช้งาน Digispark ATtiny85 กันเลย ซึ่งถ้าเป็นการเขียนโปรแกรมอื่นๆ เรามักจะเริ่มต้นด้วย Hello World แต่ถ้าเป็นการเขียนโปรแกรมเกี่ยวกับ Microcontroller แล้วหละก็ Code แรกที่เรามักจะใช้ทดลองเลยว่าบอร์ดทำงานมั้ย memory หรือ i/o มีปัญหามั้ยก็คือทำไฟกระพริบครับ เรามาดูตัว Code กัน


// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(0, OUTPUT); //LED on Model B
  pinMode(1, OUTPUT); //LED on Model A   
}

// the loop routine runs over and over again forever:
void loop() {
  digitalWrite(0, HIGH);   // turn the LED on (HIGH is the voltage level)
  digitalWrite(1, HIGH);
  delay(1000);               // wait for a second
  digitalWrite(0, LOW);    // turn the LED off by making the voltage LOW
  digitalWrite(1, LOW); 
  delay(1000);               // wait for a second
}

Digispark ATtiny85 ที่กระจายกันอยู่ในตลาดมีทั้ง Model A และ Model B ซึ่งขาที่ต่อกับ LED บนบอร์ดจะอยู่ต่างกัน ที่ผมได้มาเป็น Model A คราวนี้เราลองมา Compile แล้ว Upload Code กัน ใน Arduino IDE อย่าลืมเลือกบอร์ดให้ถูกด้วยนครับ ซึ่งใช้เป็น Digispark – Default 16.5MHz

 

 

ขั้นตอนในการ Upload อาจจะต่างจากบอร์ดอื่นๆอยู่นิดนึงตรงที่ เมื่อกด Upload แล้วเราค่อยนำบอร์ดของเราเสียบเข้าไปที่ช่อง USB แทนที่จะเสียบคาไว้แต่แรก ใครที่เสียบค้างอยู่ก็ดึงออกเสียบใหม่ครับ บางครั้งต้องเปลี่ยน port ก็มี ซึ่งถ้า Upload เสร็จก็จะขึ้น 100%  Complete อย่างรูปด้านบนนี้

 

 

เรียบร้อยกับโปรแกรมแรกไฟกระพริบโดยใช้ ATtiny85 ประเด็นแรกที่เจอเลยคือเรื่องของการ debug การทำงานต่างๆ จะไม่เหมือนกับ Arduino หรือ Nodemcu ที่ต่อผ่าน Serial to USB เพื่อใช้ส่งค่าสถานะการทำงานต่างๆแล้วดูผ่าน Serial Monitor ของ Arduino IDE ถ้าโปรแกรมมีการทำงานที่ซับซ้อนขึ้นแล้วต้องการอ่านค่าที่ได้ อาจจะต้องใช้ Software Serial ช่วยในการส่งค่าย้อนกลับมา แล้วมาอ่านค่าจากอีก port แทน ไว้ทดลองแล้วเด่วค่อยมา update กันอีกที วันนี้พอแค่นี้ก่อนละกันครับ

 

ข้อมูลเพิ่มเติม [Digispark USB Development Board]

 

 

Author: Joe D.S.
Just a man on earth

1 thought on “Digispark ATtiny85

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.