แสดงกระทู้

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Topics - Watchara A.

หน้า: [1]
1
ผู้ช่วยผู้ประสานงาน ศูนย์ประสานงานภูมิภาคฯ ภาคกลางและภาคตะวันออก

นายกัปปน์ สร้อยคำพา
ผู้ช่วยผู้ประสานงานฯ
จดหมายอิเล็กทรอนิกส์ kupp.soy@gmail.com
หมายเลขโทรศัพท์ 096-607-6051

2
ตัวอย่าง KidBright with Arduino IDE : ต่อเซ็นเซอร์ DHT22 เพิ่ม

ตัวอย่างนี้เป็นการอ่านค่าอุณหภูมิและความชื้นจากการต่อเซ็นเซอร์ DHT22 บน KidBright เพิ่มเติมด้วย Single Wire Bus ที่ Pin 19 และ ส่งค่าผ่าน Serial กลับมาที่ Serial Monitor ของ Arduino

Sourcecode จะแสดงอุณหภูมิและความชื้นผ่าน Serial Monitor ทุก 1 วินาที

โค๊ด: [Select]
#include <DHT.h>
#define DHTTYPE DHT22
#define DHTPIN 19

DHT dht(DHTPIN, DHTTYPE);

float humiddht = 0;     // ค่าความชื้น
float tempdht  = 0;     // ค่าอุณหภูมิ

void dhtreadTempAndHumid()
{
          humiddht = dht.readHumidity();     
          tempdht  = dht.readTemperature(); 
         
          Serial.print("Humid: "); Serial.print(humiddht); Serial.print(" %, ");
          Serial.print("Temp: "); Serial.print(tempdht); Serial.println(" °C ");
 
}

void setup() {
  Serial.begin(9600);
  Wire1.begin(4, 5);
  dht.begin(); // initialize โมดูล DHT
}

