เมื่อสัปดาห์ก่อนได้รับบอร์ด Node32Lite จากพี่ช้างแห่ง Ayarafun Factory ส่งบอร์ดมาให้ทดลองเล่น บอร์ด Node32Lite นี้ ออกแบบและผลิตโดยคนไทย โดย Ayarafun/LamLoei และผลิตโดย GravitechThai เป็นบอร์ดที่ออกแบบและผลิตโดยคนไทย 100%

  • ตัวบอร์ดใช้ชิป ESP-WROOM-32 เป็น Wifi/Bluetooth module จาก Espressif
  • ตัวบอร์ดมีขนาดกว้าง 0.9 นิ้ว ทำให้เหลือช่องบน breadboard ข้างละ 1 ช่อง
  • ใช้ FTDI ชิปเพื่อการโหลดโปรแกรมแบบอัตโนมัติ
  • มีวงจร PTC Fuse ตัดกระแสไฟเกินที่ 500mA
  • มี regulator 3.3V 600mA บนบอร์ด
  • มี Push button switch ที่ขา IO0 และ EN สำหรับ reset
  • เหมาะสำหรับงาน พัฒนาต้นแบบ อุปกรณ์รูปแบบ Portable และ Wearable

แปะวิดีโอแกะกล่อง

สั่งซื้อได้ที่ GravitechThai และร้าน Home of Maker สำหรับข้อมูลเพิ่มเติมเกี่ยวกับบอร์ดและ resource ต่างๆ สามารถอ่านเพิ่มเติมได้ที่เว็บไซต์ของ Ayarafun Factory ครับ

ช่วง Black Friday มีสินค้าลดราคากันเยอะมาก DJI ก้อจัดรายการเหมือนกัน วันนี้เห็น post ใน Facebook ของ PowerBuy และ DJI ต่างก็กระหน่ำลดราคาสินค้ากัน ก็เลยลองมาค้นข้อมูลดูหน่อยว่า ถ้าซื้อมาจะเขียนโปรแกรมควบคุมยังไงได้บ้าง

พอทราบข้อมูลเบื้องต้นว่า Tello สั่งงานผ่าน wifi ซึ่งตัวโดรนจะเป็น UDP server เราสามารถส่งคำสั่งไปควบคุม Drone ได้ ทำให้มีเครื่องมือออกมาหลายตัว เช่น

ในเว็บไซต์ของ Tello เอง ยังมี Tello Edu มี SDK ให้ดาวน์โหลดไปพัฒนาต่อยอดได้ เช่น Drone Swarm, Multi Control, AI เป็นต้น

นอกจากนี้เรายังสามารถใช้ IoT dev kit ต่างๆ อย่างเช่น ESP8266, ESP32 มาควบคุม Drone ได้ด้วย

แปะโค้ดตัวอย่างไว้นิดนึง

*** ข้อควรระวัง อย่าบินเกินระยะของสัญญาณ Wifi นะครับ :) ***

แปะวิดีโอแกะกล่อง และ Git Repository เพิ่มเติมนะครับ

ผมได้มีโอกาสไปเล่น Pi Top Ceed ที่บูธของ MakerAsia ในงาน Thailand 4.0 ชอบ Pi Top Ceed มานานละ มันคล่องตัวและสะดวกมาก แนวคิดคือหิ้ว Pi Top Ceed ไปออกงาน แล้วเสียบ keyboard mouse แล้วใช้งานได้เลย แต่ประเด็นไม่ได้อยู่ที่ Pi Top Ceed แต่เป็น KidBright IDE บน Raspberry Pi ต่างหาก วันนี้ก็เลยมาลองติดตั้ง KidBright IDE บน Raspbian กันสักหน่อย

ก่อนติดตั้ง ต้องทำความเข้าใจกันก่อนว่า script สำหรับติดตั้ง KidBright IDE ใช้สำหรับเครื่องคอมพิวเตอร์ที่เป็น CPU ตระกูล X86 แต่ Raspberry Pi เป็น ARM ดังนั้นสิ่งที่ต้องทำมีดังนี้

  • ติดตั้ง KidBright IDE
  • compile toolchain ใหม่

มาลงมือกันเลย ติดตั้ง dev tools กันก่อน

