5 ไอเดีย Project Arduino ที่ใครก็สามารถทำได้

arduino คือ บอร์ดไมโครคอนโทรลเลอร์อัจฉริยะที่จะทำให้การเรียนรู้ของน้อง ๆ ไร้ขีดจำกัด

Category :

arduino project

5 ไอเดีย Project Arduino ที่ใครก็สามารถทำได้

เนื้อหาที่นำเสนอในหน้านี้มีลิขสิทธิ์จากเว็บไซต์ https://www.ab.in.th/ ทางเราขออภัยอย่างสูงต่อเจ้าของเนื้อหา ซึ่งก่อนหน้านี้เราได้นำเสนอเนื้อหาบางส่วนโดยไม่ได้อ้างอิงแหล่งที่มา เพื่อป้องกันความสับสน หากผู้อ่านสนใจรายละเอียดเพิ่มเติมเกี่ยวกับการสั่งซื้ออุปกรณ์ สามารถเยี่ยมชมเนื้อหาต้นฉบับได้ที่เว็บไซต์ดังกล่าว

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

Arduino Board

Arduino คืออะไร?

Arduino เป็นบอร์ดไมโครคอนโทรเลอร์ที่ใช้แพลตฟอร์มออนไลน์ในการป้อนข้อมูลหรือเขียนโปรแกรมเพื่อป้อนคำสั่ง (Arduino IDE) ซึ่งแพลตฟอร์มเปิดให้ใช้งานในรูปแบบของ open-source อีกด้วย โดยน้อง ๆ สามารถสั่งงานได้อย่างหลากหลายผ่านการเขียนโปรแกรมด้วยภาษา C , C++ ที่มีความยืดหยุ่นและเรียบง่าย น้อง ๆ สามารถนำบอร์ด Arduino ไปประยุกต์ใช้กับอุปกรณ์ต่าง ๆ ได้ในการสร้าง Project Arduino ที่สามารถใช้งานได้จริง สามารถอ่านเพิ่มเติมได้ที่ Arduino

บอร์ด Arduino ทําอะไรได้บ้าง

เนื่องจาก Arduino เป็นอุปกรณ์บอร์ดไมโครคอนโทลเลอร์อัจฉริยะที่มีฮาร์ดแวร์พื้นฐานที่ครบครันสามารถเชื่อมต่อเข้ากับอุปกรณ์ต่าง ๆ เพื่อสร้าง Project Arduino ได้อย่างหลากหลาย และสามารถรับ-ส่งข้อมูลเพื่อนำมาประมวลผลได้จากหลายช่องทาง ส่งผลให้มีความยืดหยุ่นในการใช้งาน สามารถนำไปประยุกต์ใช้งานได้ในหลาย ๆ ด้าน

1. โปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติ ด้วย Arduino

โปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติ ด้วย Arduino นั้นเป็นการฝึกให้น้อง ๆ ได้สร้างต้นแบบและศึกษาระบบ Smart Farm ในขั้นพื้นฐานด้วยบอร์ดอาดูโน่เพื่อให้เข้าใจและนำไปพัฒนาต่อในอนาคต โดยอุปกรณ์ที่ใช้ ได้แก่

  • Arduino Uno R3 พร้อมสาย USB 
  • Module รีเลย์ relay 1 Chanel 250V/10A Active HIGH II
  • Soil Moisture Sensor Module เพื่อนำมาวัดความชื้นในดิน
  • ปั๊มน้ำ DC ขนาดเล็ก
  • สายยางปั้มน้ำ DC ยาว 1 เมตร
  • Adapter 5V 1A หม้อแปลง 5V 1 แอมป์
  • Power Adapter Jack ตัวเมีย
  • สายแพร Jumper Male to Female ยาว 20CM จำนวน 10 เส้น
วงจรการต่อสายโปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติ ด้วย Arduino


หลักการทำงานของโปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติด้วย Arduino สามารถอธิบายได้ว่าเมื่อน้อง ๆ ได้ติดตั้งระบบให้พร้อมใช้งานแล้ว Sensor วัดความชื้นในดินจะทำการวัดค่าความชื้นในดิน โดยสัญญาณที่ได้ออกมาจะเป็นแบบ Analog ป้อนไปยัง Arduino เพื่อประมวลผลตามที่น้อง ๆ ได้ตั้งค่ากำหนดไว้ โดยส่วนใหญ่พืชมักจะต้องการความชื้นในดินอยู่ที่ประมาณ 40% (แล้วแต่พืชในแต่ละชนิด)  เมื่อ Arduino ได้ทำการวัดค่าความชื้นและข้อมูลตรงตามเงื่อนไข ก็จะทำการส่ง Logic ไปยัง Relay เพื่อทำการเปิดปั้มน้ำให้รดน้ำต้นไม้

ตัวอย่างคำสั่งโปรแกรมที่ใช้ในโปรเจคเครื่องรดน้ำต้นไม้อัตโนมัติด้วย Arduino https://gist.github.com/AB-Project/c52c6d9ef3f8ccdc62f44b2905c6f692

2. เปิดปิดไฟ ผ่าน App android ด้วย Bluetooth

โปรเจคเปิดปิดไฟผ่าน App android ด้วย Bluetooth เป็นโปรเจคที่น้อง ๆ จะสามารถกำหนดให้ควบคุมการเปิดปิดหลอดไฟได้ผ่าน App ด้วยระบบ Bluetooth โดยสามารถใช้งานได้ผ่าน Smart Phone ระบบ Android ซึ่งเป็นการปรับแต่งและตั้งค่าภายใน Application สำเร็จรูปไม่ยุ่งยาก เหมาะกับนักประดิษฐ์มือใหม่เป็นอย่างมากเลยทีเดียว ซึ่งอุปกรณ์ที่ใช้ในการสร้าง Project Arduino เปิดปิดไฟ ผ่าน App android ด้วย Bluetooth ได้แก่

  • Arduino Uno R3
  • Bluetooth HC-06 แนะนำเป็น HC-06 เพื่อง่ายต่อการใช้งานและไม่ยุ่งยากในการเปลี่ยน mode 
  • Module Relay 4 CH
  • สายไฟแบบ Male to Female
  • หลอดไฟบ้าน และปลั๊กไฟ
  • แอปพลิเคชันที่ใช้ในโปรเจคเปิดปิดไฟ ผ่าน App android ด้วย Bluetooth สามารถดาวน์โหลดได้ที่ https://arduino-bluetooth-4ch.th.aptoide.com/app
วงจรการต่อสายโปรเจคเปิดปิดไฟ ผ่าน App android ด้วย Bluetooth
ขอบคุณภาพจาก

หลักการทำงานของโปรเจคนี้คือ เนื่องจากการเชื่อมต่อระหว่าง Arduino และ hc-06 อยู่ในรูปแบบการสื่อสารแบบ Serial และบอร์ด Arduino มี Hardware Serial เพียงแค่ 1 ชุดเราจึงจำเป็นต้องใช้ Library Software Serial #include

เมื่อนำ Smart Phone เข้ามาทำการเชื่อมต่อ Buletooth และกดปุ่ม เปิดไฟ จะทำการส่งค่าตัวเลข 1 ไปยัง Bluetooth แล้ว Bluetooth ก็จะส่งข้อมูลผ่าน Serial เพื่อประมวลผลและบอก Arduino ว่า 1 ทำให้ Relay ตัวที่ 1 เปิดไฟขึ้นมา และในช่องอื่น ๆ ก็ทำงานในรูปแบบนี้เช่นกัน และเมื่อกดปิดไฟ ตัวโปรแกรมของ App ก็จะส่งตัวอักษรพิมพ์ใหญ่ ตัว A เพื่อทำการปิดไฟนั่นเอง