void loop() {
  dhtreadTempAndHumid();
  delay(1000);
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018

3
ตัวอย่าง KidBright with Arduino IDE : อ่านค่า RTC

ตัวอย่างนี้เป็นการอ่านค่าเวลา และตั้งเวลา ด้วย Realtime Clock Module (RTC) บน KidBright และ ส่งค่าผ่าน Serial กลับมาที่ Serial Monitor ของ Arduino

MCP7941x บน KidBright ทำหน้าที่เป็น RTC ต่อกับ I2C Bus ที่ I2C1 ด้วย Address 0x6F

Sourcecode จะแสดงเวลาผ่าน Serial Monitor ทุก 1 วินาที

โค๊ด: [Select]
#include <Wire.h>

#define MCP7941x_RTC_I2C_ADDR 0x6F
#define RTC_LOCATION 0x00
#define WireSend(x) Wire1.write(x)
#define WireReceive() Wire1.read()

byte decToBcd(byte val)
{
 return ( (val/10*16) + (val%10) );
}


byte bcdToDec(byte val)
{
 return ( (val/16*10) + (val%16) );
}

void setDateTime(
  byte second,        // 0-59
  byte minute,        // 0-59
  byte hour,          // 1-23
  byte dayOfWeek,     // 1-7
  byte dayOfMonth,    // 1-28/29/30/31
  byte month,         // 1-12
  byte year)          // 0-99
{
  Wire1.beginTransmission(MCP7941x_RTC_I2C_ADDR);
  WireSend(RTC_LOCATION);
 
  WireSend(decToBcd(second) & 0x7f);              // set seconds and disable clock (01111111)
  WireSend(decToBcd(minute) & 0x7f);              // set minutes (01111111)
  WireSend(decToBcd(hour) & 0x3f);                // set hours and to 24hr clock (00111111)
  WireSend(0x08 | (decToBcd(dayOfWeek) & 0x07));  // set the day and enable battery backup (00000111)|(00001000)
  WireSend(decToBcd(dayOfMonth) & 0x3f);          // set the date in month (00111111)
  WireSend(decToBcd(month) & 0x1f);               // set the month (00011111)
  WireSend(decToBcd(year));                       // set the year (11111111)
 
  Wire1.endTransmission();

  // Start Clock:
  Wire1.beginTransmission(MCP7941x_RTC_I2C_ADDR);
  WireSend(RTC_LOCATION);
  WireSend(decToBcd(second) | 0x80);     // set seconds and enable clock (10000000)
  Wire1.endTransmission();
}


void enableClock()
{
  // Get the current seconds value as the enable/disable bit is in the same
  // byte of memory as the seconds value:
  Wire1.beginTransmission(MCP7941x_RTC_I2C_ADDR);
  WireSend(RTC_LOCATION);
  Wire1.endTransmission();

  Wire1.requestFrom(MCP7941x_RTC_I2C_ADDR, 1);
 
  int second = bcdToDec(WireReceive() & 0x7f);  // 01111111

  // Start Clock:
  Wire1.beginTransmission(MCP7941x_RTC_I2C_ADDR);
  WireSend(RTC_LOCATION);
  WireSend(decToBcd(second) | 0x80);     // set seconds and enable clock (10000000)
  Wire1.endTransmission();
}

void getDateTime(
  byte *second,
  byte *minute,
  byte *hour,
  byte *dayOfWeek,
  byte *dayOfMonth,
  byte *month,
  byte *year)
{
  Wire1.beginTransmission(MCP7941x_RTC_I2C_ADDR);
  WireSend(RTC_LOCATION);
  Wire1.endTransmission();

  Wire1.requestFrom(MCP7941x_RTC_I2C_ADDR, 7);
 
  // A few of these need masks because certain bits are control bits
  *second     = bcdToDec(WireReceive() & 0x7f);  // 01111111
  *minute     = bcdToDec(WireReceive() & 0x7f);  // 01111111
  *hour       = bcdToDec(WireReceive() & 0x3f);  // 00111111
  *dayOfWeek  = bcdToDec(WireReceive() & 0x07);  // 01111111
  *dayOfMonth = bcdToDec(WireReceive() & 0x3f);  // 00111111
  *month      = bcdToDec(WireReceive() & 0x1f);  // 00011111
  *year       = bcdToDec(WireReceive());         // 11111111
}

void displayDateTime(byte second, byte minute, byte hour, byte dayOfWeek, byte dayOfMonth, byte month, byte year) {
  if (hour < 10) {
    Serial.print("0");
  }

  Serial.print(hour, DEC);
  Serial.print(":");

  if (minute < 10) {
    Serial.print("0");
  }

  Serial.print(minute, DEC);
  Serial.print(":");

  if (second < 10) {
    Serial.print("0");
  }

  Serial.print(second, DEC);
  Serial.print("  ");

  if (dayOfMonth < 10) {
    Serial.print("0");
  }

  Serial.print(dayOfMonth, DEC);
  Serial.print("/");

  if (month < 10) {
    Serial.print("0");
  }

  Serial.print(month, DEC);
  Serial.print("/");

  Serial.print(year, DEC);

  Serial.print(" (");

  switch (dayOfWeek) {
    case 1:
      Serial.print("Sunday");
      break;

    case 2:
      Serial.print("Monday");
      break;

    case 3:
      Serial.print("Tuesday");
      break;

    case 4:
      Serial.print("Wednesday");
      break;

    case 5:
      Serial.print("Thursday");
      break;

    case 6:
      Serial.print("Friday");
      break;

    case 7:
      Serial.print("Saturday");
      break;
  }

  Serial.println(")");
}

void setup() {
  byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
  //while (!Serial);
  Serial.begin(9600);

  Wire1.begin(4, 5);

  second = 0;
  minute = 59;
  hour = 23;
  dayOfWeek = 3;   // 1 = Sunday, 7 = Saturday
  dayOfMonth = 8;
  month = 11;
  year = 11;
  setDateTime(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
  getDateTime(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
  displayDateTime(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
}

void loop() {
 
 byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
 
  getDateTime(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
  delay(500);
  // Display the Date/Time on the serial line:
  displayDateTime(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
  delay(500);
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018

4
ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Light Sensor (Analog Input)

ตัวอย่างนี้เป็นการอ่านค่า Light Sensor บน KidBright และ ส่งค่าผ่าน Serial กลับมาที่ Serial Monitor ของ Arduino

Light Dependent Resistor (LDR) บน KidBright ทำหน้าที่เป็น Light Sensor ต่อกับชุด Analog to Digital Conver (ADC) ของ KidBright ที่ Pin 36

Sourcecode จะแสดงค่าความเข้มแสงผ่าน Serial Monitor ทุก 5 วินาที

โค๊ด: [Select]
int analog_value = 0;
void setup()
{
     Serial.begin(9600);
}

void loop()
{
     analog_value = analogRead(36);
      if(analog_value > 1000){
        analog_value = 1000;
      }
      int ll = (1000 - analog_value)*100/1000;
      Serial.println(ll);
      delay(5000);
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018

5
ตัวอย่าง KidBright with Arduino IDE : อ่านค่า Temperature Sensor บน KidBright

ตัวอย่างนี้เป็นการอ่านค่า Temperature Sensor บน KidBright และ ส่งค่าผ่าน Serial กลับมาที่ Serial Monitor ของ Arduino

LM73 ซึ่งเป็น Temperature Sensor บน KidBright ต่อกับ KidBright ผ่าน I2C Bus ทาง I2C1 ที่ Address 0x4D
ไม่จำเป็นต้องติดตั้ง Library ใดๆเพิ่มเติม (ขอขอบคุณข้อมูลจาก NETPIE Academy)

Sourcecode จะแสดงค่าอุณหภูมิผ่าน Serial Monitor ทุก 5 วินาที

โค๊ด: [Select]
#include <Wire.h>
#define LM73_ADDR 0x4D

int analog_value = 0;
double temp=0;

float readTemperature() {
  Wire1.beginTransmission(LM73_ADDR);
  Wire1.write(0x00); // Temperature Data Register
  Wire1.endTransmission();
 
  uint8_t count = Wire1.requestFrom(LM73_ADDR, 2);
  float temp = 0.0;
  if (count == 2) {
    byte buff[2];
    buff[0] = Wire1.read();
    buff[1] = Wire1.read();
    temp += (int)(buff[0]<<1);
    if (buff[1]&0b10000000) temp += 1.0;
    if (buff[1]&0b01000000) temp += 0.5;
    if (buff[1]&0b00100000) temp += 0.25;
    if (buff[0]&0b10000000) temp *= -1.0;
  }
  return temp;
}

void setup() {
  Serial.begin(9600);
  Wire1.begin(4, 5);
}

void loop() {
      temp = readTemperature();
      Serial.print("Temp:");Serial.println(temp);
      delay(5000);
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018

6
ตัวอย่าง KidBright with Arduino IDE : ควบคุม LED Matrix 16x8

ตัวอย่างนี้เป็นการควบคุม LED Matrix 16x8  ของ KidBright

โดยเบื้องต้น LED Matrix 16x8 นี้จะถูกควบคุมผ่าน I2C Bus ที่ Address 0x70
และจำเป็นต้องมี Library Adafruit_GFX และ Adafruit_LEDBackpack ติดตั้งไว้ใน Arduino IDE ก่อน

ตัวอย่างต่อไปนี้ จะเป็นการแสดงตัวอักษร

โค๊ด: [Select]
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"

Adafruit_8x16minimatrix matrix = Adafruit_8x16minimatrix();

void setup() {
  matrix.begin(0x70);  // pass in the address
}

void loop() {
 
 
  matrix.setTextSize(1);
  matrix.setTextWrap(false);  // we dont want text to wrap so it scrolls nicely
  matrix.setTextColor(LED_ON);
  matrix.setRotation(1);

  for (int8_t x=7; x>=-100; x--) {
    matrix.clear();
    matrix.setCursor(x,0);
    matrix.print("Hello World!");
    matrix.writeDisplay();
    delay(100);
  }
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018

7
ตัวอย่าง KidBright with Arduino IDE : ควบคุม OUTPUT (LED + USB + BUZZER)

ตัวอย่างนี้จะแนะนำการควบคุม GPIO บนบอร์ด KidBright อย่างง่าย
ดังนี้ครับ

เบื้องต้นจะเป็นการแนะนำ OUTPUT จำนวน 5 ชุด ได้แก่ LED WIFI, LED IOT, LED BT, พอร์ต USB และ BUZZER
โดยทั้ง 5 OUTPUT จะถูกต่ออยู่เข้ากับขาของ ESP32 ดังนี้
  • WIFI_LED PIN 2
  • IOT_LED PIN 12
  • USB_IO PIN 25
  • BT_LED PIN 23
  • BUZZER 13

ตัวอย่างต่อไปนี้จะทำการ เปิด-ปิด OUTPUT ทั้ง 5 ชุดสลับกัน ทุก 500 มิลลิวินาที
โดยสามารถประยุกต์นำไปใช้งานอื่นได้ตามต้องการครับ

โค๊ด: [Select]
void setup(){
pinMode(2, OUTPUT);
pinMode(12, OUTPUT);
pinMode(25, OUTPUT);
pinMode(23, OUTPUT);
pinMode(13, OUTPUT);
}

void loop(){
digitalWrite(2,HIGH);
digitalWrite(12,HIGH);
digitalWrite(25,HIGH);
digitalWrite(23,HIGH);
digitalWrite(13,HIGH);

delay(500);
digitalWrite(2,LOW);
digitalWrite(12,LOW);
digitalWrite(25,LOW);
digitalWrite(23,LOW);
digitalWrite(13,LOW);
delay(500);
}

แก้ไขเพิ่มเติมจาก : PIEAcademy - NETPIE-KidBright-Workshop2018

8
จากบทความที่แล้ว [http://quantum.engr.tu.ac.th/smf/index.php?topic=81.0]
พบว่า Plugin ของ KidBright ที่สามารถติดตั้งเพิ่มเติมได้ จะอยู่ที่ %LocalAppData%/KidBright/app-1.0.0/resources/app/kbide/plugins
(ศึกษาวิธีการเปิด จากลิงค์กระทู้ที่แล้ว)

บทความนี้จะแนะนำโครงสร้างของ Plugin ในแต่ละส่วนให้ทุกท่านทราบ โดยยกตัวอย่าง Plugins จอแสดงผล (display)

- display (โฟลเดอร์) 
           # lcd_i2c (โฟล์เดอร์)
                      msg (โฟล์เดอร์)
                              en.js (ไฟล์)
                              th.js (ไฟล์)
                      blocks.js (ไฟล์)
                      generators.js (ไฟล์)
                      lcd_i2c.cpp (ไฟล์)
                      lcd_i2c.h (ไฟล์)
           # lcd_spi (โฟล์เดอร์)
                      msg (โฟล์เดอร์)
                                 en.js (ไฟล์)
                                 th.js (ไฟล์)
                      blocks.js (ไฟล์)
                      generators.js (ไฟล์)
                      lcd_spi.cpp (ไฟล์)
                      lcd_spi.h (ไฟล์)

โดยแต่ละไฟล์และโฟล์เดอร์ จะมีความสำคัญและมีหน้าที่ ดังนี้
  • โฟล์เดอร์ display :: ใช้เก็บ Plugins, ชื่อโฟล์เดอร์มีความสำคัญมาก และต้องสอดคล้องกับไฟล์ display.json ด้านในโฟล์เดอร์
  • โฟล์เดอร์ msg :: ใช้เก็บข้อความสำหรับแสดงบนบล็อกใน KidBright IDE ทำให้การเขียนโปรแกรมครั้งเดียว สามารถแสดงได้ทุกภาษา (คล้ายกับ Translate, Translation ใน Opensource Software ต่างๆ)
  • ไฟล์ en.js :: ไฟล์ข้อความภาษาอังกฤษ
  • ไฟล์ th.js :: ไฟล์ข้อความภาษาไทย
  • ไฟล์ block.js : ไฟล์สำหรับการสร้าง Block ในการใช้งาน Function ต่างๆบน KidBright IDE สามารถสร้าง Sourcecode นี้ได้จากโปรแกรมสำเร็จรูป
  • ไฟล์ generator.js :: ไฟล์ Generator เพื่อเชื่อมโยงการต่อ Block INPUT/OUTPUT ต่างๆบนโครงสร้าง Block เพื่อใช้ในกระบวนการ C Code Generator
    สังเกตุได้จาก กระบวนการ parse ของ INPUT ต่างๆ และการ return ค่าเป็นฟังก์ชั่นที่คุ้นเคยในการเรียกใช้ Library ใน C++ ซึ่งการ return นี้จะไปปรากฏใน Sourcecode ที่จะถูก Deply ไปยัง KidBright32
  • ไฟล์ lcd_i2c.cpp หรือ lcd_spi.cpp :: ไฟล์ Sourcecode ในรูปแบบ C++ อาจเป็น Library เดิมของอุปกรณ์นั้นๆ ที่จะนำมาทำ Plugins
  • ไฟล์ lcd_i2c.h หรือ lcd_spi.h :: ไฟล์ Header ของ lcd_i2c.cpp

9
การติดตั้ง Plugin สำหรับ KidBright สามารถทำได้บน KidBright IDE เวอร์ชั่น 1.23 ขึ้นไป
โดยวิธีการอย่างง่ายในการติดตั้ง Plugin คือ




วิธีอย่างง่าย
  • ดาวน์โหลดปลั๊กอิน และ Extract ไว้รอการติดตั้ง (ควร Extract ในรูปแบบของโฟล์เดอร์)
  • คลิกขวาที่ไอคอน KidBright IDE บน Desktop
  • คลิก Open file location...
  • ไปที่โฟลเดอร์ app-1.0.0 -> resources -> app -> kbide -> plugins
  • คัดลอกไฟล์ที่ Extract ไว้ในข้อที่ 1. ลงในโฟล์เดอร์นี้
  • ปิดแล้วเปิด KidBright IDE ใหม่ จะพบ Plugin ถูกติดตั้งโดยสมบูรณ์

วิธีอย่างง่ายกว่า
  • กดปุ่ม Windows Icon บนคีย์บอร์ดค้างไว้ตามด้วยตัวอักษร R เพื่อเปิดหน้าต่าง Run
  • ใส่ข้อความ %LocalAppData%/KidBright/app-1.0.0/resources/app/kbide/plugins
  • กด Enter

** บทความนี้กำลังอยู่ในระหว่างปรับปรุง **

10
ปัจจุบันสามารถดาวน์โหลด KidBright IDE เวอร์ชั่นใหม่ล่าสุดได้ที่ :: https://www.kid-bright.org/download

โดยผู้ที่สนใจในการพัฒนา KidBright IDE เอง สามารถ Fork KidBright IDE มาพัฒนาเองได้ที่ :: https://gitlab.com/kidbright/kbide

Credit :: NEXPIE and NECTEC NSTDA

11
สำหรับผู้พัฒนาโครงงานที่ผ่านเข้ารอบ และได้รับทุนรอบแรก จำนวน 3,000 บาท ขอให้ปฏิบัติ ดังนี้

1. ตรวจสอบรายชื่อและตัวสะกดของชื่อโครงงาน ชื่อผู้พัฒนา อาจารย์ที่ปรึกษา และโรงเรียน ให้เรียบร้อย หากมีการเปลี่ยนแปลงโปรดแจ้งให้ศูนย์ประสานงานที่ท่านสังกัดทราบ และแก้ไขต่อไป ภายในระยะเวลาไม่เกิน 15 วัน นับจากวันที่ได้จัดพิธีรับทุนรอบแรก

2. ผู้พัฒนาโครงงาน ที่มีความประสงค์จะขอเปลี่ยนแปลงข้อมูลโครงงาน สามารถ ดาวน์โหลดแบบฟอร์มการเปลี่ยนแปลงข้อมูลโครงงานได้ที่หน้าเว๊ปไซต์โครงการ หรือในระบบ SIMS และดำเนินการดังนี้
2.1 การขอเปลี่ยนชื่อโครงงาน: จะต้องดำเนินการก่อนการลงนามในสัญญารับทุน โดยหัวหน้าโครงงานต้องดำเนินการยื่นแบบฟอร์มขออนุมัติเปลี่ยนแปลงข้อมูลพร้อมแนบสำเนาบัตรประชาชนเป็นหลักฐานกับศูนย์ประสานงานที่ตนสังกัด
2.2 การขอเปลี่ยนสาขาโครงงาน: ให้เป็นอำนาจการตัดสินใจของศูนย์ประสานงาน ตามที่คณะกรรมการเห็นว่าเหมาะสม
2.3 หากมีการเปลี่ยนแปลงใดๆ ที่นอกเหนือจากข้อ 2.1 และ 2.2อาทิ การขอเพิ่ม ลด หรือเปลี่ยนแปลงรายชื่อผู้พัฒนาโครงงาน อาจารย์ที่ปรึกษา และหัวหน้าโครงงาน จะต้องดำเนินการก่อนการลงนามในสัญญารับทุน โดยผู้พัฒนาโครงงานต้องดำเนินการยื่นแบบฟอร์มขออนุมัติเปลี่ยนแปลงข้อมูลกับศูนย์ประสานงานที่ตนสังกัด ภายในระยะเวลาไม่เกิน 15 วัน นับจากวันที่ประกาศผล และการขอเพิ่มรายชื่อผู้พัฒนาใหม่จะต้องไม่เป็นผู้ที่มีรายชื่อซ้ำกับผู้พัฒนาในโครงงานอื่นๆ ซึ่งส่งผลงานเข้าร่วมการประกวด YSC2019 แล้ว ทั้งนี้การเปลี่ยนแปลงใดๆ ต้องได้รับความเห็นชอบจากศูนย์ประสานงานและเนคเทคเท่านั้น

3. โครงงานที่ผ่านการพิจารณา สามารถเริ่มพัฒนาโครงงานได้ตั้งแต่บัดนี้ และโปรดเตรียมตัวนำเสนอผลงานในรอบที่ 2 ในเดือนมกราคม 2561 ซึ่งจะประกาศกำหนดการและสถานที่ให้ทราบต่อไป

4.โครงงานที่ผ่านการพิจารณาได้รับทุน ต้องส่งไฟล์รายงานสำหรับการตรวจประเมินรอบนำเสนอผลงาน (รอบ 2) ใน ระบบ SIMS https://www.nectec.or.th/sims ภายในวันที่ 15 มกราคม 2562 เวลา 17.00 น. เท่านั้น หากพ้นกำหนดจะถูกตัดสิทธิ์การพิจารณาในรอบถัดไป และศูนย์ประสานงานและส่วนกลาง YSC ขอสวงนสิทธิ์ไม่ทำการอัฟโหลดไฟล์รายงานให้ทุกกรณี พร้อมขอคืนทุกการพัฒนาผลงานด้วย

5. โครงงานที่ผ่านการพิจารณาได้รับทุน ต้องนำส่งเอกสารข้อตกลงการรับทุนทั้ง 2 ฉบับ ซึ่งผู้พัฒนาต้องพิมพ์ออกจากระบบ SIMS พร้อมสำเนาบัตรบัตรประชาชน ที่มีการลงนามเรียบร้อย ส่งมอบให้แก่ศูนย์ประสานงานในพิธีมอบทุนโครงงานตามวันที่ที่ศูนย์ประสานงานที่ท่านสังกัดกำหนด ซึ่งจะประกาศให้ทราบอย่างเป็นทางการผ่านทาง Facebook: Young Scientist Competition - YSC Thailand และ YSC Thailand Fanpage อีกครั้งหนึ่ง

โดยผู้พัฒนาสามารถติดต่อส่งเอกสารขอรับทุนพัฒนาโครงงานงวดที่ 1 จำนวน 3,000 บาท ได้ที่ ศูนย์ประสานงานภูมิภาคที่ท่านสังกัด ภายใน 30 วัน หลังจากวันจัดพิธีมอบทุนตามที่ศูนย์ประสานงานกำหนด หากพ้นกำหนดศูนย์ฯ จะถือว่าท่านสละสิทธิ์การขอรับทุนสนับสนุนการพัฒนาโครงงาน และสิทธิ์ในการแข่งขันต่อไป

ทั้งนี้ ศูนย์ประสานงานภูมิภาค จะจัดพิธีมอบทุนและค่ายโครงงานวิทยาศาสตร์ ตามที่จะประกาศให้ทราบต่อไปดังนี้
1. ภาคเหนือ ณ มหาวิทยาลัยนเรศวร วันที่ 1 - 2 พฤศจิกายน 2561
2. ภาคตะวันออกเฉียงเหนือ (ศูนย์มหาวิทยาลัยเทคโนโลยีสุรนารี) ณ มหาวิทยาลัยเทคโนโลยีสุรนารี วันที่: รอการยืนยัน 3. ภาคตะวันออกเฉียงเหนือ (ศูนย์มหาวิทยาลัยอุบลราชธานี) ณ มหาวิทยาลัยอุบลราชธานี วันที่: 12 - 13 พฤศจิกายน 2561
4. ภาคใต้ ณ มหาวิทยาลัยวลัยลักษณ์ วันที่: 17 พฤศจิกายน 2561
5. ภาคกลาง ณ มหาวิทยาลัยธรรมศาสตร์ วันที่: รอการยืนยัน

เอกสารที่ใช้ประกอบการทำสัญญาและเบิกจ่ายเงินทุน ประกอบด้วย
1. ข้อตกลงการรับทุนอุดหนุน จำนวน 2 ชุด สามารถดาวน์โหลดและจัดพิมพ์จำนวน 2 ชุด ได้จากระบบ SIMS ตั้งแต่วันที่ 19 ตุลาคม 2561 โดยผู้พัฒนาที่เป็นหัวหน้าโครงงานและอาจารย์ที่ปรึกษาต้องลงนามให้ครบถ้วน ทั้ง 2 ชุด ในกรณีที่ผู้พัฒนาอายุน้อยกว่า 15 ปีบริบูรณ์ให้ผู้ปกครองลงนามในฐานะผู้แทนโดยชอบธรรมด้วย
2. สำเนาบัตรประจำตัว 1 ฉบับ ที่ลงนามสำเนาถูกต้องและยังไม่หมดอายุของผู้พัฒนาที่เป็นหัวหน้าโครงงาน อาจารย์ที่ปรึกษา และผู้ปกครอง (กรณีผู้พัฒนาอายุน้อยกว่า 15 ปี)
3. ใบสำคัญรับเงินของผู้พัฒนาที่เป็นหัวหน้าโครงงาน (รับได้ที่ศูนย์ประสานงาน) จำนวน 1 ฉบับ
4. หนังสือมอบอำนาจ ในกรณีที่หัวหน้าโครงงานไม่สามารถมารับทุนได้ ให้ทำหนังสือมอบอำนาจลงนามโดยหัวหน้าโครงงาน พร้อมทั้งสำเนาบัตรประชาชน และบัตรประจำตัวของผู้รับมอบอำนาจ

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

ทั้งนี้ สามารถติดตามความเคลื่อนไหวของโครงการแข่งขัน YSC ได้ที่เว็บไซต์หลักของโครงการ หรือ Facebook ของโครงการ

ดาวน์โหลดเอกสารเพิ่มเติม

12
สำหรับน้องๆ โครงการ YSC 2019 จากภาคกลาง กาคตะวันออกเฉียงเหนือ (ศูนย์ ม.อุบลราชธานี) ภาคเหนือ และภาคใต้ ที่ทราบผลการตัดสิน โดยมีชื่อผ่านเข้ารอบข้อเสนอโครงงาน และมีสิทธิ์ได้รับทุน 3,000 บาท ไปนอนในกระเป๋าเป็นที่เรียบร้อย

หากมีความประสงค์จะขอเปลี่ยนแปลงข้อมูลโครงงาน ผู้พัฒนาโครงงานต้องดำเนินการยื่นแบบฟอร์มขออนุมัติเปลี่ยนแปลงข้อมูลกับศูนย์ประสานงานที่ตนสังกัด ภายในระยะเวลาไม่เกิน 15 วัน นับจากวันที่ประกาศผล โดยสามารถ ดาวน์โหลดแบบฟอร์มการเปลี่ยนแปลงข้อมูลตามไฟล์ที่แนบมานี้ หรือสามารถ ดาวน์โหลดแบบฟอร์มฯ ได้ที่หน้าเว๊ปไซต์โครงการ หรือในระบบ SIMS และดำเนินการดังนี้

2.1 การขอเปลี่ยนชื่อโครงงาน: จะต้องดำเนินการก่อนการลงนามในสัญญารับทุน โดยหัวหน้าโครงงานต้องดำเนินการยื่นแบบฟอร์มขออนุมัติเปลี่ยนแปลงข้อมูลพร้อมแนบสำเนาบัตรประชาชนเป็นหลักฐานกับศูนย์ประสานงานที่ตนสังกัด ภายใน 15 วัน นับจากวันจัดพิธีรับทุนรอบแรกตามที่ศูนย์ประสานงานกำหนด

2.2 การขอเปลี่ยนสาขาโครงงาน: ให้เป็นอำนาจการตัดสินใจของศูนย์ประสานงาน ตามที่คณะกรรมการเห็นว่าเหมาะสม

2.3 หากมีการเปลี่ยนแปลงใดๆ ที่นอกเหนือจากข้อ 2.1 และ 2.2อาทิ การขอเพิ่ม ลด หรือเปลี่ยนแปลงรายชื่อผู้พัฒนาโครงงาน อาจารย์ที่ปรึกษา และหัวหน้าโครงงาน จะต้องดำเนินการก่อนการลงนามในสัญญารับทุน โดยผู้พัฒนาโครงงานต้องดำเนินการยื่นแบบฟอร์มขออนุมัติเปลี่ยนแปลงข้อมูลกับศูนย์ประสานงานที่ตนสังกัด ภายในระยะเวลาไม่เกิน 15 วัน นับจากวันที่ประกาศผล และการขอเพิ่มรายชื่อผู้พัฒนาใหม่จะต้องไม่เป็นผู้ที่มีรายชื่อซ้ำกับผู้พัฒนาในโครงงานอื่นๆ ซึ่งส่งผลงานเข้าร่วมการประกวด YSC2019 แล้ว ทั้งนี้การเปลี่ยนแปลงใดๆ ต้องได้รับความเห็นชอบจากศูนย์ประสานงานและเนคเทคเท่านั้น

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

13
[คำถามจากทางบ้าน] คำถาม kitbright จากเด็กบ้านเรียน :: [โปรแกรมทำงานไม่ทันเวลา]
เห็นว่ามีประโยชน์จึงนำมาลงไว้ครับ

อ้างถึง
เรียน อาจารย์ วัชระ


ต้องขอโทษครับที่รบกวนเวลาของอาจารย์ คือนึกไม่ออกว่าจะถามใคร พอดีได้เข้ามาอยู่ในกลุ่ม kitbright ของธรรมศาสตร์ เลยต้องรบกวนอาจารย์เฉลยแนวทางแก้ปัญหาให้หน่อยครับ


ผมซื้อ kitbright มาหัดเขียนโคดกับลูกครับ   เราก้อเอาตัวอย่างจากในเนท  จากเวบโน่นผสมเวบนี่  โครงานที่ผมกับลูกทำคือตู้จดหมายอัจฉริยะครับ   หลักการคือ เมื่อุบุรุษไปรษณียเข้ามาใกล้กล่องเครื่องรับ จะมีข้อความบอกวิธีใส่จดหมาย   และเมื่อจดหมายถูกหย่อนเข้าในกล่อง จะมีข้อความแจ้งเตือนทางไลน์ไปบอกเจ้าของบ้านให้มาเปิด


โปรแกรมในส่วนข้อความบอกบุรุษไปรษณีย์ทำงาน
โปรแกรมในส่วนแจ้งเตือนทางไลน์ทำงาน

ปัญหาคือโปรแกรมทั้งสองไม่สามารถทำงานพร้อมกัน  เมื่อ led บอกบุรุษไปรษณีย์ทำงาน คำสั่งเตือนทางไลน์จะไม่ทำงาน ต้องรอจนข้อความจาก LED จบสถานะก่อน  การแจ้งเตือนทางไลน์จึงจะทำงานได้  สังเกตจาก led ที่ถูกเซทให้เป็นมอนิเตอร์  ไม่ทราบว่าต้องแก้โคดอย่างไร สองส่วนจึงจะทำงานได้เป็นอิสระอย่างที่ควรจะเป็นครับ


ขอบพระคุณ

รักเกียรติ ท.

14
เรียน คุณครู/อาจารย์ที่ปรึกษาโครงงาน KidBright ที่เคารพทุกท่าน

โครงการ "การประกวดโครงงานของนักวิทยาศาสตร์รุ่นเยาว์ (Young Scientist Competition - YSC)" โดย
ศูนย์เทคโนโลยีอิเล็กทรอนิกส์และคอมพิวเตอร์แห่งชาติ (NECTEC) สำนักงานพัฒนาวิทยาศาสตร์และเทคโนโลยีแห่งชาติ (NSTDA) ร่วมกับมหาวิทยาลัยนเรศวร  มหาวิทยาลัยอุบลราชธานี มหาวิทยาลัยเทคโนโลยีสุรนารี มหาวิทยาลัยวลัยลักษณ์ และมหาวิทยาลัยธรรมศาสตร์ ศูนย์รังสิต  ขอเชิญอาจารย์ที่ปรึกษาทุกท่าน ที่ได้ส่งผลงานเข้าร่วมการประกวดโครงงาน KidBright ซึ่งปัจจุบันอยู่ระหว่างระยะการพัฒนาผลงานเพิ่มเติม เพื่อเตรียมตัวเข้าสู่รอบชิงชนะเลิศนั้น

อาจารที่ปรึกษาทุกท่าน สามารถส่งผลงานนักเรียนมัธยมศึกษาปีที่ 2 - 6 หรือเทียบเท่า เข้าร่วมการแข่งขันในการประกวดโครงงานของนักวิทยาศาสตร์รุ่นเยาว์ ครั้งที่ 21: Young Scientist Competition - YSC: YSC 2019 เพื่อชิงทุนการศึกษา และโอกาสในการเป็นตัวแทนประเทศไทยเดินทางเข้าร่วมการแข่งขันประกวดโครงงานนานาชาติ Intel ISEF 2019 ณ  ณ เมือง Phoenix, Arizona, ประเทศสหรัฐอเมริกา และโอกาสเข้าร่วมการแข่งขันโครงงงานนานาชาติอื่นๆ อีกมากมาย

โครงงานที่มีข้อเสนอ KB อยู่แล้ว สามารถส่งแข่งในการประกวดโครงงาน YSC 2018 เพียงให้หัวหน้าโครงงานเข้ามาส่งข้อเสนอในกิจกรรม YSC 2019 อีกครั้งหนึ่ง หากโครงงานผ่านเข้ารอบข้อเสนอโครงงานจะได้รับทุนการศึกษา 3,000 บาท และมีระยะเวลาพัฒนาผลงานจนถึงเดือนมกราคม 2561 พร้อมการอบรม  และคำชี้แนะจากคณะกรรมการเพิ่มเติม พร้อมทุกนการศึกษาในแต่ละรอบอีกมากมาย รอบชิงเดือนมีนาคม 2561 โปรดดูกำหนดการตามโปสเตอร์ประชาสัมพันธ์โครงการ

กำหนดระยะเวลาการเปิดรับสมัคร
- สมัครและส่งไฟล์ข้อเสนอโครงการ Online ได้ที่ www.nectec.or.th/sims ระหว่าง 1 กันยายน - 29 กันยายน 2561 (ปิดรับ 17.00 น.) โดย YSC 2019 ปีนี้ เปิดรับส่งโครงงานทาง Online เท่านั้น รอบแรกไม่ต้องส่งข้อเสนอโครงงานและเอกสารใดๆ มาที่ศูนย์ประสานงาน ดูรายละเอียดวิธีการสมัครและการเตรียมเอกสารได้ตามไฟล์แนบ

อาจารย์ทุกท่านสามารถติดตามผลการลงทะเบียนของนักเรียนในความดูแลได้ที่ https://www.nectec.or.th/sims/login/index.php?class=AnnounceView

การลงทะเบียนและส่งข้อเสนอโครงงานเข้าร่วมการแข่งขัน YSC 2019 มี 2 ขั้นตอนหลักๆ (โดยย่อ) ดังนี้
ขั้นตอนที่ 1 การลงทะเบียนเยาวชน (นักเรียน/ผู้เข้าแข่งต้องทำทุกคน คุณครูที่ปรึกษาไม่ต้องลงทะเบียน นักเรียนที่เคยลงแล้วไม่ต้องลงซ้ำ เพียงแค่เข้าระบบมาอัฟเดทสถานะการศึกษาเท่านั้น)
ขั้นตอนที่ 2 การลงทะเบียนและส่งข้อเสนอโครงการ (เฉพาะนักเรียนที่เป็นหัวหน้าโครงการ เพื่อนร่วมทีม และคุณครูที่ปรึกษาไม่ต้องลงทะเบียน) อ่านขั้นตอนเพิ่มเติมได้ตามไฟล์แนบ

สาขาที่เปิดแข่งขัน
ชีววิทยา (Biology)
เคมี (Chemistry)
คอมพิวเตอร์ (Computer)
วิศวกรรม (Engineering)
วิทยศาสตร์สิ่งแวดล้อม (Environmental Science)
คณิตศาสตร์ (Mathematics)
วัสดุศาสตร์ (Material Science)
ฟิสิกส์ พลังงาน และดาราศาสตร์ (Physics, Energy, and Astronomy)

ประกาศข้อห้ามต่างๆ
ห้ามงานที่เกี่ยวข้องกับเชื้อก่อโรคที่ต้องใช้ biosafety level BSL-3 หรือ BSL-4 โดยใช้หลักการ biosafety level ตามแบบมาตรฐานนานาชาติ
ห้ามงานที่ก่อให้เกิดเชื้อต้านยาเพิ่มขึ้น (เช่นเพิ่มการต้านยาจาก 1 ตัวยาเป็น 2 ตัวยา)
ห้ามงานที่ก่อให้เกิดแอลกอฮอล์เพื่อการกิน หรือ ยาเสพติดร้ายแรง
ห้ามงานที่เกี่ยวข้องกับสารชีวภาพที่สามารถใช้ทำเป็นอาวุธได้ (biological agents)
ห้ามการทดลองที่ก่อให้เกิดความเครียดหรือความเจ็บปวดกับคนห้ามงานที่ผิดกฏหมาย
ห้ามโครงงานที่มีการฆ่าสัตว์โดยตรง โดยเฉพาะสัตว์มีกระดูกสันหลัง
ห้ามโครงการที่ทดลองกับสัตว์เลี้ยงลูกด้วยนม หรืออาจทำได้หากได้รับการยินยอมจาก YSC Fair Director เป็นลายลักษณ์อักษร
ห้ามโครงงานที่ใช้เลือดมนุษย์ประกอบการทดลอง หรืออาจทำได้หากได้รับการยินยอมจาก YSC Fair Director เป็นลายลักษณ์อักษร
ห้ามงานที่เกี่ยวข้องกับระเบิดและดินปืน (explosive materials) อาจทำได้ถ้าได้รับการยินยอมจาก YSC Fair Director เป็นลายลักษณ์อักษร และอยู่ภายใต้กฏหมายงานที่ใช้สารกัมมันตรังสี หรืออาจทำได้ถ้าได้รับการยินยอมจาก YSC Fair Director เป็นลายลักษณ์อักษร และอยู่ภายใต้กฏหมาย

รางวัล
- โครงงานที่ผ่านเข้ารอบข้อเสนอโครงงานจะได้รับทุนการศึกษาพัฒนาผลงาน โครงงานละ 3,000 บาท
- โครงงานผ่านรอบ 2 ได้รับทุนสนับสนุนเพิ่มเติม 9,000 บาท พร้อมใบประกาศนียบัตร (แบ่งจ่ายเงินสำหรับผู้พัฒนา 80% และอาจารย์ที่ปรึกษา 20 % และทุกคนที่มีชื่อจะได้รับใบประกาศในรอบนี้ )
- โครงงานเข้ารอบชิงชนะเลิศ  ได้รับทุนสนับสนุนเพิ่มเติม 9,000 บาท ค่าเดินทางเข้าร่วมประกวดรอบชิงตามเกณฑ์ที่โครงการกำหนด พร้อมใบประกาศนียบัตรเข้ารอบ 2 และรอบชิงชนะเลิศ  (แบ่งจ่ายเงินสำหรับผู้พัฒนา 80% และอาจารย์ที่ปรึกษา 20 % และทุกคนที่มีชื่อจะได้รับใบประกาศในรอบนี้ )
- โครงงานได้รับรางวัลชนะเลิศ มูลค่า 60,000 บาท พร้อมการอบรมเตรียมความพร้อมอย่างเข้มข้น เพื่อเป็นตัวแทนประเทศไทยเข้าร่วมการแข่งขัน Intel ISEF 2019
- โครงงานได้รับรางวัลรองชนะเลิศ มูลค่า 30,000 บาท พร้อมโอกาสในการได้รับคัดเลือกเป็นตัวแทนประเทศไทยเข้าร่วมการแข่งขัน Intel ISEF 2019 และการประกวดเวทีอื่นๆ
พิเศษ!!  ปีนี้ สำหรับนักเรียนผู้พัฒนาโครงงานทุกโครงงานที่ได้รับการคัดเลือกให้เป็นตัวแทนประเทศไทยไป Intel ISEF 2019 จะได้รับการสนับสนุนค่าเดินทางเต็มจำนวนนะคะ

หมายเหตุ:
ประเด็นหลักๆ จาก YSC 2018 ที่ผ่านมา ซึ่งทางโครงการ YSC ต้องขอความกรุณาอาจารย์แนะนำให้นักเรียนพึงระวังระหว่างการสมัครคือ
1. นักเรียนกรอกข้อมูลเบื้องต้น แล้วไม่ทำการ Verify อีเมล์ที่ใช้ในการลงทะเบียน ทำให้ไม่สามารถดำเนินการขั้นตอนต่อไปได้
2. นักเรียน ไม่ใช้ข้อมูลจริงในการลงทะเบียน เช่น หมายเลขบัตรประชนของคนอื่น และอีเมล์ที่ไม่สามารถใช้งานได้จริง
3. นักเรียนกรอกข้อมูลการศึกษาไม่เสร็จ จึงทำให้ไม่มีชื่อปรากฏในขั้นตอนกรอกข้อเสนอโครงงาน
4. การส่งข้อเสนอโครงงาน น้องๆ ทำการแก้ไขข้อเสนอโครงงาน แล้วไม่คลิ๊กส่งใหม่อีกครั้งทำให้เมื่อระบบปิดรับแล้วไม่ปรากฏว่าน้องทำการส่งไฟล์  ซึ่งน้องๆ สามารถแก้ไขไฟล์ได้เรื่อยๆ จนกว่าจะระบบจะปิดรับสมัคร แต่ทุกครั้งที่น้องแก้ไขไฟล์ ต้องคลิีกส่งข้อเสนอโครงงานใหม่ทุกครั้ง
5. อาจารย์ลงทะเบียนในฐานข้อมูลเยาวชน ทำให้นักเรียนไม่สามารถเลือกชื่อคุณครูเข้าโครงการได้ในขั้นตอนการส่งข้อเสนอโครงงาน  ซึ่งหากท่านใดลงไปแล้วสามารถแจ้งให้แอดมินลบข้อมูลของท่านออกจากระบบได้
6. นักเรียนทำการลงทะเบียนวันสุดท้าย ทำให้โครงการไม่สามารถช่วยแก้ไขใดๆ ได้ทัน

หากมีปัญหาเรื่องการลงทะเบียน และการส่งข้อเสนอโครงงาน

โปรดแจ้งปัญหาของท่านที่เมนู รายการแจ้งปัญหาที่หน้าระบบ SIMS พร้อมระบุปัญหา และสิ่งที่ต้องการแก้ไขมาให้ชัดเจน www.nectec.or.th/sims/login/index.php   จะมีแอดมินดูแลและคอยตอบคำถามผ่านระบบให้ทุกท่านในระหว่างวันจันทร์ - ศุกร์ในเวลาราชการ ดังนั้นหากนักเรียนสนใจเข้าร่วมโครงงานควรเร่งดำเนินการสมัครลงทะเบียนเยาวชนให้เรียบร้อยก่อน

ติดตามข่าวโครงการ YSC และผลงานน้องๆ ได้ที่ Facebook: YSC Thailand Fanpage  และ YSC Thailand  หรือเว๊ปไซต์ของโครงการ YSC

15
หัวข้อนี้ได้ถูกย้ายไปบอร์ด KidBright with Arduino IDE Q&A.

http://quantum.engr.tu.ac.th/smf/index.php?topic=62.0

16
ถาม : ทำไมไม่ต่อะไร แต่ INPUT แสดงค่าเป็น 0,1 สลับไปมาเอง

ตอบ : เนื่องจาก INPUT ของบอร์ดไมโครคอนโทรลเลอ์ทุกชนิด จะมีความไว (Sensitivity) ต่อการเปลี่ยนสถานะ (จาก HIGH เป็น LOW หรือ จาก 0 เป็น 1 หรือกลับกัน) เป็นอย่างมาก
ไม่ว่าจะเป็นการเปลี่ยนสถานะของ PIN ข้างเคียง , อากาศ , บอร์ดต่อวงจร (Breadboard) , หรือแม้กระทั่งอากาศ

ลักษณะดังกล่าวนี้เรียกว่า "ขาลอย" (Floating Pin)

ซึ่งสามารถแก้ไขปัญหานี้ด้วยการ Pull-up หรือ Pull-down ขา INPUT นั้น ซึ่งจะได้อธิบายในบทความต่อไป

บทความที่เกี่ยวข้อง :::
- Coming Soon-

17
บอร์ดสมองกลฝังตัว KidBright และ เซนเซอร์ KidBright มีผู้แทนจำหน่ายอย่างเป็นทางการที่ เว็บไซต์ https://www.kidbright.io/

ทั้งนี้ ยังสามารถหาซื้อเซนเซอร์และอุปกรณ์ต่อพ่วงอื่นๆได้จากผู้จำหน่ายผลิตภัณฑ์ทางด้านอิเล็กทรอนิกส์อื่นๆทั่วไป

หมายเหตุ : หากผู้จำหน่ายรายใดต้องการประชาสัมพันธ์ KidBright Sensor ของตน สามารถแจ้งได้ที่กระทู้นี้ครับ
ผมจะทยอยมาอัพเดทให้เป็นระยะครับ

18
NECTEC ได้พัฒนาโปรแกรมจำลองสำหรับการพัฒนาบอร์สมองกลฝังตัว KidBright
โดยสามารถเข้าถึงได้ที่

http://kidbright.in.th:8000/home

KidBright สามารถเขียนโปรแกรมแบบ Simulation บนหน้าเวปโดยที่ไม่ต้องมีบอร์ดได้แล้ว http://kidbright.in.th:8000


รายละเอียดการจำลองอินพุตเอาท์พุตบนบอร์ด KidBright32

LED 16x8 = ทำงานตามคำสั่งแสดงผล
LM73 = จำลองการตั้งค่าค่าอุณหภูมิด้วยการใช้เมาส์ลาก Slider
LDR = จำลองการตั้งค่าความเข้มแสงด้วยการใช้เมาส์ลาก Slider
S1,S2 = กดเมาส์ค้างเพื่อกดปุ่ม ปล่อยเมาส์เพื่อปล่อยปุ่ม
USB = แสดงสถานะด้วยรูป USB LED
IN1 = เซ็นเซอร์ตรวจจับการเปิดปิดประตู กำหนดสถานะด้วยการคลิ๊กเมาส์เพื่อเปิดปิดประตู
IN2,IN3,IN4 = กำหนดสถานะด้วยการคลิ๊กเมาส์ที่จุดเชื่อมต่อบนบอร์ด
OUT1 = แสดงสถานะด้วยรูปแอนนิเมขั่นมอเตอร์
OUT2 = แสดงสถานะด้วยรูป LED ติดดับ
BUZZER = สร้างเสียงตามคำสั่ง

หมายเหตุ: แนะนำให้ใช้งานบน Google Chrome Browser


19
ถาม : จะหา ไฟล์ Library (Arduino IDE) ของจอ Dot Matrix ของบอร์ด KidBright32 ได้อย่างไร

ตอบ : สามารถดาวน์โหลดไฟล์ Library จอ Dot Matrix สำหรับ Arduino IDE ของบอร์ด KidBright IDE ได้ตามไฟล์แนบ
โดยจำเป็นต้องลง Libraries ทั้ง 2 ชุดในโฟล์เดอร์ Libraries ของ Arduino

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



ตัวอย่าง Code (ขอขอบคุณ คุณ Jack จากกลุ่ม KidBright Master)
โค๊ด: [Select]
#include <Wire.h>
#include <Adafruit_GFX.h>
#include "Adafruit_LEDBackpack.h"

Adafruit_8x16minimatrix matrix = Adafruit_8x16minimatrix();

void setup() {
matrix.begin(0x70);
}

static const uint8_t PROGMEM
smile_bmp[] =
{ B00111100,
B01000010,
B10100101,
B10000001,
B10100101,
B10011001,
B01000010,
B00111100 },
neutral_bmp[] =
{ B00111100,
B01000010,
B10100101,
B10000001,
B10111101,
B10000001,
B01000010,
B00111100 },
frown_bmp[] =
{ B00111100,
B01000010,
B10100101,
B10000001,
B10011001,
B10100101,
B01000010,
B00111100 };

void loop() {
matrix.setRotation(1);
matrix.setTextSize(1);
matrix.setTextWrap(false);
matrix.setTextColor(LED_ON);
for (int8_t x=7; x>=-75; x--) {
matrix.clear();
matrix.setCursor(x,0);
matrix.print("Hello World");
matrix.writeDisplay();
delay(100);
}
matrix.setRotation(1);
}

21
หัวข้อนี้ได้ถูกย้ายไปบอร์ด KidBright IoT Q&A.

http://quantum.engr.tu.ac.th/smf/index.php?topic=17.0

22
หัวข้อนี้ได้ถูกย้ายไปบอร์ด KidBright Sensor Q&A.

http://quantum.engr.tu.ac.th/smf/index.php?topic=25.0

24
ถาม : จะหาไฟล์ภาษาซี จากการ Build ของ KidBright IDE ได้อย่างไร

ตอบ : สามารถหาไฟล์ที่เกิดจาก Code Generation ของ KidBright IDE ในรูปแบบของภาษา C++ ได้โดย
  • คลิกขวาที่ไอคอน KidBright IDE ที่หน้า Desktop
  • คลิก Properties
  • คลิก Open File Location
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ resources
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ app
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ esp32
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ build
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ ตาม MAC ADDRESS ของบอร์ดที่ต้องการไฟล์
  • เปิดไฟล์ user_app.cpp ด้วยโปรแกรม Text Editor เช่น Notepad , Notepad++ , atom , Arduino IDE, etc.


25
ถาม : จะออกแบบวงจรบน KidBright ด้วยโปรแกรม Fritzing ทำอย่างไร ?

ตอบ : สามารถดาวน์โหลดไฟล์ Part สำหรับบอร์ด KidBright32 ได้จาก ไฟล์แนบ หลังจากดาวน์โหลดแล้วให้ทำการเปิดโดยใช้โปรแกรม Fritzing โดยใช้เมนู Files -> Open


26
ถาม : การใช้งาน OUTPUT (OUT1/OUT2) บน KidBright ทำอย่างไร ??

ตอบ : การใช้งาน OUTPUT บนบอร์ด KidBright อันได้แก่ OUT1 หรือ OUT2 นั้น จะมีลักษณะพิเศษกว่าบอร์ดทดลองอื่นๆ เนื่องจาก KidBright ออกแบบวงจรภาค OUTPUT เป็นลักษณะวงจรแบบ Open-Drain Circuit เพื่อป้องกันความเสียหายอันมีโอกาสจะเกิดขึ้นกับบอร์ดในกรณีต่อวงจรผิดพลาด   ดังนั้น การต่อ OUTPUT ของ KidBright จึงมีลักษณะพิเศษกว่าบอร์ดอื่นๆ

ก่อนใช้งาน OUTPUT ของ KidBright ขอให้ตรวจสอบก่อนว่า อุปกรณ์ไฟฟ้าที่จะนำมาต่อ มีคุณสมบัติดังต่อไปนี้
  • เป็นอุปกรณ์ไฟฟ้าที่ใช้แรงดันไฟฟ้ากระแสตรง (DC | Direct Current)
  • แรงดันขณะทำงานไม่เกิน 60 โวลต์ และกินกระแสไม่เกิน 115 มิลลิแอมแปร์

การเชื่อมต่อ
  • ขั้วบวก (Positive) ของอุปกรณ์ต่อพ่วง ต่อกับ 5V ของบอร์ด KidBright (กรณีอุปกรณ์ทำงานที่แรงดัน  5V) หรือ ไฟเลี้ยง (กรณีอุปกรณ์ทำงานที่แรงดันระดับอื่น)
  • ขั้วลบ (Ground) ของอุปกรณ์ต่อพ่วง ต่อกับ OUT1 หรือ OUT2 ของบอร์ด KidBright ตามต้องการ
  • กรณีใช้ไฟเลี้ยงอุปกรณ์จากแหล่งอื่นๆ ให้ต่อ Ground ของแหล่งจ่ายไฟนั้น ร่วมกับ Ground (GND) ของบอร์ดทดลอง KidBright เสมอ

ผังการต่อวงตรดูได้ตามไฟล์แนบ

27
ถาม : Sensor แบบใดบ้าง ที่สามารถนำมาใช้กับบอร์ด KidBright ได้

ตอบ : ช่องเชื่อมต่อ IN1/IN2/IN3 และ IN4 ของ KidBright นั้น รองรับการเชื่อมต่อเฉพาะ Sensor แบบ Digital
โดยในเบื้องต้นสามารถเลือกซื้อ Sensor สำหรับ KidBright ผ่านทางผู้แทนจำหน่ายได้ที่เว็บไซต์ http://www.kidbright.io

28
KidBright IoT Q&A / FAQ : ทำไมไม่สามารถใช้งาน KidBright IoT ได้ ??
« เมื่อ: สิงหาคม 22, 2018, 03:10:59 PM »
ถาม : ทำไมบอร์ด KidBright บางบอร์ดไม่สามารถใช้งาน IoT ได้ ??

ตอบ : ปัญหาการใช้งาน KidBright IoT เกิดขึ้นได้หลายประการ เช่น

ไม่สามารถเชื่อมต่ออินเตอร์เน็ตได้
ในกรณีนี้เกิดขึ้นจาก KidBright ไม่สามารถต่ออินเตอร์เน็ตได้ สังเกตุได้จาก ไฟ WiFi บนบอร์ดไม่ติด สามารถตรวจสอบได้โดยการตั้งค่า Wi-Fi ใหม่ในโปรแกรม KidBright IDE

ไม่สามารถเชื่อมต่อ IoT ได้
เกิดขึ้นได้ 2 กรณีคือ
1) ไม่ได้ทำเครื่องหมายถูก ในเมนู Wi-Fi Config ว่าให้เปิดการใช้งาน IoT และ
2) บอร์ด KidBright ของท่านยังไม่ได้รับการลงทะเบียนให้ใช้งาน KidBright โปรดติดต่อ contact@nexpie.com และแจ้ง โรงเรียน/ผู้ใช้งานบอร์ด รวมถึง MAC Address เพื่อขอลงทะเบียน

29
ถาม : Feed และ Guage แตกต่างกันอย่างไรบน KidBright IDE ?

ตอบ :
ในแง่ของการใช้งานบน KidBright IoT Application : Feed จะแสดงเป็นกราฟโดยมีแกนนอนเป็นเวลา และ แกนตั้งเป็นข้อมูลตัวเลข , Guage จะแสดงข้อมูลล่าสุดในรูปแบบของมาตรวัด (เกจ)
ในแง่ของการเก็บข้อมูลบน NETPIE Cloud : Feed จะเก็บข้อมูลตามเวลา, Guage จะเก็บเฉพาะข้อมูลล่าสุด

30
ถาม :  เขียนโปรแกรมด้วย KidBright IDE แล้ว จะใช้งาน KidBright IoT ได้อย่างไร ?

ตอบ : ดาวน์โหลดโปรแกรม KidBright IoT จาก Play Store (สำหรับระบบปฏิบัติการ Android) และ KidBright IoT จาก App Store (สำหรับระบบปฏิบัติการ iOS) จากนั้นสแกน QR Code ที่ปรากฏในโปรแกรม KidBright IDE (ในเมนู QR Code) เพื่อเข้าใช้งาน KidBright IDE

โปรแกรม KidBright IoT สามารถดาวน์โหลดได้ที่ :
Google Play Store : https://play.google.com/store/apps/details?id=io.netpie.kbiot
Apple App Store : https://itunes.apple.com/tt/app/kidbright-iot/id1417884943?mt=8





31
สามารถดูตัวอย่างการเขียนบทคัดย่อโครงงานวิทยาศาสตร์ที่น่าสนใจได้ทาง
http://fic.nectec.or.th/abstract

32
ถาม : YSC21 (YSC2019) เปิดรับข้อเสนอโครงการถึงเมื่อใด ??

ตอบ : เปิดรับลงทะเบียนผู้เข้าร่วมการแข่งขันตั้งวันที่ 25 กรกฎาคม 2561 เป็นต้นไป
เปิดรับข้อเสนอโครงการ ตั้งแต่ 1 - 29 กันยายน 2561

33
ถาม : จะสามารถหาบทเรียนออนไลน KidBright หาได้จากที่ใหน ??
ตอบ : สามารถชมบทเรียนออนไลน์โดย NECTEC ได้ที่ https://www.kid-bright.org/manual/article/67


34
ถาม : จะต่อ Sensor ที่มี Output เป็นแบบ Analog ได้อย่างไร ?
ตอบ : ในช่วงนี้ การต่อ Sensor ที่มี Output แบบ Analog ยังจำเป็นต้องต่อผ่านชุดวงจรเปรียบเทียบแรงดัน (Voltage Comparator) ซึ่งทำหน้าที่แปลงแรงดันจาก Sensor (Output Voltage) เปรียบเทียบกับแรงดันอ้างอิง (Threshold Voltage) แล้วให้สัญญาณดิจิตอลเป็น 0 (0 โวลต์) หรือ 1 (5 โวลต์) ในกรณีแรงดันจาก Sensor สูงหรือต่ำกว่าแรงดันอ้างอิง (ตามการออกแบบวงจร) เผื่อนำเข้าสู่ Digital Input ของ KidBright เพื่ออ่านข้อมูลต่อไป

โดยในอนาคตอันใกล้จะมีการออกแบบวงจรอ่านค่าอนาล็อกเพื่อทำงานร่วมกัน KidBright Chain ในอนาคต

35
ถาม : จะอัพเดทเวอร์ชั่น KidBright IDE ทำอย่างไร ?
ตอบ :โดยปกติแล้ว KidBright IDE จะทำการอัพเดทตัวเองทุกครั้งที่เปิดโปรแกรม และมีการต่ออินเตอร์เน็ต


36
ถาม : แบตเตอรี่ที่ใช้กับวงจรนาฬิกาบน KidBright ใช้แบบใหน
ตอบ : ใช้แบตเตอรี่สำหรับนาฬิกาข้อมือรุ่น CR2032

37
ถาม : เซนเซอร์แสง (LDR) บน บอร์ด KidBright ทำงานอย่างไร
ตอบ : เซนเซอร์แสง ซึ่งทำขึ้นจากตัวต้านทานแบบปรับค่าได้ที่มีความไวต่อแสง ทำงานโดยวงจรแบ่งแรงดัน เมื่อมีแสงมากจะให้ค่ามาก และ แสงน้อยให้ค่าน้อย โดยสามารถทดสอบการทำงานได้โดยการใช้วัตถุปิดที่หัววัดแสง (LDR) ซึ่งอยู่บนหน้าจอ


38
KidBright Dev. Board Q&A / FAQ : KidBright กินไฟเท่าไหร่ ?
« เมื่อ: สิงหาคม 20, 2018, 08:23:41 PM »
ถาม : KidBright กินไฟเท่าไหร่ ?
ตอบ : อัตราการใช้พลังงานไฟฟ้าของบอร์ด KidBright ขึ้นอยู่กับการทำงาน ณ ขณะนั้น โดยทั่วไปแล้วกินกระแสไม่เกิน 0.1 แอมป์ ที่แรงดันไฟ 5 โวลต์ คิดเป็นกำลังงาน 0.5 วัตต์

39
ถาม : ไม่สามารถอัพโหลด หรือใช้งานบอร์ด KidBright ได้ ทำอย่างไร ?
ตอบ : ปัญหาการใช้งานสำหรับบอร์ด KidBright มีหลายสาเหตุ ในเบื้องต้นสามารถตรวจสอบได้ดังนี้

ปัญหาเกี่ยวกับการลงไดร์เวอร์
  • โปรดยืนยันว่าได้ลงไดร์เวอร์ที่ถูกต้อง ซึ่งดาวน์โหลดจากเว็บไซต์ https://www.kid-bright.org/download
  • ตรวจสอบว่ารุ่นของไดร์เวอร์เป็นรุ่นสำหรับคอมพิวเตอร์ที่ใช้สถาปัตยกรรมที่ถูกต้อง (32bit หรือ 64bit)
  • ตรวจสอบจากเครื่องมือ Device Manager เพื่อยืนยันว่าบอร์ด KidBright ได้รับการติดตั้งไดร์เวอร์อย่างถูกต้อง

ปัญหาเกี่ยวกับการขอสิทธิ์ Administrator
  • ในบางกรณีอาจเกิดปัญหาจากผู้ดูแลระบบคอมพิวเตอร์ของหน่วยงาน ปิดสิทธิ์การเข้าถึง Hardware ไว้
  • ให้คลิกขวาบนไอคอน KidBright IDE ที่หน้า Desktop และ เลือก Run as Administrator

ปัญหาเกี่ยวกับ USB Type C และ USB ที่ไม่สนับสนุน KidBright
  • อาจเกิดจากปัญหาของ Hardware ของเครื่องคอมพิวเตอร์เอง มักเกิดกับคอมพิวเตอร์ที่ใช้ CPU AMD หรือ USB Type C และ USB 3.0
  • ให้ใช้ USB HUB ที่มีเวอร์ชั่นต่ำกว่า 2.0 (โดยมากเป็น USB HUB รุ่นเก่า ราคาถูก หาได้ตามร้านไอทีทั่วไป ในการต่อพ่วงกับ USB ของคอมพิวเตอร์ ก่อนต่อ KidBright)

ปัญหาเกี่ยวกับการตั้งโหมดประหยัดพลังงาน (Power Saving Mode) ของคอมพิวเตอร์
  • มีรายงานว่า การเปิดโหมดประหยัดพลังงาน (Power Saving Mode หรือ Battery Saving Mode) มีส่วนที่ทำให้ลดการจ่ายพลังงานให้กับอุปกรณ์ต่อพ่วงประเภท USB
  • ขอให้ทดลองปิด Battery Saving Mode, Power Saving Mode บนเครื่องคอมพิวเตอร์



40
KidBright Dev. Board Q&A / ข้อมูลทางเทคนิคของ ESP32-WROOM32
« เมื่อ: สิงหาคม 20, 2018, 08:04:01 PM »
สามารถดาวน์โหลดข้อมูลทางเทคนิคของ ESP32-WROOM32 ได้ตามไฟล์แนบ

41
ถาม : จะหาไฟล์งานของ KidBright IDE ที่บันทึกไว้ได้อย่างไร ?

ตอบ : สามารถค้นหาไฟล์งานที่ถูกบันทึกไว้บน KidBright IDE ได้โดย
  • คลิกขวาที่ไอคอน KidBright IDE ที่หน้า Desktop
  • คลิก Properties
  • คลิก Open File Location
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ resources
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ app
  • ดับเบิ้ลคลิกที่โฟล์เดอร์ data
  • สามารถนำไฟล์งาน KidBright ที่บันทึกไว้ไปใช้งานได้ในคอมพิวเตอร์เครื่องอื่น โดยบันทึกในโฟล์เดอร์เดียวกันกับวิธีการนี้


42
KidBright IoT Q&A / FAQ : ใช้งาน KidBright IoT : Internet of Things อย่างไร ?
« เมื่อ: สิงหาคม 20, 2018, 07:00:29 PM »
ถาม : จะใช้งาน KidBright IoT : Internet of Things ได้อย่างไร ?

ตอบ : สามารถดาวน์โหลดแอพพลิเคชั่นสำหรับ ใช้งาน KidBright IoT บนระบบปฏิบัติการ Android ได้โดยค้นหาคำว่า KidBright IoT ใน Play Store จากนั้นเปิด KidBright IDE และ เข้าสู่เมนู Scan QR Code เพื่อสแกน QR Code โดยใช้โปรแกรม KidBright IDE  จะทำให้สามารถใช้งาน KidBright IoT ซึ่งสนับสนุนโดย NETPIE ได้

ทั้งนี้ จะต้องตั้งค่า Wi-Fi Config (ตั้งต่า Wi-Fi) ใน KidBright IDE และ เขียนโปรแกรมโดยใช้บล็อก IoT (ไอโอที) ให้เรียบร้อยก่อนสแกน QR Code

43
ถาม : จะลงทะเบียนบอร์ด KidBright ให้สามารถใช้งาน Internet of Things : IoT ได้อย่างไร?

ตอบ : ขอให้แจ้งผู้ครอบครอง และ Mac Address ไปที่ contact@nexpie.com เพื่อลงทะเบียนครับ

44
บอร์ด KidBright มีการกำหนดขา (Pin Mapping) สำหรับใช้งานบน Arduino IDE ดังนี้


และ สามารถศึกษาการกำหนดขา (Pin Mapping) บนบอร์ด KidBright กับ Arduino IDE ได้จากเอกสารไฟล์วงจร ได้ตามไฟล์แนบ

45
หัวข้อนี้ได้ถูกย้ายไปบอร์ด KidBright with Arduino IDE Q&A.

http://quantum.engr.tu.ac.th/smf/index.php?topic=13.0

46
ถาม : จะใช้งาน KidBright กับ Arduino IDE ได้อย่างไร ??

ตอบ : สามารถศึกษาได้เพิ่มเติมที่ URL : http://www.ayarafun.com/2017/09/setup-node32s-board-manager/
และ สามารถดูวิธีการกำหนดขา (Pin Mapping) บน Arduino IDE ได้ที่ http://quantum.engr.tu.ac.th/smf/index.php?topic=15.0


47
ทดลองแนะนำวิธีการต่อบอร์ดรีเลย์

โดยทั่วไปแล้วบอร์ดรีเลย์สำเร็จรูป จะมีการทำงานแบบ Active High
(หรือเลือกได้ ว่าจะให้เป็น Active High หรือ Active Low จากการเลือก Jumper บนบอร์ด Relay)

ลักษณะการต่อวงจรแบบนี้ใช้ได้กับทั้งสองแบบ แต่จะต้องมีการทดสอบการทำงาน
โดยการสั่ง Digital Output (หรือ Output,เอาท์พุต) ให้เหมาะสม ว่าสถานะ On ของ Output ทำให้รีเลย์เปิด หรือ ปิดวงจร

หมายเหตุ : KidBright OUT1/OUT2 ให้เลือกใช้ OUT1 หรือ OUT2 เพียง 1 ชุด
หมายเหตุ 2 : การใช้งาน OUT1/OUT บน KidBright กับอุปกรณ์อื่นๆ อ่านเพิ่มเติมได้จาก : http://quantum.engr.tu.ac.th/smf/index.php?topic=37.0


หน้า: [1]