sudo apt-get install git wget make libncurses-dev flex bison gperf python python-serial gawk gperf grep gettext python python-dev automake bison flex texinfo help2man libtool libtool-bin

ติดตั้ง KidBright IDE

ดาวน์โหลด node.js v8

wget -c https://nodejs.org/dist/latest-v8.x/node-v8.13.0-linux-armv7l.tar.gz

แตกไฟล์

tar zxvf node-v8.13.0-linux-armv7l.tar.gz

ตั้ง path

export PATH=$PATH:$HOME/node-v8.13.0-linux-armv7l/bin

ทดสอบ node กันก่อน

node -v

จะได้ผลลัพท์เป็น version ของ node.js

จากนั้นติดตั้ง pyserial

pip install pyserial

สั่ง clone KidBright IDE มาจาก gitlab ได้เลย

git clone https://gitlab.com/kidbright/kbide --recursive

สั่ง build

cd kbide

npm run build

เมื่อสั่ง build ตัวโปรแกรมจะติดตั้ง toolchain มาให้ แต่เป็น X86 เราต้อง compile toolchain ใหม่ให้ใช้บน ARM ได้ไม่งั้น compile programe ไม่ได้นะ

สั่ง clone crosstool มาเพื่อ compile toolchain ใหม่

git clone -b xtensa-1.22.x https://github.com/espressif/crosstool-NG.git

สั่ง compile

cd crosstool-NG

./bootstrap && ./configure --enable-local && make install

./ct-ng xtensa-esp32-elf

./ct-ng build

นอนรอ Zzz ใช้เวลา compile ประมาณ 20 นาที เมื่อ compile เสร็จให้ chmod เพื่อให้ excute ได้

chmod -R u+w builds/xtensa-esp32-elf

เปลี่ยน toolschain ที่มีอยู่เดิม เท่านี้ก็เรียบร้อย

cd ..

rm -rf xtensa-esp32-elf

cp -rf builds/xtensa-esp32-elf .

จากนั้นสั่ง run KidBright IDE ได้ตามปกติ

npm start

ลองลากๆ วางๆ

กด flash ไม่พังเป็นอันใช้ได้

หลังจากไปร่วมงาน KidBright developer meetup มาก็เลยได้ลองสร้าง KidBright plugin ง่ายๆ มา 1 อัน เป็น plugin ไฟกระพริบ ใช้เครื่องมือ generator ทุ่นแรงจากน้องนัทช่วยสร้างโครงให้

จบงานได้มา 1 block เป็น เปิด/ปิด LED บนบอร์ดแบบง่ายๆ ถ้าเอาเข้า loop ใส่ delay นิดหน่อยก็ได้ไฟกระพริบแล้ว

แล้วก็มาทำต่อเพิ่มเติม ให้ครบตามข้อกำหนดของการสร้าง block

แปะ git repository ไว้ให้ https://github.com/anoochit/kidbright_ledx ปล.ไม่มีบอร์ด KidBright เลยไม่ได้ทำอะไรต่อ

NECTEC เปิดตัว KidBright เป็นโครงการ OpenSource ในงาน KidBright Developer Conference เมื่อวันเสาร์ที่ผ่านมา ก็ได้มีการรวมตัวของ Maker Community ว่าจะจัดกิจกรรมที่เกี่ยวข้องกับ KidBright บ้าง ก็เลยเกิดงาน KidBright Develper Meetup ตอน มาสร้าง Plugin ให้ KidBright IDE กันเถอะ นำทีมโดยท่านประธานชมรมเชียงใหม่เมกเกอร์

ท่านใดสนใจก็เข้าร่วมลงทะเบียนกันได้ ปล. ระหว่างนี้ก็แกะ KidBright IDE กันไปพลางๆ ก่อน อ้อ เกือบลืมไป น้องนัททำ KidBright Generator ไว้น่าจะทำให้การขึ้นโครงของ Plugin ง่ายมากขึ้น อัพเดท…ทางชมรมเมกเกอร์มหานครก็จัดกิจกรรม workshop และมีเรื่องการพัฒนา Plugin เพิ่มเติมเช่นเดียวกัน อย่าลืมลงทะเบียนก่อนไปงานนะครับ :)

