CircuitPython และ MicroPython เหมือนหรือแตกต่างกันอย่างไร CircuitPython ก็ใช้ภาษา Python เหมือนกันกับ MicroPython ใช้เครื่องมือ IDE ก็เหมือนกัน และยังทำงานบน Embedded System เหมือนกันด้วย ครั้งนี้ถือโอกาสมาอธิบายเพิ่มเติมว่า CircuitPython แตกต่างจาก MicroPython อย่างไร CircuitPython พัฒนามาจาก MicroPython ที่เน้นให้การใช้งานภาษา Python สำหรับงาน Embedded System โดยปรับปรุงภาษาและการใช้งานให้ง่ายขึ้น มีชุดคำสั่งที่กระชับเข้าใจง่าย ทำให้ CircuitPython เหมาะสำหรับคนที่เริ่มต้นศึกษาภาษา Python สำหรับงาน Embedded System CircuitPython พัฒนาโดย Adafruit Industries ฮาร์ดแวร์ที่รองรับส่วนใหญ่เป็นฮาร์ดแวร์ที่ผลิดโดย Adafruit เป็นหลัก

CircuitPython รองรับชิป Atmel SAMD21 หรือที่เราเรียกว่า M0 และยังมีรุ่นที่รองรับ ESP8266 ด้วย สำหรับ developer board ในประเทศไทย บอร์ด Chili สามารถพัฒนาโปรแกรมด้วย CircuitPython ได้เช่นกัน

สักษณะการทำงาน

  • CircuitPython มีลำดับการทำงานของไฟล์อย่างชัดเจน ที่ให้เราสามารถแยกไฟล์ออกมาเป็นไฟล์ต่างๆ ได้
  • ไฟล์ boot.py หรือ settings.py จะทำงานครั้งแรกครั้งเดียวเมื่อพอร์ด USB เริ่มทำงาน
  • code.py หรือ main.py จะทำงานทุกครั้งที่ reload จนกระทั่งจบการทำงาน จากนั้น vm และ hardware จะเริ่มต้นการทำงานใหม่ ทำให้คุณไม่สามารถตรวจสอบสถานะของ code.py ได้จาก REPL
  • หลังจาก code.py ทำงานเสร็จ จึงจะสามารถใช้งาน REPL ได้

API สำหรับเรียกใช้งาน

CircuitPython มี API สำหรับ hardware ทั่วไป เช่น audioio, analogio, busio, digitalio, pulseio, touchio, microcontroller, board, bitbangio ไม่มี machine API ใน Atmel SAMD21

ถ้าคุณเพิ่งเริ่มต้นศึกษา สามารถเริ่มต้นศึกษาได้ทั้ง 2 ภาษา แต่ CircuitPython ออกแบบมาให้ง่ายสำหรับผู้เริ่มต้น หากต้องการใช้ CircuitPython สามารถศึกษาเพิ่มเติมได้ที่ CitcuitPython Overview หรือ CircuitPython Essentials สำหรับ MicroPython ศึกษาเพิ่มเติมได้ที่ MicroPython Document

บอร์ด Chili เราสามารถพัฒนาซอฟต์แวร์ฝังตัวโดยใช้ภาษา C บน Arduino และ Python บน CircuitPython เพื่อใช้ในการพัฒนาได้ หลายท่านอาจจะไม่คุ้นกับ CircuitPython ว่าคืออะไร CircuitPython เป็น MicroPython ของค่าย Adafruit พัฒนาต่อจาก MicroPython พัฒนาขึ้นมาเพื่อรองรับฮาร์ดแวร์ของ Adafruit โดยเฉพาะ และยังมี Python Module ที่ออกมารองรับฮาร์ดแวร์และเซนเซอร์ต่างๆ ของ Adafruit อีกด้วย

บอร์ด Chili มีความสามารถในการใช้ CircuitPython เหมือนกันและยังสามารถใช้ Module ของ CircuitPython ที่พัฒนาโดย Adafruit ได้ด้วย วิธีเขียน CircuitPython สามารถทำได้ 2 วิธี คือ เขียน code และ save ลงบนตัวบอร์ด หรือเขียนโค้ดผ่าน REPL มาลองกัน

ก่อนอื่นเราต้องมีไฟล์ UF2 เพื่อทำให้บอร์ด Chili เข้าโหมดการเขียนโค้ดด้วย CircuitPython ก่อน ให้ดาวน์โหลด ไฟล์ chili_circuitpython.uf2 ที่ git repository ของ Gravitech จากนั้น เสียบสาย USB เข้าไปที่บอร์ด Chili และเสียบเข้ากับเครื่องคอมพิวเตอร์ จากนั้นกดปุ่ม reset 2 ครั้ง ตัว Neopixel จะเปลี่ยนเป็นสีเขียว และมี Storage โผล่ขึ้นมา ชื่อ CHILLIBOOT