ตัวอย่างคำสั่งโปรแกรมที่ใช้ในโปรเจคเปิดปิดไฟ ผ่าน App android ด้วย Bluetooth

ข้อควรระวัง เวลาใช้ไฟบ้าน AC ต่อกับ Relay ให้ระวังการต่อให้ดี อาจจะเกิดอันตรายได้ สำหรับน้อง ๆ ควรมีผู้ปกครองดูแล

3. Digital ruler หรือตลับเมตรไร้สายแสดงบนจอ LCD 

โปรเจค Digital ruler หรือตลับเมตรไร้สายแสดงบนจอ LCD เป็นโปรเจคที่ใช้งานเซ็นเซอร์อัลตราโซนิก HC-SR4 ในการวัดระยะทาง ซึ่งเป็นการที่น้อง ๆ จะได้ฝึกใช้ Nodemcu V.3 ที่พัฒนาโปรเจคได้ด้วยโปรแกรม Arduino IDE โดยอุปกรณ์ที่ใช้ ได้แก่

  • Nodemcu V.3
  • Shield V1.0 For Nodemcu V.3
  • Sensor HC-SR-04
  • จอ LCD I2C 1602
  • สายไฟแบบ Female to Female 20CM จำนวน 10 เส้น
  • Adapter 9V สำหรับต่อเพื่อนำไปใช้งานจริงโดยไม่ต้องต่อกับ Computer
วงจรการต่อสายโปรเจค Digital ruler หรือตลับเมตรไร้สายแสดงบนจอ LCD


หลักการทำงานของโปรเจค Digital ruler หรือตลับเมตรไร้สายแสดงบนจอ LCD คือการใช้อัลตราโซนิก บนบอร์ดอาดูโน่ในการวัดระยะทางโดยตัว Sensor จะส่งคลื่นเสียงออกไปและสะท้อนกลับมาเมื่อเจอวัตถุ เมื่อได้ข้อมูลระยะเวลาที่เสียงเดินทางกลับมาแล้วจึงนำมาคำนวนเป็นระยะทางที่วัดได้

โดยอัลตราโซนิก คือ คลื่นเสียงที่มีย่านความถี่อยู่ในช่วงประมาณ 18 กิโลเฮิรตซ์ขึ้นไป ซึ่งปกติหูของมนุษย์จะได้ยินควาามถี่ช่วงคลื่นเสียงระหว่าง 20 เฮิรตซ์ถึง 20 กิโลเฮิรตซ์ หากช่วงคลื่นเสียงมีความถี่ต่ำหรือสูงกว่านี้มนุษย์จะไม่สามารถได้ยินได้ 

ตัวอย่างคำสั่งโปรแกรมที่ใช้ในโปรเจค Digital ruler หรือตลับเมตรไร้สายแสดงบนจอ LCD

4. สร้างเกม Flappy Bird ด้วย Arduino UNO และ Processing IDE

ผลงานจากโปรเจคสร้างเกม Flappy Bird ด้วย Arduino UNO และ Processing IDE

Flappy Bird คือเกมรูปแบบการเปลี่ยนพื้นหลังโดยเลื่อนไปทางด้านข้างเรื่อย ๆ พร้อมสิ่งกีดขวางที่ปรากฎขึ้นมาท้าทายผู้เล่น ผู้เล่นจะต้องควบคุมนกตัวหนึ่งโดยพยายามบินหลบไป-มาระหว่างช่องว่างของสิ่งกีดขวางซึ่งก็คือท่อสีเขียวเพื่อไม่ให้นกบินไปชน ซึ่งในโปรเจคสร้างเกม Flappy Bird ด้วย Arduino UNO และ Processing IDE มีอุปกรณ์ที่ต้องใช้ ได้แก่

  • Arduino UNO R3
  • Ultrasonic Sensor HC-SR04
  • Jumper (F2M) cable 20cm Female to Male
  • นอกจากนี้ยังต้องดาวน์โหลด และ ติดตั้ง โปรแกรม Processing IDE https://processing.org/download/ ซึ่งเป็นแพลตฟอร์มเขียนโปรแกรมที่เกี่ยวกับการสร้างภาพเคลื่อนไหวและการมีปฏิสัมพันธ์ระหว่างผู้ใช้งานอุปกรณ์
