วิธีติดตั้งไลบรารี (Library) สำหรับ Arduino IDE

วิธีติดตั้งไลบรารี (Library) ให้กับโปรแกรม Arduino IDE ทำได้ 3 วิธีดังนี้

  1. ติดตั้งผ่าน Arduino IDE โดยใช้ Library Manager
  2. ติดตั้งผ่าน Arduino IDE โดยนำเข้าไฟล์ .zip
  3. ติดตั้งโดยนำไลบรารีไปวางไว้ในโฟลเดอร์ libraries

หมายเหตุ : วิธีติดตั้งแบบที่ 2 และแบบที่ 3 ต้องดาวน์โหลดไฟล์ไลบรารีมาไว้ในเครื่องก่อน

ติดตั้งผ่าน Arduino IDE โดยใช้ Library Manager

*** ข้อจำกัด : ไลบรารีที่จะติดตั้งด้วยวิธีนี้ จะต้องมีข้อมูลอยู่ในระบบ library index ของ arduino เท่านั้น ซึ่งหากไม่มีข้อมูลอยู่ในระบบ จะทำให้ค้นหาไลบรารีเพื่อติดตั้งไม่เจอ ***

คลิกที่เมนู Sketch > Include Library > Manage Libraries… เพื่อเปิด Library Manager

รอให้ Library Manager ดาวน์โหลด library index จนเสร็จ จึงจะเริ่มใช้งาน Library Manager ได้ (ช้าเร็วขึ้นอยู่กับความเร็วอินเทอร์เน็ต)

พิมพ์ชื่อไลบรารีที่ต้องการจะติดตั้ง เช่น พิมพ์คำว่า taskscheduler สำหรับการค้นหาไลบรารีชื่อ TaskScheduler

เมื่อเจอไลบรารีที่ต้องการจะติดตั้ง ให้คลิกปุ่ม Install จากนั้นรอจนกว่าไลบรารีนั้นจะถูกดาวน์โหลด และติดตั้งจนเสร็จ

ถ้าติดตั้งเสร็จแล้วจะขึ้นคำว่า INSTALLED ต่อท้ายชื่อไลบรารี (ช้าเร็วขึ้นอยู่กับความเร็วอินเทอร์เน็ต)

ติดตั้งผ่าน Arduino IDE โดยนำเข้าไฟล์ .zip

ดาวน์โหลดไลบรารีที่เป็นไฟล์ .zip มาไว้ในเครื่องคอมพิวเตอร์

คลิกที่เมนู Sketch > Include Library > Add .ZIP Library…

จากนั้นจะมีหน้าต่างย่อยแสดงขึ้นมา ให้เราเลือกไฟล์ไลบรารี .zip ที่เราเพิ่งดาวน์โหลดมา จากนั้นกดปุ่ม OK

เมื่อติดตั้งสำเร็จจะมีข้อความขึ้นมาว่า Library added to your libraries. Check “Include library” menu ตามรูปด้านล่าง

ติดตั้งโดยนำไลบรารีไปวางไว้ในโฟลเดอร์ libraries

ดาวน์โหลดไลบรารีที่เป็นไฟล์ .zip มาไว้ในเครื่องคอมพิวเตอร์

แตกไฟล์ .zip จนได้ออกมาเป็นโฟลเดอร์

ย้ายโฟลเดอร์ที่เพิ่งแตกไฟล์ออกมา ไปไว้ในโฟลเดอร์ libraries

ที่อยู่ของโฟลเดอร์ libraries สำหรับ Linux : /home/your_user/Arduino/libraries

ที่อยู่ของโฟลเดอร์ libraries สำหรับ Windows : C:\Users\your_user\Documents\Arduino\libraries

โดยสามารถตรวจเช็คตำแหน่งของโฟลเดอร์ที่จะนำไปวางได้โดยคลิกที่เมนู File > Preferences

เมื่อหน้าต่าง Preferences แสดงขึ้นมา ให้ดูที่ Sketchbook location นั่นคือตำแหน่งของโฟลเดอร์ที่เราจะนำไลบรารีไปวาง

วิธีดาวน์โหลดไลบรารีจาก GitHub

เข้าไปที่เว็บไซต์ GitHub ในหน้าหลักของโปรเจคไลบรารีที่เราจะดาวน์โหลด เช่น ไลบรารี TaskScheduler ก็เข้าไปที่ลิงค์ https://github.com/arkhipenko/TaskScheduler

หากใครไม่ทราบลิงค์ก็สามารถค้นหาได้จาก Google ด้วยคำค้น “github arduino ชื่อไลบรารี” เช่น “github arduino taskscheduler” หรือ “github arduino bounce2” เป็นต้น

เมื่อเข้าเว็บไซต์ GitHub ในหน้าหลักของโปรเจคไลบรารีได้แล้ว ให้คลิกปุ่ม Clone or download > Download ZIP ตามรูปด้านล่าง

เมื่อการดาวน์โหลดเสร็จสิ้น คุณจะได้ไฟล์ชื่อ library_name-master.zip

จากนั้นคุณสามารถนำไฟล์ .zip นี้ไปใช้ติดตั้งในขั้นตอนการติดตั้งไลบรารีโดยนำเข้าไฟล์ .zip ได้เลย

แต่ถ้าหากคุณจะนำไปใช้ในขั้นตอนการติดตั้งโดยนำไลบรารีไปวางไว้ในโฟลเดอร์ libraries คุณต้องแตกไฟล์ .zip ก่อน

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

สอนใช้ Arduino เช็คสถานะปุ่มกด (Push Button) หรือสวิตซ์ (Switch)

ปุ่มกด (Push Button) หรือสวิตซ์ (Switch) เป็นอุปกรณ์พื้นฐานที่ใช้กันทั่วไปในหลายๆ โปรเจค เพื่อเชื่อมจุด 2 จุดในวงจรให้ถึงกัน มักใช้เพื่อรับข้อมูลจากผู้ใช้ เช่น เมื่อผู้ใช้กดปุ่มให้อุปกรณ์ที่ต่อพ่วงเริ่มทำงาน หรืออาจจะรับสัญญาณจากกลไกต่างๆ เช่น เมื่อวัตถุเคลื่อนที่มาถึงลิมิตสวิตซ์ (Limit Switch) ให้เครื่องจักรหยุดทำงาน เป็นต้น นอกจากนี้ยังสามารถใช้ความรู้นี้ไปประยุกต์ต่อกับเซ็นเซอร์ (Sensor) บางประเภทได้อีกด้วย แต่อย่างไรก็ตามในบทความนี้จะเน้นไปที่การใช้สวิตซ์กดแบบธรรมดาครับ

อุปกรณ์ที่ต้องใช้

  • x1 บอร์ด Arduino (หรือบอร์ดอื่นๆ ที่คล้ายกัน)
  • x1 สวิตซ์ (Switch)
  • x1 ตัวต้านทาน (Resistor) 4.7 – 10K kΩ (ค่าใดก็ได้)
  • x1 สายไฟจั๊มเปอร์
  • x1 บอร์ดทดลอง (Breadboard)

