แวะมางานเปิดตัว KBIDE ที่ Pinn Creative Space พระราม 9 งานนี้มีเปิดตัว IDE ตัวใหม่สำหรับบอร์ด KidBright, KidBright Compatible และ ESP32 ตัว IDE ตัวใหม่นี้รองรับ Board KidBright และ developer board อย่าง ESP32 ด้วย
มาดูหน้าตากัน เปิดมาครั้วแรกเจอให้เลือกเลยว่าเป็น Kid Level หรือ Developer จ๋าได้
หน้าจอแบบ block
หน้าจอแบบ developer
มี Serial Monitor ให้ด้วยนะ ไม่พลาดการ debug แน่นอน
สำหรับท่านที่ไม่ได้ใช้ KidBright ก็เลือกบอร์ดที่จะใช้งานได้ ผ่าน Board Manager
มีตัวอย่างให้ด้วยนะ
อ้อและที่สำคัญมี block ใหม่ๆ ที่น่าสนใจอีกเยอะเลย
สำหรับท่านที่สนใจ ดาวน์โหลดกันได้ที่ release page ช่วยกัน contribute ได้ที่ https://github.com/MakerAsia/KBProIDE
esp32
There are 9 posts tagged esp32 (this is page 1 of 1).
เอา Node32pico มาควบคุม DJI Tello กัน
จากครั้งที่แล้วได้ใช้ Node32s ส่งคำสั่งเพื่อควบคุม Tello ผ่าน udp ไป ครั้งนี้จะมาลองอะไรที่สนุกกว่าคือการใช้ Node32pico ที่มี 9DOF Sensor (3D accelerometer, 3D gyroscope, 3D magnetometer) มาควบคุม Tello ดูบ้าง หลักการง่ายๆ คือ อ่านค่าจาก accelerometer เปรียบเทียบกับลักษณะการหมุน และส่งคำสั่งไปยัง Tello
แปะวิดีโอให้ดูนิดนึง
ใครที่มี Node32pico ก็เอามาควบคุม Tello กันได้ หรือจะเอามาทำ remote control ก็น่าสนใจครับ
มาติดตั้ง KidBright IDE บน Raspberry Pi กัน
ผมได้มีโอกาสไปเล่น 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 #1 สร้าง plugin แบบง่ายๆ ได้ 1 อัน
หลังจากไปร่วมงาน KidBright developer meetup มาก็เลยได้ลองสร้าง KidBright plugin ง่ายๆ มา 1 อัน เป็น plugin ไฟกระพริบ ใช้เครื่องมือ generator ทุ่นแรงจากน้องนัทช่วยสร้างโครงให้
จบงานได้มา 1 block เป็น เปิด/ปิด LED บนบอร์ดแบบง่ายๆ ถ้าเอาเข้า loop ใส่ delay นิดหน่อยก็ได้ไฟกระพริบแล้ว
แล้วก็มาทำต่อเพิ่มเติม ให้ครบตามข้อกำหนดของการสร้าง block
แปะ git repository ไว้ให้ https://github.com/anoochit/kidbright_ledx ปล.ไม่มีบอร์ด KidBright เลยไม่ได้ทำอะไรต่อ
KidBright เปิดเป็น OpenSource แล้วนะ
เมื่อวานแวะไปงาน KidBright Developer Conference (KBD) งานนี้เป็นงานเปิดตัว KidBright IDE รุ่นใหม่ แถลงข่าวเปิดตัวเป็นโครงการ OpenSource และมอบรางวัลโครงงานสิ่งประดิษฐ์จากบอร์ด KidBright งานนี้มีคนในวงการรวมทั้ง Maker ทั้งรุ่นเล็กรุ่นใหญ่มาร่วมงาน เป็นสักขีพยานและร่วมแสดงความยินดีกับการเปิดตัวเป็น OpenSource ในครั้งนี้ด้วย
KidBright เปิดเป็นโครงการ OpenSource เรียบร้อยแล้วทั้งใน KidBright IDE และ Library KidBright32 โครงการอยู่ที่ GitLab ไปส่องกันดูได้ ใช้ Apache License 2.0 นะ
แปะหน้า IDE ให้ดูก่อน
เมื่อ KidBright เปิดโค้ดแล้วเราก็สามารถเขียน Plugin เพิ่มเติมได้ มีตัวอย่าง Plugin จาก KB Chain มาให้ 3 ชุด
นอกจากนี้ยังมี KB Chain มีมาให้ดูเป็นตัวอย่างด้วย ใครสนใจก้อไปสั่งซื้อกันได้ ที่เว็บไซต์ KidBright.IO ครับ
เรียกใช้ Youtube API บน Arduino กัน
เมื่อสัปดาห์ที่แล้วอัพเดท Arduino Library บางตัวไปเจอ Library ตัวนึงน่าสนใจมาก เป็นของคุณ Brian Lough เป็น Library เอาไว้เรียกใช้ Youtube API สามารถดึงข้อมูลสถิติมาใช้งานได้ เช่น จำนวน subscribe, จำนวน video, จำนวน comment, จำนวนคนที่ดู channel เป็นต้น
การใช้งานก็ง่ายมาก แค่สร้าง Application ใน Google Developer Console สร้าง Credential และ API Key แล้วเอา API Key มาใช้งาน นอกจาก Youtube API แล้วคุณ Brian ยังมี Library ที่น่าสนใจอีกหลายตัว แปะวิดีโอของ Becky Stern สร้างกำลังใจกันสักหน่อย
WifiManager บน ESP32
WifiManager ออกมาในช่วง ESP8266 กำลังเป็นที่นิยม ช่วยให้การ config อุปกรณ์ง่ายขึ้น สามารถ config wifi ผ่านเว็บ browser ได้เลย อีกทั้งยังสามารถเพิ่ม custom field ได้ด้วย ระยะหลังเริ่มมีคน fork project ไปทำเพื่อรองรับ ESP32 ด้วย แต่โครงการต้นน้ำก็ยังมีการพัฒนาต่อเนื่อง ช่วงนี้ได้ทดสอบใน development branch แล้วพบว่าใช้งานฟังก์ชั่นหลักๆ ได้แล้ว แต่ยังไม่ release รุ่นออกมา ใครสนใจก็ลองติดตามไปทดสอบกันได้
ใช้งานได้จริงๆ นะ อ้อข้อมูลในส่วน custom parameter ให้เขียนลงใน SPIFFS กันเองนะจ๊ะ
ตัวอย่างโค้ด
มาเล่น Node32s กัน
วันนี้ได้ Node32s ส่งตรงจาก Gravitech Thai สั่งซื้อแบบ pre-order ไว้ ช่วงเดือนพฤศจิกายนจนลืมไปแล้ว วันนี้พัสดุมาส่งก็เลยมา blog ไว้สักหน่อย Node32s เป็น development board จาก Ayarafun และ LamLoei ผลิตโดย Gravitech Thai มาดูบอร์ดกันสักหน่อย
ตัวบอร์ดมาพร้อม USB to TTL ใช้ชิป FTDI มีพอร์ท JST สำหรับต่อแบตเตอรี่และสามารถชาร์ตแบตเตอรี่ได้ด้วย สำหรับชิปเป็น ESP32s แบบ module มี PTC Fuse ขนาด 500mA ด้วย 🙂 ด้านหลังมี label บอกตำแหน่ง pin ต่างๆ
สำหรับการเขียนโปรแกรมสามารถใช้ ESP-IDF หรือ Arduino Core ก็ได้ตามความถนัด หรือท่านที่ชอบใช้ Platform.io ก็สามารถใช้งานได้เช่นกัน สำหรับ pin layout เป็นแบบนี้ครับ
ฝากไว้หน่อย คู่มือการใช้งานและการเขียนโปรแกรมบน Node32s ครับ
มาเล่น Nano32 กัน
Nano32 เป็น Development Board ที่ใช้ชิป ESP32 ตัว Dev Kit พัฒนาโดย MakerAsia และ GravitechThai ตัวบอร์ดมาพร้อมกับ FTDI เสียบสาย usb ปุ๊บใช้งานได้เลย ความสามารถของชิป ESP32 ที่หลายคนรอคอยคือสามารถใช้งาน Wifi และ Bluetooth ได้ แถมประหยัดพลังงานด้วย สำหรับการเชื่อมต่อก็มี GPIO มาให้ใช้งานเยอะมาก มี SPI, SDIO, I2C, UART มาพร้อม รายละเอียดดูได้ที่เว็บ Espressif ครับ
สำหรับการเขียนโปรแกรมบน ESP32 นี้จะใช้ ESP IDF (Espressif IoT Development Framework) ช่วงแรกนี้อาจจะโหดสักหน่อยเพราะมีการเปลี่ยนแปลงแยะมาก สำหรับท่านที่เขียน C++ บน RTOS มาก่อนคงไม่ค่อยรู้สึกแตกต่างมากนัก สำหรับท่านที่เริ่มใหม่ก็ต้องสร้างกำลังใจเรียนรู้ใหม่กันเลยครับ
การติดตั้ง toolchain สำหรับ ESP32 มีหลายวิธี แต่วิธีที่ง่ายที่สุดคงเป็นติดตั้งและใช้งานบน Linux มีคนทำ toolchain บน Docker ด้วยน่าสนใจดีครับ สำหรับท่านที่ใช้ Mac OS แบบผมก็สามารถติดตั้ง toolchain มาเล่นบน Mac ได้เหมือนกัน ลองอ่านวิธีการได้ที่ Wiki ของ ESP IDF อ้อเกือบลืมท่านที่ใช้ Brew อย่าลืมติดตั้ง package เพิ่มเติมดังนี้
brew install gnu-sed gawk binutils homebrew/dupes/gperf grep gettext ncurses pkgconfig
ตั้งค่า PATH ดังนี้
สำหรับการพัฒนาก็ง่ายมาก สามารถศึกษาได้จากตัวอย่างใน git repository โครงการ ESP-IDF ได้ การสร้างโปรเจคใหม่ทาง Esspressif มี template ใช้งานเช่นกัน
เพิ่มเติมทาง Chiang Mai Maker Club มี Tutorial การติดตั้ง Toolchain และ ESP-IDF สำหรับ Windows, Mac, Ubuntu และ Docker ลองไปศึกษาเพิ่มเติมได้ครับ
สำหรับวิธีการ Build ก็ง่ายมาก Makefile มีเครื่องมือมาให้ใช้งานพร้อมแล้ว ผ่าน make tool เช่น
- การ build ใช้คำสั่ง make
- การตั้งค่า sdkconfig ผ่านคำสั่ง make menuconfig (อารมณ์เดียวกับ build kernel เลย)
- การ flash ก็เพียงแค่สั่ง make flash
อัพเดทเพิ่มเติมสำหรับท่านที่อยากใช้ Arduino IDE สามารถติดตั้ง ESP32 บน Arduino IDE และเขียนโค้ดแบบ Arduino ได้แล้ว ดูวิธีการติดตั้ง ESP32 สำหรับ Arduino Core จาก Chiang Mai Maker Club ได้ ปล. Arduino Core วิ่งได้แค่ Core เดียวนะครับ