จากนั้นให้ Copy ไฟล์ chili_circuitpython.uf2 ไปยัง drive ที่ชื่อ CHILLIBOOT ตัวบอร์ดจะ reset และ boot ใหม่ โดยมี Storage ขื่อ CIRCUIPY ขึ้นมาแทน

IDE ที่เราจะใช้คือ MuEditor ให้ดาวน์โหลด IDE มาเตรียมไว้ เปิด IDE เปลี่ยนโหมดเป็น Adafruit CircuitPython

จากนั้นก็ลงมือเขียนโค้ดกันได้

อ้อเกือบลืม ใน Git Repository ของ Gravitech มี Bundle Library ของ CircuitPython มาด้วย ไม่ต้องกลัวว่าจะไม่มี Library ใช้งาน

GravitechThai ออก developer board ตัวใหม่ชื่อ Chili ตัวบอร์ดมีสีแดงสด มีขนาดเล็กคล้ายกับ Arduino Nano มาพร้อมกับ MCU Atmel SAMD21 ใช้สถาปัตยกรรม ARM Cortex-M0+ แบบ 32 bits ความเร็วการประมวลผล 48 MHz มี Flash 256KB และ RAM 32KB ภายในชิปมี USB-to-Serial programe กับ debug ได้ มี GPIO 24 ขา เป็น PWM ได้ทุกขา มีไฟ NeoPixel ให้ใช้งาน ตัว บอร์ด Chilli มีรุ่น Basic และรุ่น Plus รองรับการเขียนโปรแกรมได้ทั้ง Arduino และ Circuit Python

ลองมาดู spec รุ่น Basic

  • Chili ใช้้ MCU AT SAMD21G18 หรือ ARM Cortex M0+ แบบ 32Bits ความเร็ว 48 MHz
  • มี Flash 256KB และ RAM 32KB
  • ภายในชิปมี USB-to-Serial programe กับ debug ได้
  • มี GPIO 24 ขา เป็น PWM ได้ทุกขา
  • มีขา I2C และ SPI
  • NeoPixel ต่ออยู่ที่ Pin 8
  • LED สีแดงต่ออยู่ที่ Pin 13
  • มีขนาดเล็กเท่ากับ Arduino Nano

สำหรับรุ่น Plus จะมีเซนเซอร์พื้นฐานอยู่บนบอร์ดด้วย ดังนี้

  • Temperature Humidity Sensor
  • 3-Axis Accelerometer
  • 3-Axis Gyroscope
  • 3-Axis Magnetometer
  • Barometer

สำหรับ Arduino ต้องติดตั้งบอร์ดเพิ่มเติม โดยตั้งค่าที่ File > Preference เพิ่ม https://raw.githubusercontent.com/gravitech-engineer/package_gravitech_board/master/package_gravitech_index.json ลงไปที่ Additional Board Manager

จากนั้นติดตั้งบอร์ด ชื่อ Chili เพิ่มเติมได้

การใช้งานให้เชื่อมต่อบอร์ด Chili กับคอมพิวเตอร์โดยใช้สาย USB เลือกบอร์ด Arduino Nano Chili เท่านี้ก็ใช้งานได้แล้ว

หากเชื่อมต่อกับบอร์ดแล้วไม่พบ USB บนบอร์ด ให้กดปุ่ม reset 2 ครั้ง ไฟ NeoPixel จะเปลี่ยนเป็นสีเขียว พอร์ด USB จะเปลี่ยนโหมดทำงานเท่านี้ก็ใช้งานได้แล้ว ตัวอย่างการเรียกใช้งาน Sensor และรายชื่อ Library Sensor บนบอร์ดดูรายละเอียดเพิ่มเติมได้ที่ https://github.com/anoochit/chilli-board

Deeplearning4j (DL4J) เป็น deep learning framework ในภาษา Java ทำให้นักพัฒนาสามารถเพิ่มความสามารถด้าน deep learning ให้กับซอฟต์แวร์ได้ง่ายมากขึ้นและ DL4J ยังเป็นซอฟต์แวร์โอเพนซอร์สสามารถนำมาใช้งานได้ฟรีไม่มีค่าใช้จ่าย DL4J อยู่ภายใต้การดูแลของ Eclipse Foundation มีบริการ support แบบ commercial โดยบริษัท Skymind

DL4J แบ่งออกเป็น 2 ส่วน

  1. ETL (Extract Transform Load) ใช้ DataVec และ ND4J เป็นเครื่องมือช่วยจัดการข้อมูล
  2. Learning system ใช้ feature กระจายโหลด โดยใช้ MapReduce บน Hadoop หรือ Spark cluster

โดยทั่วไป Deep Learning ใช้ vectors หรือ tensors ในการจัดการข้อมูลเพื่อใช้ในการประมวลผล DL4J มี tensor library ชื่อ ND4J ที่ทำหน้าที่จัดการข้อมูลในอาเรย์แบบหลายมิติ (n-dimension) ซึ่ง DL4J สามารถประมวลผลได้ทั้งบน CPU และ GPU