วงจรการต่อเชื่อมต่อสายระหว่าง HC-SR04 กับ Arduino UNO ในโปรเจคสร้างเกม Flappy Bird ด้วย Arduino UNO และ Processing IDE

ตัวอย่างคำสั่งโปรแกรมที่ใช้ในโปรเจคสร้างเกม Flappy Bird ที่นำไปเขียนลง Arduino UNO

//for more projects visit www.blackkeyhole.com

const int trigPin = 11; //DECLARE TRIG PIN AT D11

int echoPin = 10;       //DECLARE ECHO PIN AT D10

int safezone = 10;

void setup()

{

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);

  Serial.begin(9600);

}

void loop()

{

  long duration, cm;          //DECLARE VARIABLES TO STORE SENSOR O/P

  digitalWrite(trigPin, LOW); //MAKE THE TRIG PIN LOW

  delayMicroseconds(2);       //WAIT FOR FEW MICROSECONDS

  digitalWrite(trigPin, HIGH); //NOW SET THE TRIG PIN

  delayMicroseconds(5);       //WAIT FOR FEW MICROSECONDS UNTIL THE TRIG PULSE IS SENT

  digitalWrite(trigPin, LOW); //MAKE THE TRIG PIN LOW AGAIN

  duration = pulseIn(echoPin, HIGH); //MAKE ECHO PIN HIGH AND STORE THE BOUNCED PULSE IN VARIABLE DURATION

  cm = microsecondsToCentimeters(duration);

  long inch = cm / 2.54;

  Serial.println(cm);

}

long microsecondsToCentimeters(long microseconds) //SPEED OF SOUND IS 29 uSEC PER CM

{

  return microseconds / 29 / 2; 

}

ตัวอย่างคำสั่งโปรแกรมที่ใช้ในโปรเจคสร้างเกม Flappy Bird ที่นำไปเขียนลงโปรแกรม Processing IDE

import processing.serial.*;

int DistanceUltra;

int IncomingDistance;

Serial myPort;

String DataIn;

Pipe p1 = new Pipe();

Pipe p2 = new Pipe();

Pipe p3 = new Pipe();

//bird height and width location

float birdy = 46;

float birdx = 56;

float gravity = 5;

//the speed of the pipes

int speed;

//score and game state

boolean gameOver = false;

int score = 0;

int highscore = 0;

int point = 1;

color birdColor = color(255, 204, 0); 

void setup(){

  size(400,600);

  p1.x = width + 50;

  p2.x = width + 220;

  p3.x = width + 370;

  myPort = new Serial(this, “COM14”, 9600); //change the com port which is suitable for your machine

  myPort.bufferUntil(10);

}

void serialEvent (Serial myPort){

DataIn = myPort.readString();

println(DataIn);

IncomingDistance = int(trim(DataIn));

println(“incoming distance=”+IncomingDistance);

if (IncomingDistance>1 && IncomingDistance<100 ) { DistanceUltra = IncomingDistance; //save the value only if its in the range 1 to 100 } }

}

}