วิธีต่อวงจร

เราจะต่อสวิตซ์เพื่อใช้งานกับ Arduino โดยใช้การต่อวงจรที่เรียกว่า Pull-Up Resistor หรือ Pull-Down Resistor อย่างใดก็ได้ เพื่อป้องกันไม่ให้ขา Input อยู่ในสถานะ Floating จนอ่านค่าจากขา Input มาใช้งานไม่ได้

*** Floating เป็นสถานะที่ขา Input ของ MCU ไม่ได้ต่ออยู่กับ VCC หรือ GND อย่างใดอย่างหนึ่งเลย ทำให้เมื่ออ่านค่าจากขา Input นั้น จะได้ค่าออกมาในลักษณะสุ่มระหว่าง LOW และ HIGH แบบไม่สามารถคาดเดาได้ ***

โดยความแตกต่างในด้านการใช้งานของทั้ง 2 วงจรนี้ คือ

  • Pull-Up Resistor
    • ไม่ได้กดปุ่ม จะอ่านค่าได้เป็น HIGH
    • กดปุ่ม จะอ่านค่าได้เป็น LOW
  • Pull-Down Resistor
    • ไม่ได้กดปุ่ม จะอ่านค่าได้เป็น LOW
    • กดปุ่ม จะอ่านค่าได้เป็น HIGH

ตรงจุดนี้สามารถเลือกใช้ได้ตามความเหมาะสมนะครับ ว่าอยากได้สถานะตอนกดปุ่มเป็น HIGH หรือเป็น LOW ส่วนการต่อวงจรก็ตามภาพด้านล่างเลยครับ

Internal Pull-Up Resistor

นอกเหนือจากการต่อวงจร 2 แบบที่ได้อธิบายไว้ด้านบนแล้ว บอร์ด Arduino หรือบอร์ดอื่นๆ ที่คล้ายกันบางบอร์ด เขาก็ได้ติดตั้งวงจร Pull-Up Resistor มาให้เราในตัวบอร์ดแล้ว (เรียกว่า Internal Pull-Up Resistor) โดยที่เราไม่ต้องหาตัวต้านทานจากภายนอกมาต่อเพิ่ม มีแค่สวิตซ์อย่างเดียวเราก็สามารถต่อวงจรใช้งานได้แล้ว วิธีการต่อวงจรทำได้โดยต่อขาด้านหนึ่งของสวิตซ์เข้ากับขา Input ส่วนขาอีกด้านหนึ่งต่อเข้ากับ GND ซึ่งคล้ายกับการต่อ Pull-Up Resistor แบบปกติ แต่ต่างกันตรงที่ Resistor ถูกต่อแบบ Pull-Up มาให้ในตัวบอร์ดเรียบร้อยแล้ว

โค้ดโปรแกรมอย่างง่าย (เพื่อความเข้าใจ)

ตัวอย่างนี้จะเป็นโค้ดโปรแกรมอย่างง่ายที่สุด สำหรับอ่านค่าจากขา Input (ในที่นี้เป็นขา 2) และเมื่ออ่านค่าจากขา Input ได้เป็น HIGH ไฟที่ LED ติด แต่ถ้าอ่านค่าได้เป็น LOW ไฟที่ LED ดับ (ในที่นี้ใช้ built-in LED ของ Arduino UNO ซึ่งอยู่ที่ขา 13)

โดยโค้ดนี้ใช้ได้กับทั้งวงจร Pull-Up Resistor และ Pull-Down Resistor ซึ่งให้ผลลัพธ์การทำงานที่แตกต่างกันดังนี้

  • Pull-Up Resistor หรือ Internal Pull-Up Resistor
    • ไม่ได้กดปุ่ม จะอ่านค่าได้เป็น HIGH (ไฟที่ LED ติด)
    • กดปุ่ม จะอ่านค่าได้เป็น LOW (ไฟที่ LED ดับ)
  • Pull-Down Resistor
    • ไม่ได้กดปุ่ม จะอ่านค่าได้เป็น LOW (ไฟที่ LED ดับ)
    • กดปุ่ม จะอ่านค่าได้เป็น HIGH (ไฟที่ LED ติด)

หมายเหตุ : หากต้องการใช้งาน Internal Pull-Up Resistor ให้แทนที่คำสั่ง pinMode(buttonPin, INPUT) ด้วย pinMode(buttonPin, INPUT_PULLUP)

/* 
 * code from : http://www.arduino.cc/en/Tutorial/Button
 * description : button example with comment removed (easier to read)
 */

const int buttonPin = 2;
const int ledPin =  13;
int buttonState = 0;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }
}

โค้ดโปรแกรมแบบใช้ไลบรารี Bounce2 (เพื่อใช้งานจริง)

โค้ดโปรแกรมก่อนหน้าเป็นเพียงการใช้งานฟังก์ชั่น digitalRead() อ่านค่าแบบธรรมดาๆ ไม่ได้ป้องกันการ bounce ของสวิตซ์เอาไว้เลย ซึ่งอาจก่อให้เกิดปัญหาขณะใช้งานจริงได้

วิธีแก้ไขคือ เราต้องเขียนโค้ดโปรแกรมเพื่อ debounce โดยผมแนะนำให้ใช้ไลบรารีชื่อ Bounce2 เพื่อให้โค้ดโปรแกรมของเราบำรุงรักษาได้ง่าย และง่ายต่อการนำกลับมาใช้ซ้ำในโปรเจคอื่นๆ (สามารถศึกษาวิธีติดตั้งไลบรารีได้ที่นี่)

***  การ bounce ของสวิตซ์ คือการสั่นของสวิตซ์ ทำให้เกิดสัญญาณดิจิตอลไปที่ขา Input หลายครั้งในการกดสวิตซ์เพียงครั้งเดียว จนส่งผลให้ระบบทำงานผิดพลาดเนื่องจากระบบจะเข้าใจว่าสวิตซ์ถูกกดหลายครั้งนั่นเอง ส่วนการป้องกันการ bounce เราจะถูกเรียกว่าการ debounce ***

ตัวอย่างโค้ดโปรแกรมเมื่อใช้งานไลบรารี Bounce2

/*
 * code from : https://github.com/thomasfredericks/Bounce2
 * description : Translate comment to thai.
 */

#include <Bounce2.h>

#define BUTTON_PIN 2
#define LED_PIN 13

int ledState = LOW;

Bounce debouncer = Bounce(); // สร้าง debouncer object

void setup() {
   // กำหนดให้ debouncer object ใช้ BUTTON_PIN ในโหมด INPUT_PULLUP (จะแก้เป็น INPUT, INPUT_PULLUP หรือ OUTPUT ก็ได้ขึ้นอยู่กับการต่อวงจร)
   debouncer.attach(BUTTON_PIN, INPUT_PULLUP);
   debouncer.interval(25); // กำหนดเวลาการเปลี่ยนสถานะให้กับ debouncer object ที่ 25 มิลลิวินาที
  
   pinMode(LED_PIN, OUTPUT);
   digitalWrite(LED_PIN, ledState);
}