Edge Computing เป็นคำที่ได้พบเจอกันบ่อย เหมือนกับคำว่า IoT, Cloud, BigData หากจะอธิบายถึง Edge Computing คงต้องย้อยอดีตกันสักหน่อย เพื่อจะได้เห็นวิวัฒนาการที่ผ่านมา ช่วงแรกเริ่มการใช้งานคอมพิวเตอร์ใช้งานผ่าน dumb terminal พิมพ์คำสั่งแล้วรอผลจากการประมวลผลที่คอมพิวเตอร์เมนเฟรมปลายทางส่งผลลัพท์มาให้ จากนั้นก็เข้าสู่ยุคคอมพิวเตอร์ส่วนบุคคล (PC) ที่ทุกคนมีคอมพิวเตอร์ใช้งาน การประมวลผลจะอยู่ที่เครื่องคอมพิวเตอร์ต้นทาง ในปัจจุบันเป็นยุค Cloud Computing วิธีการใช้งานคอมพิวเตอร์ได้เปลี่ยนไป โปรแกรมคอมพิวเตอร์เชื่อมต่อกับ Cloud มากขึ้น การประมวลผลและการใช้งานบริการต่างๆ อยู่บน Cloud มากขึ้น เช่น บริการ Dropbox, Gmail, Office365 เป็นต้น ไม่เพียงแต่คอมพิวเตอร์ส่วนบุคคลเท่านั้นที่เชื่อมต่อกับ Cloud ยังมีอุปกรณ์อัจฉริยะอย่าง Amazon Echo, Google Home, Google Chromecast และ Apple TV ยังใช้เนื้อหาและบริการอัจฉริยะที่อยู่บน Cloud เช่นกัน

Cloud จึงกลายเป็นศูนย์กลางการเชื่อมต่อกับบริการทุกอย่าง บริษัทยักษ์ใหญ่ลงทุนโครงสร้างพื้นฐานด้าน Cloud เพื่อรองรับบริการของตนเอง รวมไปถึงเปิดบริการ Cloud ให้คนอื่นใช้งานด้วย บริการบน Cloud ไม่ได้มีแค่ infrastructure เท่านั้น ยังมีบริการอื่นๆ เพิ่มเติมอีกหลายอย่าง เช่น Machine Learning, AI รวมไปถึงบริการการประมวลผลข้อมูลขนาดใหญ่ เช่น Big Data อีกด้วย Amazon ถือเป็นผู้ให้บริการ Public Cloud รายใหญ่ มีส่วนแบ่งการตลาดมากกว่า 47 เปอร์เซ็นต์

Edge Computing คือการประมวลผลข้อมูลที่อยู่ใกล้กับแหล่งข้อมูลให้มากที่สุด อาจจะอยู่ในรูปแบบการวิเคราะห์ข้อมูล การประมวลผลข้อมูลเชิงสถิติ ซึ่งแทนที่จะเอาข้อมูลจำนวนมหาศาลขึ้นไปประมวลผลบน Cloud ก็เอาข้อมูลเหล่านั้นมาประมวลผลที่ต้นทางที่ใกล้กับแหล่งข้อมูลมากที่สุด หรือ Edge นั่นเอง สาเหตุหลักที่ทำให้การประมวลผลจำเป็นต้องอยู่ที่ต้นทาง (Edge)

null

เวลาในการรับส่งข้อมูล (Latency)