void draw(){

  background(0);

  p1.pipe();

  p2.pipe();

  p3.pipe();

  fill(birdColor);

  ellipse(birdx, birdy, 55,55);

 // birdy += gravity;

  play();

  success(p1);

  success(p2);

  success(p3);

  if (IncomingDistance>10)

  {

    //birdy -= jumpForce;

    birdy -= gravity;

  }    

  else

  {

    birdy += gravity;

  }

void play(){

  if(gameOver == false)

  {

    speed = 2;

    p1.x -= speed;

    p2.x -= speed;

    p3.x -= speed;

    textSize(24);

    fill(255,255,255);

    text(score, width/2, 30);  

  }

  if(gameOver == true)

  {

    speed = 0;

    p1.x -= speed;

    p2.x -= speed;

    p3.x -= speed;

    if( highscore < score)

    {

       highscore = score;

    }

    textSize(16);

    fill(0, 102, 153);

    textAlign(CENTER);

    text(“Click : Play Again”, width/2, height/2);

    text(“Score: ” + score, width/2, height/2 – 20);

    text(“High-Score: ” + highscore, width/2, height/2 – 40);

    if (mousePressed)

    {

       delay(900);

       score = 0;

       gameOver = false;

       birdy = 100;

       birdx = 56;

       p1.x = width + 50;

       p2.x = width + 220;

       p3.x = width + 370;

       p1.top = random(height/2);

       p1.bottom = random(height/2);

       p2.top = random(height/2);

       p2.bottom = random(height/2);

       p3.top = random(height/2);

       p3.bottom = random(height/2);

    }  

  }

}

void success(Pipe test){

  if(birdy < test.top || birdy > height – test.bottom)

  {

    if(birdx > test.x && birdx < test.x + test.w)

    {

      gameOver = true;

    }

  }

}

class Pipe

{

  float top = random(height/3 + 200);

  float bottom = random(height/3 +200);

  float x = width + 150;

  float w = 70;

  color pipeColor = color(0, 255, 0);

  void pipe()

  {

    fill(pipeColor);

    rect(x, 0, w, top);

    rect(x, height-bottom, w, bottom);

    if(x < -100)

    {

     score += point;

     x = width;

     top = random(height/2);

     bottom = random(height/2);

    } 

  } 

}

5. เปิดประตูด้วยคีย์การ์ด RFID RC522

ในการสร้างโปรเจคเปิดประตูด้วยคีย์การ์ด RFID RC522 จะทำให้น้อง ๆ ได้ศึกษาหลักการทำงานของการใช้งานประตูคีย์การ์ด ที่จะต้องใช้บัตรคีย์การ์ดที่มี “ชิป” อยู่ในบัตร เมื่อวางบัตรคีย์การ์ดที่มีชิปลงบนตัวอ่านบัตร ระบบจะอ่านข้อมูลบนชิปและทำการตรวจสอบความถูกต้องของบัตรนั่นเอง โดยอุปกรณ์ที่ต้องใช้ ได้แก่

  • Arduino UNO R3
  • RFID Card Reader/Detector Module Kit (RC522)
  • โมดูล I2C LCD พร้อมหน้าจอ LCD 1602
  • Traffic Light LED Display Module
  • Standard Passive Speaker Buzzer Module
  • Adapter DC 9V 1A Power Supply

หลักการทำงานของ Arduino Project นี้คือ หากข้อมูลที่ตัวอ่านบัตรได้รับเป็นข้อมูลที่ไม่ถูกต้อง สิ่งที่ปรากฎบนจอ LCD คือข้อความ ” Access denied ” และ ไฟ LED จากสีเหลืองจะเปลี่ยนเป็นสีแดง และระบบจะไม่ทำการปลดล็อกประตูให้ แต่ถ้าหากข้อมูลที่ได้รับนั้นถูกต้อง จอ LCD จะแสดงข้อความ “Authorized access” และ ไฟ LED จากสีเหลืองจะเปลี่ยนเป็นสีเขียว และ ออดไฟฟ้า (Buzzer) มีเสียงดังขึ้น โดยระบบจะทำการปลดล็อกประตูให้เปิดผ่านการประมวลผลโดยใช้บอร์ดอาดูโน่

อุปกรณ์สำหรับโปรเจคเปิดประตูด้วยคีย์การ์ด RFID RC522


RFID RC522 เป็นโมดูล RFID (Radio-Frequency Identification) ที่ใช้ในการอ่านข้อมูลจาก RFID tag เพื่อคำสั่งการเปิดใช้งานระบบซึ่งใน Arduino Project เปิดประตูด้วยคีย์การ์ดจะนำมาประยุกต์ใช้ควบคู่กับ Arduino UNO R3 โดยต่อโมดูล RC522 เข้ากับ Arduino ผ่านทางขา SPI (Serial Peripheral Interface) โดยต้องต่อขา MISO, MOSI, SCK, และ SS และต่อขา RST, 3.3V, และ GND ให้ถูกต้อง

Scratch สำหรับ Arduino

การสร้าง Arduino Project โดยการใช้ฮาร์ดแวร์และซอฟต์แวร์พื้นฐานควบคู่กันอย่าง Scratch และบอร์ดอาดูโน่มาใช้ร่วมกันนั้นเป็นกิจกรรมการเรียนรู้ที่มีการใช้กันอย่างแพร่หลาย เนื่องจากโปรแกรมภาษา Scratch นั้นมีความยืดหยุ่นและเหมาะกับมือใหม่ผนวกเข้ากับความสามารถที่หลากหลายของ Arduino Board ที่สามารถใช้งานได้ในหลาย ๆ ด้าน สามารถอ่านเพิ่มเติมได้ที่ Scratch สำหรับ Arduino

Scratch สำหรับ Arduino


Arduino กับ CodeGenius

สำหรับน้อง ๆ ระดับชั้นประถมศึกษาและมัธยมศึกษาที่สนใจเรียนพื้นฐาน Arduino สำหรับผู้เริ่มต้น สถาบัน Code Genius มีคอร์สเรียนที่จะเปลี่ยนมุมมองของน้อง ๆ จาก “ผู้ใช้” เป็น “ผู้สร้าง” เทคโนโลยี ในคอร์สเรียน Genius Innovator และ Project Development ที่จะพาน้อง ๆ เรียนผ่านการทำโปรเจค หรือ Project based learning สอนน้อง ๆ อย่างค่อยเป็นค่อยไปเพื่อปูพื้นฐาน ด้าน Hardware และ Software อย่างถูกต้อง ตลอดช่วงปิดเทอมและเปิดเทอม

หากสนใจเรียนพื้นฐาน Arduino สามารถสมัครทดลองเรียนฟรี หรือนัดปรึกษาคุณครูผู้เชี่ยวชาญได้ที่ Line@ : @codegenius ฟรี ไม่มีค่าใช้จ่ายได้เลยทันที

สรุป

การเรียนรู้โค้ดดิ้งด้วยกิจกรรม Arduino Project เป็นการเรียนรู้เชิงรุกที่สามารถฝึกฝนให้น้อง ๆ ได้ลงมือทำด้วยตนเองผ่านการสร้างโปรเจคต่าง ๆ น้อง ๆ จะได้ทดลองต่อวงจรด้วยตนเอง เขียนโปรแกรมเพื่อสั่งการและประมวลผลผ่านบอร์ดอาดูโน่ที่ต้องอาศัยหลักการคิดเชิงวิทยาการคำนวณและการแก้ไขปัญหาโดยใช้หลักการและเหตุผล นอกจากนี้น้อง ๆ ยังจะได้ทำความเข้าใจในหลักการทำงานและเรียนรู้การใช้เซ็นเซอร์ที่แตกต่างกันไปในแต่ละโปรเจคอีกด้วย ซึ่งน้อง ๆ จะต้องเลือกใช้ให้เหมาะสมกับรูปแบบของงานและออกแบบวิธีการใช้งานด้วยตนเอง เป็นการฝึกความคิดนอกกรอบและฝึกฝนความคิดสร้างสรรค์ผ่านการแก้ปัญหาอีกด้วย

ขอบคุณบทความจาก

https://www.ab.in.th

https://lungmaker.com/

https://fa.lnwfile.com/

บทความที่เกี่ยวข้อง