void loop() {
   debouncer.update(); // อัปเดตสถานะให้กับ debouncer object
   
   // กำหนดเงื่อนไขให้โค้ดโปรแกรมในวงเล็บปีกกาทำงานเมื่อสถานะปุ่มกดเปลี่ยนจาก HIGH เป็น LOW โดยเช็คจากฟังก์ชั่น fell()
   // หากต้องการเช็คสถานะจาก LOW เป็น HIGH ให้แทนที่ฟังก์ชั่น fell() ด้วยฟังก์ชั่น rose()
   if ( debouncer.fell() ) { 
      ledState = !ledState; // สลับสถานะติด/ดับของ LED
      digitalWrite(LED_PIN, ledState); // สั่งให้ LED ติด หรือดับ
   }
}

สรุป

  • การต่อสวิตซ์เพื่อใช้งานกับ Arduino หรือไมโครคอนโทรลเลอร์ (MCU) จำเป็นต้องต่อวงจรแบบ Pull-Up Resistor หรือ Pull-Down Resistor เพื่อป้องกันไม่ให้ขา Input อยู่ในสถานะ Floating จนอ่านค่ามาใช้งานไม่ได้
  • บอร์ดบางตัวจะติดตั้ง Pull-Up Resistor มาให้แล้วในตัวบอร์ดเรียบร้อยแล้ว (เรียกว่า Internal Pull-Up Resistor) แปลว่าเราสามารถใช้งานวงจรแบบ Pull-Up Resistor ได้ทันทีโดยที่ไม่ต้องต่อ Resistor เพิ่มจากภายนอก
  • การเขียนโค้ดโปรแกรมเพื่อ debounce แนะนำให้ใช้ไลบรารีแทนการเขียนด้วยตัวเอง เพราะบำรุงรักษาง่ายกว่า และนำไปใช้ซ้ำในโปรเจคอื่นได้ง่ายกว่า
  • การ debounce ด้วยการต่อวงจรก็สามารถทำได้ เพียงแต่ไม่ได้ถูกพูดถึงในบทความนี้ครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

สอน Arduino – อธิบายโปรแกรมไฟกระพริบ

บทความนี้ผมจะอธิบายถึงวิธีการเขียนโค้ดโปรแกรม หรือเขียนโปรแกรมเพื่อสั่งงานบอร์ด Arduino สำหรับผู้เริ่มต้น โดยอธิบายผ่านโปรแกรมไฟกระพริบ ซึ่งโค้ดในบทความนี้สามารถเขียนโปรแกรม คอมไพล์ และอัปโหลดโปรแกรมลงบอร์ดด้วย Arduino IDE และหากใครยังไม่เคยใช้โปรแกรม Arduino IDE มาก่อน ให้ตามไปอ่านวิธีใช้งานเบื้องต้นได้ที่บทความ “วิธีใช้งานโปรแกรม Arduino IDE เบื้องต้น” เพื่อความเข้าใจครับ

ฟังก์ชั่นหลักของโค้ดโปรแกรม Arduino

โค้ดโปรแกรมสำหรับ Arduino จะประกอบไปด้วยฟังก์ชั่นหลัก 2 ฟังก์ชั่น คือฟังก์ชั่น setup() และ ฟังก์ชั่น loop()

void setup() {

}

void loop() {

}
  • ฟังก์ชั่น setup() จะเริ่มทำงานเป็นอันดับแรกทันทีที่ Arduino เริ่มทำงาน และคำสั่งที่ถูกเขียนลงไปในนี้ จะทำงานเพียงครั้งเดียวเท่านั้น
  • ฟังก์ชั่น loop() จะเริ่มทำงานทันทีเมื่อฟังก์ชั่น setup() ทำงานเสร็จ และคำสั่งที่ถูกเขียนลงไปในนี้ จะทำงานตั้งแต่คำสั่งแรก ไล่ไปจนถึงคำสั่งสุดท้าย แล้วกลับมาทำงานที่คำสั่งแรก ไล่ไปจนถึงคำสั่งสุดท้าย วนซ้ำแบบนี้ไปเรื่อยๆ ตลอดการทำงานของ Arduino

เริ่มเขียนโปรแกรมที่ฟังก์ชั่น setup

ฟังก์ชั่น setup() จะทำงานเพียงแค่ครั้งเดียวทันทีที่ Arduino เริ่มทำงาน ดังนั้นโค้ดที่จะถูกเขียนลงไปในฟังก์ชั่นนี้ มักจะเป็นโค้ดสำหรับกำหนดโหมด Input/Output ให้กับ pin โดยใช้ฟังก์ชั่น pinMode() หรือมักจะเป็นโค้ดที่กำหนดค่าเริ่มต้นเพื่อใช้งานไลบรารี่ต่างๆ เช่น Serial.begin(), WiFi.begin() หรือ Servo.attach() เป็นต้น ซึ่งเป็นโค้ดที่ไม่มีความจำเป็นต้องทำงานซ้ำ

ตัวอย่างเช่น โค้ดด้านล่างนี้จะกำหนด pin หมายเลข 13 ให้อยู่ในโหมด Output ทันทีที่ Arduino เริ่มทำงาน และ pin หมายเลข 13 จะอยู่ในโหมด Output ไปตลอดการทำงานของ Arduino

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {

}

เขียนโปรแกรมกันต่อที่ฟังก์ชั่น loop

ฟังก์ชั่น loop() จะทำงานทันทีที่ฟังก์ชั่น setup() ทำงานจบ และโค้ดในฟังก์ชั่น loop() ก็จะถูกทำงานซ้ำไปเรื่อยๆ ตลอดการทำงานของ Arduino ซึ่งโค้ดโปรแกรมส่วนใหญ่ ที่มีผลต่อการทำงานของ Arduino จะถูกเขียนลงไปในฟังก์ชั่น loop() นี้ เช่นโค้ดสำหรับรับข้อมูลจากปุ่มกด, สั่งเปิดปิดไฟ, แสดงผลออกจาก LCD หรือแม้กระทั่งการอ่านข้อมูลจากเซ็นเซอร์ต่างๆ ก็ตาม

ตัวอย่างโค้ดไฟกระพริบสำหรับ Arduino UNO

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

อธิบายการทำงานของโปรแกรม

โปรแกรมจะเริ่มทำงานที่ฟังก์ชั่น setup() ซึ่งมีคำสั่งเดียวคือ pinMode(13, OUTPUT) นั่นคือกำหนด pin หมายเลข 13 ให้อยู่ในโหมด Output