เวลาในการรับส่งข้อมูล (Latency) เป็นเหตุผลที่ทำให้ Edge Computing ได้เปรียบในด้านความเร็วในการรับส่งข้อมูล ยกตัวอย่างเช่น หากเครื่องคอมพิวเตอร์ต้องการส่งข้อมูลไปหาเครื่องคอมพิวเตอร์อีกเครื่องที่อยู่คนละฝั่งโลก ความเร็วในการรับส่งข้อมูลเป็นตัวแปรสำคัญ ซึ่งการรับส่งข้อมูลในระยะที่ใกล้จะมีความเร็วมากกว่าส่งในระยะไกลอย่างแน่นอน ตัวอย่างเช่น บริการ Voice Assistant อย่าง Amazon Echo ถ้าส่งข้อมูลไปประมวลผลบนเซิร์ฟเวอร์ที่อยู่บน Cloud ทุกครั้งเพื่อหาคำตอบ จากบริการ API ต่างๆ บน Cloud หากบริการนั้นมีความซับซ้อน Amazon Echo ก็จะใช้เวลานานในการค้นหาคำตอบกว่าจะพูดตอบกลับมายังผู้ใช้ ล่าสุด Amazon ก็เริ่มมีการพัฒนาชิป AI ฝังอยู่ Amazon Echo ทำให้ Alexa ตอบคำถามได้รวดเร็วยิ่งขึ้น ทำให้การใช้เรียกใช้บริการในฝั่งเซิร์ฟเวอร์บน Cloud ก็จะน้อยลง ข้อมูลส่วนตัวของคุณก็จะอยู่กับตัวคุณมากขึ้น เพราะไม่จำเป็นต้องส่งข้อมูลไปประมวลผลบน Cloud ทุกครั้ง

ความเป็นส่วนตัวและความปลอดภัย (Privacy & Security)

ความเป็นส่วนตัวและความปลอดภัยเป็นประเด็นที่ทุกคนให้ความสำคัญ ยกตัวอย่าง กรณีการเก็บข้อมูลลายนิ้วมือใน iPhone, iPad ของ Apple เป็นตัวอย่างที่ดี Apple มีนโยบายชัดเจนในเรื่องการเก็บข้อมูลลายนิ้วมือของผู้ใช้ ซึ่งจะต้องจัดเก็บอยู่ในอุปกรณ์เท่านั้นและไม่สามารถนำข้อมูลลายนิ้วมือออกมาได้ การที่ไม่จำเป็นต้องเอาข้อมูลส่งออกไปเก็บหรือประมวลผลที่อื่น การบริหารจัดการอยู่ที่จุดเดียวสามารถช่วยในเรื่องความปลอดภัยของข้อมูลได้

แบนด์วิธ (Bandwidth)

ไม่เพียงแค่ความปลอดภัยของข้อมูลเท่านั้น เรื่องแบนด์วิธของเครือข่ายก็เป็นเรื่องนึงที่ Edge Computing สามารถแก้ปัญหาได้ เรื่องการใช้งานแบนด์วิธและประหยัดแบนด์วิธการรับส่งข้อมูลไปยัง Cloud ยกตัวอย่างอุปกรณ์อัจฉริยะจำนวนมหาศาลหากต้องการส่งข้อมูลไปยัง Cloud พร้อมๆ กันต้องใช้แบนด์วิธจำนวนมหาศาลตามไปด้วย หากการประมวลผลข้อมูลอยู่ที่ Edge เช่น มี AI อยู่ที่อุปกรณ์ของผู้ใช้สามารถประมวลผลข้อมูลในตัวได้ การรับส่งข้อมูลขึ้นไปประมวลผลบน Cloud ก็จะลดลง สามารถแก้ปัญหาการใช้แบนด์วิธของเครือข่าย และแก้ปัญหาเรื่อง Latency ได้

เมื่อวานแวะไปงาน KidBright Developer Conference (KBD) งานนี้เป็นงานเปิดตัว KidBright IDE รุ่นใหม่ แถลงข่าวเปิดตัวเป็นโครงการ OpenSource และมอบรางวัลโครงงานสิ่งประดิษฐ์จากบอร์ด KidBright งานนี้มีคนในวงการรวมทั้ง Maker ทั้งรุ่นเล็กรุ่นใหญ่มาร่วมงาน เป็นสักขีพยานและร่วมแสดงความยินดีกับการเปิดตัวเป็น OpenSource ในครั้งนี้ด้วย

KidBright เปิดเป็นโครงการ OpenSource เรียบร้อยแล้วทั้งใน KidBright IDE และ Library KidBright32 โครงการอยู่ที่ GitLab ไปส่องกันดูได้

แปะหน้า IDE ให้ดูก่อน

เมื่อ KidBright เปิดโค้ดแล้วเราก็สามารถเขียน Plugin เพิ่มเติมได้ มีตัวอย่าง Plugin จาก KB Chain มาให้ 3 ชุด

