ลอง Flutter for web ใน Raspberry Pi Kiosk

ความเดิมจากตอนที่แล้ว… หลังจากพยายามเอา Flutter Desktop App ไปทำงานบน Raspberry Pi (Raspbian) ไม่รอดก็เลยมาลองเป็น Flutter for web กัน ตัว Web App ที่ได้จากการ build จาก Fultter จะได้ไฟล์ html มา เราสามารถเอาไฟล์ไปใช้งานได้เลย ซึ่งครั้งนี้เอามาลองทดสอบดูว่าถ้าเอาไปใส่ใน Raspberry Pi Kiosk ที่เปิดด้วย Chromium browser แล้วจะเป็นอย่างไร ลองดู video กัน

จากการทดลองผลลัพท์พอใช้ ถ้าต้องการแสดงผล animation แบบสวยๆ อาจจะต้องไป run บน Android แทน 😀 สำหรับ Flutter for web ยังอยู่ในช่วง technology preview ยังไม่เหมาะสมกับการใช้ในงาน production ครับ

มาติดตั้ง 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 ไม่พังเป็นอันใช้ได้

ลองเล่น Assistant SDK กับ Raspberry Pi

เนื่องจากซื้อ MagPi เล่ม 57 ไม่ทันก็เลย ติดตั้ง Assistant SDK บน Rasipberry Pi เล่นเอง ครั้งนี้ขอแปะวิดีโอไว้ก่อน สำหรับท่านที่อยากเล่นบ้าง อ่านข้อมูลเพิ่มเติมและวิธีการติดตั้งได้ที่ Assistant SDK ครับ

ตัวอย่างงาน DIY ของ Deeplocal ทำเครื่อง Mocktails Mixer

แปะวิดีโอ Google I/O 2017 เผื่อด้วยละกัน

วิดีโอที่เกี่ยวข้องกับ Assistant SDK ใน Google I/O 2017

มาเล่น Eddystone URL บน Raspberry Pi 3 กัน

เมื่อปีที่แล้ว Google นำเสนอ EddyStone และ Physical Web จนต้องกลับมาเล่น Beacon อีกรอบ แต่ที่แย่ที่สุดคือ Beacon ที่มีอยู่มันเป็น HM-11 เล่น EddyStone ก็รอมานานมากคิดว่าจะไม่ได้เล่น EddyStone URL และ Physical Web แล้ว วันนี้เจอโพสของ AppStack เรื่อง ลองเล่น Eddystone URL beacon โดยใช้ Raspberry Pi 3 ก็ถึงบางอ้อเลย สบายละไม่ต้องงม data frame กันอีกต่อไป เพราะมีเครื่องมือช่วย generate คำสั่งในการ config ค่าให้เรียบร้อย

เครื่องมือที่ว่านี้คือ Eddystone URL command calculator เพียงแค่ใส่ URL ที่เราต้องการ แล้วเราก็จะได้คำสั่งใน command line สำหรับ config ออกมา สุดยอดมากมาย
Continue reading

มาเล่น Raspberry Pi 3 กัน

Raspberry Pi 3 Model B เปิดตัวและวางจำหน่ายในหลายประเทศแล้ว ครั้งนี้จะมาแนะนำ Raspberry Pi 3 ว่ามีอะไรเปลี่ยนแปลงไปบ้าง สำหรับรุ่น 3 นี้มีการเปลี่ยนแปลงหลายอย่างทั้ง Architechture ของ Chip ขนาดของ Memory มี Wireless และ Bluetooth 4.1 รองรับ Bluetooth Low Energy มาให้ด้วย

ก่อนอื่นมาดู spec กันก่อน

  • A 1.2GHz 64-bit quad-core ARM Cortex-A53 CPU
  • 802.11n Wireless LAN
  • Bluetooth 4.1
  • Bluetooth Low Energy (BLE)

ส่วนที่เหมือนกับรุ่น 2

  • 4 USB ports
  • 40 GPIO pins
  • Full HDMI port
  • Ethernet port
  • Combined 3.5mm audio jack and composite video
  • Camera interface (CSI)
  • Display interface (DSI)
  • Micro SD card slot (แบบเสียบ)
  • VideoCore IV 3D graphics core

Continue reading

ต่อกล้องหลายตัวให้ Raspberry Pi พร้อม Stream Video ผ่าน MJPG-streamer

เนื่องจากมีคำถามเข้ามาผ่านทาง Facebook แฟนเพจ thaiopensource เรื่องการต่อ Webcam 2 ตัวพร้อมกับทำ Video Streaming ผ่าน MJPG-streamer ก็เลยหากล้อง Webcam มาลองให้ครับ ในกรณีนี้ผมมี Webcam 1 ตัว กับ Raspberry Pi Camera Module อีก 1 ตัว

แนวคิดคือให้ MJPG-streamer ทำงานคนละ port ตามจำนวนของกล้อง

  • Webcam จะถูก Stream ออก port 9000
  • Raspberry Pi Camera Module จะถูก Stream ออก port 9100

Continue reading

มา Stream Video บน Raspberry Pi สำหรับ Raspbian 8 กัน

Raspbian 8 ออกใหม่มีการเปลี่ยนแปลงตาม Debian 8 ซึ่งเป็น distro หลักการเปลี่ยนแปลงที่สำคัญคือ systemd ซึ่งเริ่มใช้งานในเวอร์ชั่นนี้ ก็เลยได้มาอัพเดทบทความเก่าๆ ให้ทันสมัยมากขึ้นสักหน่อย เริ่มจาก Stream Video บน Raspberry Pi ก่อน เราจะใช้เครื่องมือเดิมคือ mjpg streamer แต่การตั้งค่า service เราจะมาใช้ systemd กัน

ก่อนอื่นติดตั้ง mjpg streamer กันก่อนดังนี้
Continue reading

ตั้งค่า Stream Video ใน Raspberry Pi สำหรับ Raspbian 7

ครั้งนี้เราจะมาลองสร้าง Video Streamming Service จาก Camera Module ใน Raspberry Pi กัน OS ที่ใช้เป็น Raspbian Wheezy เราจะใช้ MJPG-streamer มาช่วยในการสร้าง เริ่มต้นจากต่อ Camera Module ให้เรียบร้อย จากนั้น build MJPG-streamer ดังนี้

ติดตั้ง compiler ที่ต้องใช้กันก่อน
sudo apt-get install libjpeg8-dev imagemagick libv4l-dev make gcc git cmake g++
เอาโค้ดจาก get repository มาใช้
git clone https://github.com/jacksonliam/mjpg-streamer.git
จากนั้นสั่ง make
Continue reading

ติดกล้องให้ Raspberry Pi

วิธีการติดกล้องให้ Raspberry Pi ทำได้หลายวิธี คุณอาจจะใช้ Camera Module ของ Raspberry Pi โดยตรง หรือใช้กล้อง Web Cam ก็ได้ ครั้งนี้จะมาแนะนำการติดตั้ง Camera Module และวิธีการใช้งานเบื้องต้นกัน ตัว Camera Module มีหน้าตาแบบนี้

สำหรับการต่อสายก็เสียบเข้าไปยังช่อง Camera แบบนี้

เมื่อติดตั้งเสร็จ ssh ไปยัง Raspberry Pi หรือเปิด terminal ใช้คำสั่ง
sudo raspi-config
Continue reading