เมื่อทำเสร็จแล้วก็จบการทำงานที่ฟังก์ชั่น setup() และเริ่มทำงานต่อที่ฟังก์ชั่น loop() ทันที และไล่ทำไปทีละคำสั่ง ตั้งแต่คำสั่งแรก ไล่ทำไปจนคำสั่งสุดท้าย และเมื่อทำคำสั่งสุดท้ายจบก็จะกลับไปทำงานคำสั่งแรกใหม่ เช่น

  1. digitalWrite(13, HIGH)       built-in LED ไฟติด
  2. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  3. digitalWrite(13, LOW)        built-in LED ไฟดับ
  4. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  5. digitalWrite(13, HIGH)       built-in LED ไฟติด
  6. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  7. digitalWrite(13, LOW)        built-in LED ไฟดับ
  8. delay(1000)                         หยุดการทำงาน 1000 มิลลิวินาที (1 วินาที)
  9. digitalWrite(13, HIGH)       built-in LED ไฟติด
  10. ….
  11. ….

ผลการทำงานก็คือ built-in LED จะไฟติด และติดค้างไว้นาน 1 วินาที จากนั้นก็จะไฟดับ และดับค้างไว้นาน 1 วินาที ซ้ำแบบนี้ไปเรื่อยๆ จนเกิดเป็นไฟกระพริบแบบที่เห็นครับ

หมายเหตุ : ในบอร์ด Arduino UNO pin หมายเลข 13 จะถูกพ่วงกับ built-in LED (LED ที่ติดมากับบอร์ด) ดังนั้นหากเรากำหนด pin หมายเลข 13 ให้เป็น HIGH แปลว่าไฟที่ built-in LED ก็จะติด ส่วนในบอร์ดอื่นๆ built-in LED อาจพ่วงอยู่กับ pin หมายเลขอื่นๆ ได้เช่นกันครับ ตรงนี้ก็ต้องอ่านคู่มือบอร์ดนั้นๆ กันเอาเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีใช้งานโปรแกรม Arduino IDE เบื้องต้น

Arduino IDE คือโปรแกรมสำหรับใช้เขียนโปรแกรม, คอมไพล์ และอัปโหลดโปรแกรมลงบอร์ด Arduino หรือบอร์ดตัวอื่นๆ ที่คล้ายกัน เช่น Generic ESP8266 modules, NodeMCU หรือ WeMos D1 เป็นต้น

แนวคิดการใช้งานโปรแกรม Arduino IDE

  1. เขียนโปรแกรมด้วยภาษา C/C++ สำหรับ Arduino
  2. คอมไพล์หรือแปลโปรแกรมภาษา C/C++ ให้เป็นภาษาสำหรับไมโครคอนโทรลเลอร์และบันทึกเป็น Intel Hex File
  3. อัปโหลด Intel Hex File ลงบนไมโครคอนโทรลเลอร์ซึ่งอยู่บนบอร์ด Arduino ผ่านสาย USB หรือผ่าน Programmer

วิธีใช้งานโปรแกรม Arduino IDE อย่างง่าย

1. เปิดโปรแกรม Arduino IDE ขึ้นมา

2. สร้าง Sketch ใหม่ โดยคลิกที่เมนู File > New

** หมายเหตุ : โปรแกรมที่ถูกเขียนด้วย Arduino IDE จะถูกเรียกว่า Sketch ครับ **

3. เขียนโปรแกรมลงไปตรงพื้นที่สีขาวๆ ครับ ซึ่งการเขียนโปรแกรมสำหรับ Arduino จะประกอบไปด้วยฟังก์ชั่น setup และ ฟังก์ชั่น loop ซึ่งมีความหมายดังนี้

  • ฟังก์ชั่น setup จะเริ่มทำงานเป็นอันดับแรกเมื่อ Arduino เริ่มทำงาน และคำสั่งที่ถูกเขียนลงไปในนี้ จะทำงานเพียงครั้งเดียวเท่านั้น
  • ฟังก์ชั่น loop จะเริ่มทำงานทันทีเมื่อฟังก์ชั่น setup ทำงานเสร็จ และคำสั่งที่ถูกเขียนลงไปในนี้ จะทำงานตั้งแต่คำสั่งแรก ไล่ไปจนถึงคำสั่งสุดท้าย แล้วกลับมาที่คำสั่งแรก ไล่ไปจนถึงคำสั่งสุดท้าย วนซ้ำแบบนี้ไปเรื่อยๆ ตลอดการทำงานของ Arduino

4. เมื่อเขียนโปรแกรมเสร็จแล้วให้บันทึกเก็บไว้โดยคลิกที่เมนู File > Save จากนั้นจะมีหน้าต่างขึ้นมาให้เราเลือกว่าจะบันทึกไว้ที่ไหน และจะตั้งชื่อ Sketch ว่ายังไง ตรงนี้ก็แล้วแต่เราจะตั้งชื่อครับ

เมื่อทำถูกต้องที่ Tittle bar จะแสดงชื่อ Sketch ตามที่เราได้ตั้งชื่อไปตอนบันทึกครับ

5. ต่อบอร์ด Arduino เข้ากับคอมพิวเตอร์ผ่านสาย USB (แนะนำให้ต่อครั้งละ 1 บอร์ดป้องกันการสับสน)

6. ตั้งค่าเพื่อบอก Arduino IDE ว่าเราจะอัปโหลดโปรแกรมให้กับบอร์ดรุ่นอะไร และอัปโหลดผ่าน Port ไหน

6.1. คลิกที่เมนู Tools > Board เลือกบอร์ด Arduino ให้ตรงกับรุ่นที่เราต่อใช้งานอยู่

6.2. คลิกที่เมนู Tools > Port ตรงนี้ถ้าเราต่อไว้แค่บอร์ดเดียว, ติดตั้ง Driver ไว้แล้ว และบอร์ดไม่ได้เสีย จะมีรายการขึ้นมาให้เลือกแค่รายการเดียวครับ (Winows จะแสดงเป็น COMx ส่วน Linux จะแสดงเป็น /dev/ttyUSBx หรือ /dev/ttyACMx)

7. คลิกปุ่มอัปโหลด หรือจะคลิกที่เมนู Sketch > Upload ก็ได้ (ปุ่มนี้จะคอมไพล์ + อัปโหลดในขั้นตอนเดียว)

หากเขียนโปรแกรมถูกต้อง และไม่ได้มีปัญหาระหว่างการอัปโหลด จะมีข้อความขึ้นว่า Done uploading และจะมีข้อความรายงานเป็นข้อความสีขาวๆ

หรือหากเขียนโปรแกรมผิดจะแสดงเป็นข้อความสีส้มๆ ที่เมื่อแปลข้อความแล้วก็พอจะสามารถเดาได้ว่าเราเขียนโปรแกรมผิดตรงจุดไหน เช่น เคสนี้ “expected ‘;’ before ‘}’ token” แปลว่า ลืมพิมพ์ ; ก่อนเครื่องหมายปีกกา } เป็นต้นครับ

หรือหากมีปัญหาระหว่างการอัปโหลด ก็จะมีข้อความขึ้นว่า Problem uploading to board.  ซึ่งปัญหาอาจเกิดขึ้นได้จากหลายปัจจัย แนะนำให้เข้าไปศึกษาวิธีแก้ปัญหาได้ที่ https://www.arduino.cc/en/Guide/Troubleshooting#upload