สรุปเกี่ยวกับ DL4J

  • ทำงานบน JVM ของภาษา Java, Scala และ Clojure ได้
  • สามารถใช้ IDE อย่าง InteliJ ในการเขียนโปรแกรมได้
  • สามารถใช้เครื่องมือออนไลน์ SKIL (Skymind Inteligence Layer)
  • มี Zeppelin Notebook (Web base IDE ชื่อดังตัวหนึ่ง) เพิ่มเข้ามา เพื่ออำนวยความสะดวกในการ train AI โมเดล
  • รองรับภาษาในการเขียน deep learning ได้หลากหลายมากขึ้น ปัจจุบันรองรับภาษา Java, Scala, Clojure และ Python
  • SKIL มีรุ่น Community ที่เป็นโอเพนซอร์สให้งานได้ฟรี และรุ่น Commercial แบบมีค่าใช้จ่ายสำหรับลูกค้าองค์กร

ความแตกต่างระหว่างรุ่น Community และ Commercial เพียงแต่ Commercial จะดีกว่าดังนี้

  • รองรับการทำ Multi-Node สำหรับใช้ train model บน cluster
  • รองรับการทำ Fault tolerance, load balancing, และ leader election
  • รองรับการทำ Integration กับ application ต่างๆ เช่น Robotic Process Automation เป็นต้น

DL4J ใช้ภาษา Java และติดตั้งบน JVM ทำให้ Enterprise Software ที่พัฒนาด้วย Java สามารถเรียกใช้ ความสามารถของ Deep Learning ได้ง่ายขึ้น ไม่จำเป็นต้องเรียนรู้ภาษาใหม่ นอกจากการพัฒนาโดยใช้ภาษา Java ที่สามารถทำได้ง่ายแล้ว DL4J ยังสามารถเรียกใช้งาน model จาก Deep Learning Framework ที่มีอยู่แล้ว เช่น Keras และ Tensorflow ได้ สำหรับการติดตั้งสามารถติดตั้งบน JVM แบบ on-premise หรือการ Scale Out บน Container Service บน Cloud ได้เช่นกัน

Deep Learning ยังต้องใช้ GPU เพื่อช่วยเร่งการประมวลผลให้เร็วขึ้น แต่ DL4J สามารถทำงานได้บน CPU ที่มีชุดคำสั่ง AVX และ AVX2 (Advanced Vector Extensions) นอกจากการประมวลผลโดยใช้ CPU, GPU แล้ว DL4J ยังสามารถใช้ Hadoop และ Spark เป็นคลัสเตอร์ช่วยในการประมวลผล Deep Learning แบบกระจายได้ (Distributed Deep Learning) DL4J เหมาะสำหรับงานด้าน Image recognition, fraud detection, text mining, speech tagging, machine vision และ natural language processing

ตัวอย่าง Usecase และ Industry ที่เกี่ยวข้อง

Usecase Industry
Sound
Voice recognition UX/UI, Automotive, Security, IoT
Voice search Telecom, a Handset maker
Sentiment analysis CRM
Flaw detection (engine noise) Automotive, Aviation
Fraud detection Financial, Credit Cards
Time Series
Log analysis, Risk detection Data centers, Security, Finance
Enterprise resource planning Manufacturing, Auto, Supply chain
Predictive analytics, sensor data IoT, Smart home, Hardware manufacturer
Business and Economic analytics Finance, Accounting, Government
Recommendation engine E-commerce, Media, Social Networks
Text
Sentiment Analysis CRM, Social media, Reputation management
Augmented search, Theme detection Finance
Threat detection Social media, Govt
Fraud detection Insurance, Finance
Image
Face recognition
Image search Social media
Machine vision Automotive, aviation
Photo clustering Telecom, Handset makers
Video
Motion detection Gaming, UX, UI
Real-time threat detection Security, Airports

ข้อดี

  • ประมวลผลได้ทั้งบน CPU ที่มี AVX, AVX2 และ GPU ผ่าน CUDA
  • ติดตั้งและ scale ได้ง่ายผ่าน container service บน Cloud
  • ประมวลผลแบบ parallel อัตโนมัติ ไม่จำเป็นต้องเขียน parallel programming
  • เชื่อมต่อกับ ecosystem ของ Java ได้ train model บน Hadoop, Spark Cluster ได้
  • มี commercial support และ AI platform ให้บริการโดย Skymind จ่ายค่า subscription plan ตามต้องการ

ข้อเสีย

  • DL4J มีเครื่องมือยังไม่แพร่หลาย เน้น B2B เป็นหลัก

เมื่อสัปดาห์ก่อนได้รับบอร์ด 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 ได้