นอกจากนี้ยังมี KB Chain มีมาให้ดูเป็นตัวอย่างด้วย ใครสนใจก้อไปสั่งซื้อกันได้ ที่เว็บไซต์ KidBright.IO ครับ

Microchip เปิดตัวบอร์ดสำหรับนักพัฒนาตัวใหม่ ใช้ชิป MCU เป็น ATmega4808 ประมวลผลแบบ 8Bits ความเร็ว 20MHz หน่วยความจำแฟลช 48KB แรม 6KB มาพร้อม Wifi module ATWINC1510 และชิปเข้ารหัส ATECC608A สามารถเชื่อมต่อกับ Google Cloud IoT พร้อมส่งข้อมูล sensor ไปยัง Cloud ได้เลย

มาดูอุปกรณ์บนบอร์ดกัน

MCU ใช้ชิป ATMEGA4808 ประมวลผลแบบ 8Bits ความเร็ว 20MHz หน่วยความจำแฟลช 48KB แรม 6KB ชิปเข้ารหัสข้อมูล ATECC608A รองรับการเข้ารหัสข้อมูลในสื่อเก็บข้อมูล เข้ารหัสการเชื่อมต่อกับ Google Cloud และรองรับ secure boot ในส่วนของ Wifi module เป็น Low Power Wifi Module ใช้ชิป ATWINC1510 2.4GHz b/g/n

มี Temperature sensor และ Light sensor ในตัว มีโมดูลสำหรับชาร์จ battery พร้อมพอร์ท JTAG ต่อ LIPO battery ได้

มีชิป USB Debugger มาให้ รองรับการ flash และ debug ผ่านสาย USB นอกจากนี้ยังมี user button 2 อันเอาไว้ให้ใช้งาน

ไฟสถานะ 4 สี บอกสถานะการเชื่อมต่อ Wifi, สถานะการเชื่อมต่อ Google Cloud Server, สถานะรับส่งข้อมูลและสถานะข้อผิดพลาด

ลองมาดู Pin Mapping กันบ้าง

จาก Pin Mapping จะเห็นว่า Dev Board มี Pin Header สำหรับเชื่อมต่อกับอุปกรณ์ภายนอก มี Pin สำหรับเชื่อมต่ออุปกรณ์ที่ใช้โปรโตคอล SPI และ I2C ด้วย สำหรับการใช้งานเบื่องต้นดูได้จากวิดีโอข้างล่าง

สำหรับท่านที่อยากได้ AVR-IoT WG มาลอง สามารถสั่งซื้อได้ที่เว็บไซต์ Microship สำหรับในประเทศไทยสามารถ

ถ้าใครได้ไปงาน Digital Thailand Big Bang ที่จัดโดยกระทรวงดิจิทัล น่าจะพอได้เห็นกิจกรรมการประกวดสิ่งประดิษฐ์กันมาบ้างแล้ว และในปีนี้ที่งาน Digital Thailand Big Bang ก็จะยังมีกิจกรรมประกวดสิ่งประดิษฐ์อีกเช่นเคย จึงจะมาเชิญชวนเพื่อนๆ เหล่า Maker และนักคิดนักประดิษฐ์ทั้งหลายมาร่วมส่งผลงานสิ่งประดิษฐ์ของท่านเข้าประกวดกันครับ

รายละเอียดเพิ่มเติม กดเลยครับ https://digitalthailandbigbang.com/th/idea

ครั้งที่แล้วแนะนำ NB-IoT ไปเบื้องต้นแล้วในส่วนของ NB-IoT Shield และแนะนำการเขียนโปรแกรมเพื่อใช้งาน Shield เบื้องต้น ครั้งนี้จะมาลองส่งข้อมูลผ่าน AIS Magellan กันดูบ้าง Magellan เป็น IoT Platform ของ AIS ให้บริการส่วนเก็บข้อมูลและ dashboard เราสามารถเพิ่มอุปกรณ์เข้าไปในระบบ เขียนโปรแกรมเพื่อส่งค่า จากนั้นเอาข้อมูลที่ได้ไปสร้าง dashboard ได้เลย

เข้าใช้งาน Magellan ได้ที่ aismagellan.io


Continue reading