นี่ก็เป็นวิธีการใช้งาน Arduino IDE แบบคร่าวๆ ครับ หวังว่าจะเป็นประโยชน์กับผู้อ่านทุกท่านนะครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีตั้งค่า Arduino IDE ให้รองรับ ESP8266 และ NodeMCU

เมื่อเราติดตั้ง Arduino IDE เสร็จใหม่ๆ ตัวโปรแกรมจะยังไม่รองรับ ESP8266 และ NodeMCU

เราจำเป็นต้องติดตั้งแพคเกจ esp8266 ผ่าน Boards Manager เสียก่อน โดยมีขั้นตอนการติดตั้งง่ายๆ เพียงไม่กี่ขั้นตอนเท่านั้นครับ

หมายเหตุ: การติดตั้งแพคเกจ esp8266 จะทำให้ Arduino IDE รู้จักกับ Generic ESP8266 และบอร์ดอื่นๆ ที่พัฒนามาจาก ESP8266 ด้วย เช่น NodeMCU, ESPresso Lite, SparkFun ESP8266 Thing, WeMos D1, ESPino และอื่นๆ

ขั้นตอนการติดตั้งแพคเกจ esp8266 ให้ Arduino IDE

1. ที่โปรแกรม Arduino IDE ไปที่เมนู File > Preferences

2. ที่หน้าต่าง Preferences คลิ๊กที่ไอคอนด้านขวามือของ Additional Boards Manager URLs:

3. ที่หน้าต่าง Additional Boards Manager URLs เพิ่ม URL ด้านล่างนี้ลงไป (ถ้ามี URL อื่นอยู่แล้ว ให้เพิ่ม URL ไปที่บรรทัดใหม่ครับ) จากนั้นกดปุ่ม OK

http://arduino.esp8266.com/stable/package_esp8266com_index.json

4. ที่หน้าต่าง Preferences กดปุ่ม OK อีกครั้งเพื่อบันทึกการตั้งค่า

5. ที่โปรแกรม Arduino IDE ไปที่เมนู Tools > Board > Boards Manager…

6. ที่หน้าต่าง Boards Manager ตรงช่องค้นหาให้พิมพ์คำค้นหาว่า esp8266 และเมื่อเจอผลลัพธ์ให้คลิ๊กเลือกที่ esp8266 by ESP8266 Community จากนั้นคลิ๊กปุ่ม Install และรอจนมีข้อความขึ้นว่า INSTALLED จากให้กดปุ่ม Close เป็นอันเสร็จสิ้นขั้นตอนการติดตั้งครับ

เมื่อคุณติดตั้งเสร็จแล้ว คุณสามารถตรวจเช็คดูว่า Arduino IDE ของคุณรองรับ ESP8266 แล้วหรือยัง โดยคลิ๊กที่เมนู Tools > Board และลองเลื่อนดูว่ามี Generic ESP8266 และบอร์ดอื่นๆ ที่พัฒนามาจาก ESP8266 ปรากฏขึ้นมาแล้วหรือยังครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีดาวน์โหลดและติดตั้ง Arduino IDE บน Ubuntu

ขั้นตอนการดาวน์โหลด

1. เข้าไปยังเว็บไซต์หลักของ Arduino เพื่อดาวน์โหลด Arduino IDE โดยคลิกที่นี่ https://www.arduino.cc/en/main/software

2. เมื่อเข้าเว็บไซต์มาแล้ว ให้คลิกดาวน์โหลดที่ Linux 32 bits หรือ Linux 64 bits อย่างใดอย่างหนึ่ง (ขึ้นอยู่กับเวอร์ชั่น Ubuntu ของคุณเป็นแบบ 32 bits หรือ 64 bits)

3.หลังจากที่คุณคลิกดาวน์โหลดแล้ว หน้าเว็บไซต์จะเปลี่ยนไปเป็นหน้า Donate (บริจาค) และจะมี 2 ปุ่มให้คุณเลือกคลิกครับ

  1. ปุ่ม JUST DOWNLOAD คือ ดาวน์โหลดอย่างเดียว
  2. ปุ่ม CONTRIBUTE & DOWNLOAD คือ บริจาคเงินจากนั้นค่อยดาวน์โหลด

ซึ่งตรงนี้คุณจะเลือกคลิกที่ JUST DOWNLOAD หรือ CONTRIBUTE & DOWNLOAD ก็แล้วแต่คุณครับ คลิกปุ่มใดปุ่มหนึ่งได้เลย

จากนั้นก็เบราเซอร์ของคุณก็จะเริ่มดาวน์โหลด และหากเบราเซอร์ของคุณไม่ถามว่าจะให้บันทึกไฟล์ไว้ที่ไหน ไฟล์ก็มักจะถูกบันทึกไว้ที่ไดเรคทอรี่ชื่อว่า Downloads ครับ

ขั้นตอนการติดตั้ง

เมื่อคุณดาวน์โหลดไฟล์เสร็จแล้ว คุณจะได้ไฟล์ชื่อว่า arduino-version-linux32.tar.xz หรือ arduino-version-linux64.tar.xz ซึ่งเป็นไฟล์ที่ถูกบีบอัดไว้ คุณต้องแยกไฟล์ออกมา โดยกดปุ่มลัดบนคีบอร์ด Alt + Ctrl + T เพื่อเรียกโปรแกรม Terminal ขึ้นมา และพิมพ์คำสั่งดังต่อไปนี้ลงไปครับ

1. สร้างไดเรคทอรี่ชื่อ bin ไว้ในไดเรคทอรี่ home สำหรับเก็บไฟล์โปรแกรม Arduino IDE

mkdir ~/bin

2. แยกไฟล์ arduino-version-linux.tar.xz ไปไว้ที่ไดเรคทอรี่ bin

แก้ your-download-path เป็นชื่อไดเรคทอรี่ที่คุณดาวน์โหลดไฟล์เก็บเอาไว้ เช่น Downloads

แก้ arduino-version-linux.tar.xz เป็นชื่อไฟล์ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5-linux64.tar.xz

tar -xJf ~/your-download-path/arduino-version-linux.tar.xz -C ~/bin

3. เพิ่มไอคอน Arduino IDE ไปยังเมนูของระบบ

แก้ arduino-version ให้ตรงกับเวอร์ชั่นของ Arduino IDE ที่คุณดาวน์โหลดมา เช่น arduino-1.8.5

~/bin/arduino-version/install.sh

การเรียกโปรแกรม Arduino IDE ขึ้นมาใช้งาน

คุณสามารถเรียกโปรแกรม Arduino IDE ขึ้นมาด้วย 2 วิธีครับ

วิธีที่1 คลิกไอคอนโปรแกรม Arduino IDE จากเมนูของระบบครับ

วิธีที่2 เรียกผ่าน command-line บนโปรแกรม Terminal ด้วยคำสั่งนี้ครับ

~/bin/arduino-version/arduino

วิธีแก้ไขเมื่อเจอ error: cannot access /dev/ttyUSB0

เมื่อคุณพยายามอัปโหลดโปรแกรมลงบอร์ด คุณบางคนอาจจะเจอปัญหาเกี่ยวกับ USB permission (การอนุญาตให้อ่านเขียน USB) แบบรูปด้านล่าง

ถ้าหากคุณลองพิมพ์คำสั่ง ls -l /dev/ttyUSB* คุณก็จะเห็นว่าสิทธิ์การใช้งาน USB คืออนุญาตให้ผู้ใช้ root และผู้ใช้ที่อยู่ในกลุ่ม dialout เท่านั้นที่สามารถอ่านเขียน USB ได้

crwrw—- 1 root dialout 188, 0 พ.ค. 8 14:33 /dev/ttyUSB0

วิธีแก้ไขก็แค่เพิ่มผู้ใช้ของลงไปในกลุ่ม dialout เท่านั้นเองครับ โดยใช้คำสั่งต่อไปนี้

sudo usermod -aG dialout $USER

หลังจากพิมพ์คำสั่งข้างบนแล้วให้ logout และ login ใหม่อีกครั้งครับ

หมายเหตุ: บางบอร์ด path จะไม่ใช่ /dev/ttyUSBx แต่จะเป็น /dev/ttyACMx แทนครับ (x คือตัวเลข)

หมายเหตุ2: บางบอร์ดจำเป็นต้องติดตั้ง Driverก่อน เช่น บอร์ดที่ใช้ชิพ USB to Serial CH340/CH340G

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

วิธีติดตั้ง Driver CH340 CH340G บน Windows

สำหรับใครที่ต้องการจะอัปโหลดโปรแกรมลงบอร์ด Arduino, NodeMCU, หรือบอร์ดอื่นๆ ที่ใช้ชิป USB to Serial CH340 หรือ CH340G (มักจะเจอในบอร์ดจากประเทศจีน) บนระบบปฏิบัติการ Windows คุณจำเป็นต้องติดตั้ง Driver สำหรับชิปตัวนี้ก่อนนะครับ ไม่อย่างนั้น Windows จะไม่สามารถติดต่อกับบอร์ดตัวนั้นๆ ได้ครับ (สำหรับ Linux จะมี Driver มาให้ในตัวแล้วครับ)

ซึ่งหากใครจะใช้โปรแกรม Arduino IDE เพื่ออัปโหลดโปรแกรม โดยที่ยังไม่ได้ติดตั้ง Driver ตัวโปรแกรมก็จะมองไม่เห็นบอร์ดที่ใช้ชิป CH340 หรือ CH340G ครับ

ส่วนขั้นตอนการติดตั้งก็ง่ายมากๆ ครับ เพียงทำตามขั้นตอนด้านล่างนี้เพียงไม่กี่คลิกเท่านั้น Windows ของคุณก็จะสามารถใช้งานกับบอร์ดทุกตัวที่ใช้ชิป CH340 หรือ CH340G ได้ทันทีครับ

ขั้นตอนการติดตั้ง Driver สำหรับ CH340/CH340G

1. ดาวน์โหลดไฟล์ติดตั้ง Driver ชื่อว่า CH341SER.EXE จาก www.wch.cn (ต้นฉบับ) หรือ poundxi.com (สำรอง) ก็ได้

2. ดับเบิ้ลคลิกที่ไฟล์ชื่อ CH341SER.EXE ที่เราเพิ่งดาวน์โหลดมาครับ แล้วจะมีหน้าต่างขึ้นมาวิ่งๆ อยู่ครู่หนึ่งแบบในรูป

3. เมื่อปรากฏหน้าต่างแบบในรูป ให้คลิกปุ่ม INSTALL

4. เมื่อติดตั้งเสร็จแล้วจะมีหน้าต่างขึ้นมาแบบในรูปครับ ทีนี้ก็ทดลองใช้งานบอร์ดของคุณได้เลยครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

NodeMCU คืออะไร

NodeMCU (โหนด เอ็มซียู) คือ บอร์ดคล้าย Arduino ที่สามารถเชื่อมต่อกับ WiFi ได้, สามารถเขียนโปรแกรมด้วย Arduino IDE ได้เช่นเดียวกับ Arduino และบอร์ดก็มีราคาถูกมากๆ เหมาะแก่ผู้ที่คิดจะเริ่มต้นศึกษา หรือทดลองใช้งานเกี่ยวกับ Arduino, IoT, อิเล็กทรอนิกส์ หรือแม้แต่การนำไปใช้จริงในโปรเจคต่างๆ ก็ตาม เพราะราคาไม่แพง

ภายในบอร์ดของ NodeMCU ประกอบไปด้วย ESP8266 (ไมโครคอนโทรลเลอร์ที่สามารถเชื่อมต่อ WiFi ได้) พร้อมอุปกรณ์อำนวยความสะดวกต่างๆ เช่น พอร์ต micro USB สำหรับจ่ายไฟ/อัปโหลดโปรแกรม, ชิพสำหรับอัปโหลดโปรแกรมผ่านสาย USB, ชิพแปลงแรงดันไฟฟ้า และขาสำหรับเชื่อมต่ออุปกรณ์ภายนอก เป็นต้น

NodeMCU V3
NodeMCU V3 LoLin

จุดเด่นของ NodeMCU

  1. สามารถเชื่อมต่อกับ WiFi ได้โดยไม่ต้องติดตั้งโมดูล WiFi เพิ่มเติม
  2. ราคาถูกมาก เมื่อเทียบกับบอร์ดที่มี WiFi ในตัวรุ่นอื่นๆ (ราคาในไทยประมาณ 160บาท)
  3. สามารถเขียน และอัปโหลดโปรแกรมลงบอร์ดด้วยโปรแกรม Arduino IDE ผ่านสาย USB แบบเดียวกับที่ใช้ชาร์จโทรศัพท์ได้
  4. สามารถอัปโหลดโปรแกรมผ่าน WiFi ได้ เรียกว่า Over the Air (OTA)
  5. ตัวบอร์ดมีขนาดเล็ก (ประมาณ 5.5 x 3 cm.)

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

สอนติดตั้ง Raspbian OS ลงบน micro SD card ด้วยโปรแกรม Etcher

Raspberry Pi 2 Bundle

สวัสดีครับ วันนี้ผมจะมาสอนติดตั้งระบบปฏิบัติการ Raspbian ลงบน micro SD card เพื่อนำไปใช้กับบอร์ด Raspberry Pi กันครับ ซึ่งในบทความนี้จะไม่รวมการตั้งค่า raspi-config เมื่อเปิดเครื่องครั้งแรกนะครับ, ก่อนเราจะเริ่มลงมือทำ เรามาเตรียมเครื่องไม้เครื่องมือที่ต้องใช้กันก่อนครับ

สิ่งที่ต้องเตรียม

  1. micro SD card สำหรับติดตั้งระบบปฏิบัติการ Raspbian ลงไป
    • แนะนำให้ใช้เป็นยี่ห้อ SanDisk ครับ (เป็นความชอบส่วนบุคคล)
    • Class ให้เลือกเป็น Class 10 จะได้ไม่มาหงุดหงิดเรื่องความเร็วทีหลังครับ
    • ความจุจะเอากี่ GB ก็แล้วแต่การนำไปใช้งานครับ ถ้ายังไม่แน่ใจว่าจะเอาไปใช้งานอะไรบ้างก็ให้เลือกเป็น 16GB ก็ได้ครับ เพราะว่าตั้งแต่ 8GB ลงมาน่าจะหาซื้อยากแล้ว
    • ยิ่งเราเลือกรุ่นที่ความเร็วในการอ่าน/เขียนเยอะมากเท่าไหร่ ราคาก็จะยิ่งสูงครับ
    • อ้อ! เลือกอันที่มี SD Adapter แถมมาด้วยก็ดีนะ (ตัวแปลง micro SD card เป็น SD card แบบธรรมดา)
    • คลิกที่นี่เพื่อเลือกซื้อ micro SD card ผ่านเว็บไซต์ Advice
  2. External Card Reader (กรณีคอมฯ ไม่มีช่องเสียบ SD card/micro SD card หรือว่ามีแต่ใช่การไม่ได้) – หากลองเช็คคอมฯ ตัวเองดู แล้วพบว่าไม่มีช่องเสียบ SD card หรือ micro SD card หรือว่ามีแต่ใช้การไม่ได้ ให้ซื้อ External Card Reader (ตัวแปลง SD card/micro SD card เป็นพอร์ต USB) เตรียมไว้ด้วยครับ คลิกที่นี่เพื่อเลือกซื้อ External Card Reader ผ่านเว็บไซต์ Advice
  3. ไฟล์ระบบปฏิบัติการ Raspbian (Raspbian Image) – ดาวน์โหลดไฟล์ระบบปฏิบัติการ Raspbian ที่เราจะใช้ติดตั้งลงไปบน micro SD card มาเตรียมไว้ด้วยครับ คลิกที่นี่เพื่อไปหน้าดาวน์โหลด Raspbian เวอร์ชั่นล่าสุด
  4. โปรแกรม Etcher ใช้สำหรับติดตั้ง Raspbian Image ลงบน micro SD card – จริงๆ แล้วโปรแกรมประเภทนี้มีให้ใช้หลายตัวครับ, แต่ว่าโปรแกรม Etcher มันเจ๋งกว่าโปรแกรมตัวอื่นตรงที่มันมีให้ใช้ได้ทั้งบนระบบปฏิบัติการ Windows, macOS และ Linux ครับ แปลว่าไม่ว่าคุณจะเป็นผู้ใช้ระบบปฏิบัติการยอดฮิตตัวไหน คุณก็สามารถทำตามบทความนี้ด้วยวิธีเดียวกันได้ไม่ยากครับ คลิกที่นี่เพื่อไปหน้าดาวน์โหลด Etcher

ขั้นตอนการติดตั้ง Raspbian Image ลงบน micro SD card

หลังจากที่เตรียมเครื่องไม้เครื่องมือกันพร้อมแล้ว เราก็มาเริ่มติดตั้ง Raspbian Image ลงบน micro SD card กันได้เลยครับ

ขั้นแรกให้เปิดโปรแกรม Etcher ขึ้นมาก่อนครับ หน้าตาโปรแกรมตอนเปิดขึ้นมาจะได้แบบนี้ครับ

มาถึงตรงนี้หลายๆ คนคงจะร้องอ๋อแล้วครับ ว่าต้องทำยังไงต่อ เพราะหน้าตาโปรแกรมมันบอกซ๊ะขนาดนั้น การใช้งานหลังจากเปิดโปรแกรมขึ้นมามีแค่ 3 ขั้นตอนเท่านั้นครับ

ขั้นตอนที่ 1

กดปุ่ม Select Image จากนั้นเลือกไฟล์ Raspbian Image ที่เราโหลดมาเป็นไฟล์ .zip ครับ เช่น 2017-09-07-raspbian-stretch.zip (ถ้าเป็นโปรแกรมอื่นๆ ส่วนใหญ่จะต้อง unzip ให้ได้ไฟล์ .img ออกมาก่อนครับ)

ขั้นตอนที่ 2

เสียบ micro SD card เข้ากับคอมฯ เลยครับ อาจจะใช้ SD Adapter หรือ External Card Reader อันนี้ก็แล้วแต่ครับ

พอเสียบ micro SD card เรียบร้อย ตัวโปรแกรมก็จะเลือกไดร์ฟ micro SD card ที่เราเพิ่งเสียบเข้าไปให้โดยอัตโนมัติครับ

*** กรณีเสียบที่ micro SD card, Flash Drive หรือ External HardDisk Drive ตัวอื่นๆ เอาไว้ให้กดปุ่ม Change แล้วเลือกไดร์ฟให้ถูกต้อง ให้เป็น micro SD card ที่เราเพิ่งเสียบเข้าไปครับ ย้ำนะครับ เลือกไดร์ฟให้ถูกต้อง ไม่อย่างนั้นข้อมูลในไดร์ฟอื่นของคุณอาจสูญหายได้ โดยสังเกตได้จากความจุว่ากี่ GB และ Label ที่แสดงครับ หรือถ้าไม่มั่นใจจริงๆ ว่าที่เลือกอยู่ถูกตัวมั้ย ให้ดึงอุปกรณ์ประเภทเก็บข้อมูลตัวอื่นๆ ออกไปก่อนก็ได้ครับ ***

ขั้นตอนที่ 3

กดปุ่ม Flash! เพื่อเริ่มติดตั้ง Raspbian Image ลง micro SD card ได้เลยครับ ระยะเวลาติดตั้งก็ราวๆ 15นาที

เมื่อติดตั้งเสร็จแล้วโปรแกรมจะแจ้งว่า Flash Complete! หลังจากนั้นก็ถอด micro SD card ไปเสียบใช้งานกับ Raspberry Pi ได้เลยครับ

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน

Raspberry Pi คืออะไร ?

Raspberry Pi คือ บอร์ดคอมพิวเตอร์ขนาดเล็ก (Single-Board Computer หรือ SBC) ที่ถูกพัฒนาขึ้นโดย Raspberry Pi Foundation มีคุณสมบัติเด่น คือ ติดต่อ และความคุมอุปกรณ์อิเล็กทรอนิกส์ได้

Raspberry Pi 3 B+ by Gareth Halfacree from Bradford, UK [CC BY-SA 2.0], via Wikimedia Commons
Raspberry Pi Zero
Raspberry Pi Zero By Evan-AmosOwn work, Public Domain, Link
Raspberry Pi Compute Module
Raspberry Pi Compute Module By Raspberry Pi Foundation (Raspberry Pi Foundation) [CC BY-SA 4.0], via Wikimedia Commons

ลักษณะทั่วไปของ Raspberry Pi

  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการใช้งานทั่วไป เช่น ใช้เพื่อทำงานเอกสาร, ดูหนัง ฟังเพลง, ใช้เพื่อการคำนวณต่างๆ หรือจะทำเป็น Web Server ก็ย่อมได้
  • เป็นคอมพิวเตอร์ที่ มีขนาดเล็ก
  • เป็นคอมพิวเตอร์ที่ มีราคาถูก เพราะผู้พัฒนามีเจตนาสร้างขึ้นมาเพื่อให้เป็นสื่อการเรียนการสอนทางด้านคอมพิวเตอร์ และเพื่อให้กลุ่มประเทศที่กำลังพัฒนาสามารถมีคอมพิวเตอร์ใช้ได้ทั่วถึงขึ้น
    • Raspberry Pi 3 Model B+ ราคาประมาณ 35 USD (ประมาณ 1,200 บาท)
    • Raspberry Pi Zero ราคาประมาณ 5 USD (ประมาณ 170 บาท)
    • Raspberry Pi Compute Module 3 ราคาประมาณ 30 USD (ประมาณ 1,000 บาท)
    • *** ราคานี้เป็นราคาโดยประมาณที่ยังไม่รวมค่านำเข้าไทย ค่าภาษี และ ราคาที่แต่ละร้านจะบวกเพิ่มเพื่อเป็นกำไร ***
  • เป็นคอมพิวเตอร์ที่ มีความสามารถในการสื่อสาร และควบคุมอุปกรณ์อิเล็กทรอนิกส์ได้ เช่น สามารถรับรู้สถานะของเครื่องใช้ไฟฟ้าได้ว่ากำลังทำงานอยู่หรือไม่ และ ยังสามารถสั่งงานให้เครื่องใช้ไฟฟ้าทำงานหรือหยุดทำงานก็ได้

ใช้ Raspberry Pi ทำอะไรได้บ้าง ?

เนื่องจาก Raspberry Pi เป็นคอมพิวเตอร์ แน่นอนมันย่อมทำทุกอย่างที่คอมพิวเตอร์ทำได้ เช่น

  • ใช้เป็นคอมพิวเตอร์ส่วนบุคคล เพื่อดูหนัง ฟังเพลง เล่นอินเทอร์เน็ต
  • ใช้เป็นเว็บเซิร์ฟเวอร์ สำหรับเปิดเว็บไซต์ขนาดเล็ก
  • ใช้ทำระบบตรวจจับใบหน้า

ส่วนนอกเหนือจากที่คอมพิวเตอร์ทั่วๆ ไปทำได้ก็คงเป็นเรื่องของการสื่อสาร และควบคุมอุปกรณ์ไฟฟ้า อิเล็กทรอนิกส์ต่างๆ เช่น

  • ระบบเปิด/ปิดหลอดไฟ หรือเครื่องใช้ไฟฟ้าแบบอัตโนมัติ
  • ใช้ควบคุมการทำงานของหุ่นยนต์ หรือเครื่องจักร
  • ใช้ทำประตูไฟฟ้า ล็อค/ปลดล็อคด้วยรีโมท หรือสั่งงานด้วยเสียง
  • ใช้ทำสถานีวัดอุณหภูมิ และความชื้นในอากาศ
  • ใช้ทำระบบกล้องวงจรปิด

ซึ่งผมคงบรรยายได้ไม่หมดว่ามันทำอะไรได้บ้าง เอาเป็นว่าไปลองดูเว็บนี้ก็แล้วกัน ว่าเค้าใช้ Raspberry Pi ทำอะไรกันไปแล้วบ้าง 1132 Projects tagged with “raspberry pi” – Hackaday.io

Raspberry Pi ต้องมีระบบปฏิบัติการ

ก่อนที่จะใช้ Raspberry Pi ได้นั้น จำเป็นต้องติดตั้งระบบปฏิบัติการให้กับ Raspberry Pi ก่อน โดยระบบปฏิบัติการที่นิยมใช้กัน คือ ระบบปฏิบัติการ Raspbian เพราะเป็นระบบปฏิบัติการที่ถูกสนับสนุนโดยตรงจากทาง Raspberry Pi Foundation นั่นเอง

*** Raspbian เป็นระบบปฏิบัติการตระกูลลินุกซ์ครับ ใครที่ไม่เคยใช้ลินุกซ์ก็อาจจะรู้สึกว่ามันยากสักหน่อยนะครับ ***

แต่นอกเหนือจากระบบปฏิบัติการ Raspbian แล้ว ก็ยังมีระบบปฏิบัติการอื่นๆ ให้เลือกใช้กันมากมาย ไปเลือกดูกันเองที่ https://www.raspberrypi.org/downloads/

การควบคุมอุปกรณ์อิเล็กทรอนิกส์

บนบอร์ด Raspberry Pi จะมีสิ่งที่เรียกว่า GPIO (General Purpose Input-Output) ซึ่งมันคือส่วนที่เอาไว้ต่อสัญญาณ Input/Output เข้ากับวงจรอิเล็กทรอนิกส์ภายนอกได้

Raspberry Pi 1 Model B+ GPIO Pins

การรับ/ส่งสัญญาณ Input/Output ผ่าน GPIO จำเป็นต้องเขียนโปรแกรมสั่งงาน โดยภาษาที่นิยมใช้กันทั่วไป ได้แก่ ภาษา Python แต่นอกจากภาษา Python แล้ว ก็ยังมีภาษาอื่นๆ ให้เลือกใช้กันอีก เช่น C/C++, Shell Script และภาษาอื่นๆ

โดยรูปแบบหนึ่งของสัญญาณที่ใช้รับ/ส่งจะอยู่รูปแบบของแรงดันไฟฟ้า 0V กับ 3.3V เช่น

  • เมื่อ GPIO ขา X ได้รับไฟ 0V (หรือไม่ถูกจ่ายไฟ) >> โปรแกรมจะได้รับสัญญาณเป็น 0 หรือ False
  • เมื่อ GPIO ขา X ได้รับไฟ 3.3V >> โปรแกรมจะได้รับสัญญาณเป็น 1 หรือ True
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 0 หรือ False >> GPIO ขา X จะจ่ายไฟ 0V (หรือไม่จ่ายไฟ)
  • เมื่อโปรแกรมส่งสัญญาณออกไปเป็น 1 หรือ True >> GPIO ขา X จะจ่ายไฟ 3.3V

ตัวอย่างโค้ดโปรแกรมภาษา Python

GPIO.setup(X, GPIO.OUT)
GPIO.output(X, True)

ตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Output และส่งสัญญาณออกไปเป็น True หรือก็คือจ่ายไฟออกไป 3.3V แต่ถ้าเปลี่ยนจาก True เป็น False ก็จะจ่ายไฟออกไป 0V (หรือไม่จ่ายไฟ)

GPIO.setup(X, GPIO.IN)
input = GPIO.input(X)

ส่วนตัวอย่างนี้เป็นการตั้งให้ GPIO ขาที่ X เป็นขา Input และเมื่อได้รับไฟ 3.3V ตัวแปร input จะมีค่าเท่ากับ True และแน่นอนเมื่อได้รับไฟ 0V (ไม่ถูกจ่ายไฟ) ตัวแปร input ก็จะมีค่าเท่ากับ False นั่นเอง

ข้อมูลเพิ่มเติม

แบ่งปันสิ่งนี้บน