Upgrade to Pro — share decks privately, control downloads, hide ads and more …

2017.01.16 Embedded system

blue chen
January 16, 2017

2017.01.16 Embedded system

blue chen

January 16, 2017
Tweet

More Decks by blue chen

Other Decks in Technology

Transcript

  1. Blue

    View Slide

  2. View Slide

  3. View Slide

  4. View Slide

  5. View Slide

  6. IT# Hardware#
    device##
    #
    #
    #
    #
    近年年來來應⽤用. 服務 . 價值在
    這裡發光發熱

    View Slide

  7. IT# Hardware#
    device##
    #
    #
    #
    #
    Javascript#
    近年年來來應⽤用. 服務 . 價值在
    這裡發光發熱

    View Slide

  8. 全端物聯聯網開發
    Javascript (Node.js) 不在僅是跑在 server 上
    希望他可以跑在你我周遭的任何事物上

    javascript 現在可以來來做 native phone app, native desktop app, browser app,
    server … etc (投資報酬率較⼤大的選擇)

    View Slide

  9. LinkIt™ Smart 7688 與 Node.js 的邂逅

    View Slide

  10. > npm install express
    …. ran out of memory …
    npm install 耗⽤用極⼤大 memory
    npm install ⼤大約基礎會耗掉接近 60 mb 的 memory

    View Slide

  11. > opkg install node
    …. no space …
    硬碟只有 16 MB, 只剩 4 mb 可⽤用空間
    nodejs 在各平台⼤大約基礎會耗掉 6~8 mb 的 space

    View Slide

  12. • MT7688
    • 128MB DDR2
    • 32MB Flash
    • Chip Antenna (default)
    • IPEX Ext Antenna
    • microSD
    • USB Host
    • JTAG
    LinkIt Smart 7688

    View Slide

  13. • MT7688 + ATmega32U4
    • 128MB DDR2
    • 32MB Flash
    • Chip Antenna (default)
    • IPEX Ext Antenna
    • microSD
    • USB Host
    • JTAG
    LinkIt Smart 7688 Duo

    View Slide

  14. MT7688& ATMega32U4+ Sensor
    USB device
    LinkIt Smart 7688 Duo
    MT7688&
    Sensor
    USB device
    LinkIt Smart 7688

    View Slide

  15. MPU ( Microproccess Unit)
    MCU (MIcrocontroller Unit)
    1. ⼯工作時脈幾百MHz
    2. MB 等級的 RAM
    3. 含有 MMU 可以跑完整的 Linux
    1. ⼯工作時脈 100MHz 以下
    2. KB 等級的 RAM
    3. Real-time OS : freeRTOS …etc

    View Slide

  16. MT7688& ATMega32U4+ Sensor
    USB device
    LinkIt Smart 7688 Duo
    MT7688&
    Sensor
    USB device
    LinkIt Smart 7688
    MPU, 邏輯端運算
    MCU, Real-time control

    View Slide

  17. 先從⼀一般基本跑得動 Node.js (javascript) 情境來來談
    Nodejs
    OS
    Applicaton
    想像⼀一下各位現有的 server 如何跑 Node.js(javascript) ?
    規格
    架構
    Linux, openWRT…etc
    硬碟⾄至少要 1X mb, RAM 建議⾄至少要 64 mb

    View Slide

  18. MT7688& ATMega32U4+ Sensor
    USB device
    LinkIt Smart 7688 Duo
    MT7688&
    Sensor
    USB device
    LinkIt Smart 7688
    MPU, 邏輯端運算
    MCU, Real-time control
    Node.js 跑在這

    View Slide

  19. 關於開發版的外型

    View Slide

  20. 總結硬體介⾯面上
    7688 擁有三個領域的玩法
    USB device
    Sensor
    Wifi, OS driver/pkg

    View Slide

  21. Node.js需要有其他的軟體架構擴充
    對嵌入式開發板⽽而⾔言
    1.PWM, GPIO, I2C …. etc ( libmraa )
    2.跟 MCU 端溝通 ( node-serialport, firmata )
    3.USB device ( node-hid )

    View Slide

  22. NodeJS ( v0.12.7 )
    node-serialport
    node-hid Firmata, cylonJS
    Your application
    OpenWRT OS (Wifi, driver)
    (MCU 溝通) (MCU 溝通)
    mraa
    (USB)

    View Slide

  23. 7688 OpenWRT OS 完全開源
    1. OpenWRT 創始⼈人之⼀一親⾃自操⼑刀使⽤用最新 15.05 架構製作
    2. 全部開源在 github 上
    3. Upgrade all lib/pkg version

    View Slide

  24. OpenWRT 重點玩法
    1. full stack wifi: AP mode, Station mode
    2. wifi Router/gateway 玩法
    3. 超級豐富的 package, driver community

    View Slide

  25. 1. full stack wifi: AP mode, Station mode
    2. wifi Router/gateway 玩法
    3. 超級豐富的 package, driver community
    OpenWRT 重點玩法

    View Slide

  26. 7688 Duo
    外網網路路孔
    外部網路路(有線網路路) <-> 7688 Duo <-> 家⽤用裝置

    View Slide

  27. 1. full stack wifi: AP mode, Station mode
    2. wifi Router/gateway 玩法
    3. 超級豐富的 package, driver community
    OpenWRT 重點玩法

    View Slide

  28. OpenWRT package management
    > opkg update
    > opkg install 套件名
    我們提供 opkg 清單:
    http://mirror2.openwrt.org/mt7688_v0.9/packages/

    View Slide

  29. ruby, python, nodejs, lua, perl,
    php, erlang, javm, opencv, ffmpeg,
    bluez … 

    找不到? 來來 contribute 吧!

    View Slide

  30. Demo
    (mjpg-streamer)

    View Slide

  31. Demo
    (CD-player)
    opkg update
    opkg install kmod-scsi-cdrom
    opkg install kmod-scsi-core
    opkg install kmod-scsi-generic
    opkg install kmod-fs-isofs

    View Slide

  32. NodeJS ( v0.10.27 )
    node-serialport
    node-hid Firmata, cylonJS
    Your application
    OpenWRT OS (Wifi, driver)
    (MCU 溝通) (MCU 溝通)
    mraa
    (USB)

    View Slide

  33. USB device
    Sensor
    Wifi, OS driver/pkg
    全部交給 OpenWRT
    mraa, node-serialport, firmata
    node-hid

    View Slide

  34. Demo
    (keyboard)

    View Slide

  35. USB device
    Sensor
    Wifi, OS driver/pkg
    全部交給 OpenWRT
    mraa, node-serialport, firmata
    node-hid

    View Slide

  36. MT7688& ATMega32U4+ Sensor ( mcu, mpu溝通)
    USB device
    LinkIt Smart 7688 Duo
    MT7688&
    Sensor ( libmraa )
    USB device
    LinkIt Smart 7688

    View Slide

  37. 如何讓兩兩個晶片溝通?
    Duo 上玩 Arduino Sensor

    View Slide

  38. node-serialport 接收對話 Firmata 把每個通道都打通
    Digital 0~13
    PWM
    i2C
    Arduino sensor
    MT7688& ATMega32U4+
    Linkit Smart 7688 Duo
    相同的 baudrate下

    View Slide

  39. MPU Atmega32U4
    Application
    101010000000
    node-serialport
    framework
    Digital 0~13
    PWM
    i2C
    Arduino sensor
    Firmata 把每個通道都打通
    LinkIt Smart 7688 Duo
    相同的 baudrate下

    View Slide

  40. Framework 的選擇

    View Slide

  41. firmata 的效能及市場性問題
    Duo 上玩 Arduino Sensor

    View Slide

  42. firmata 的效能及市場性的問題
    Firmata is not a good pattern
    MPU Atmega32U4
    Application
    101010000000
    node-serialport
    framework
    Digital 0~13
    PWM
    i2C
    Arduino sensor
    Firmata 把每個通道都打通
    LinkIt Smart 7688 Duo
    相同的 baudrate下

    View Slide

  43. Firmata is not a good pattern
    MPU Atmega32U4
    Application
    101010000000
    node-serialport
    framework
    Digital 0~13
    PWM
    i2C
    Arduino sensor
    Firmata 把每個通道都打通
    LinkIt Smart 7688 Duo
    相同的 baudrate下
    1
    且所有運算都在 MPU 端
    很多 sensor 只有 C 不提供 JS parser
    2
    firmata 的效能及市場性的問題

    View Slide

  44. View Slide

  45. 挑戰⼆二如何讓兩兩個晶片溝通 ? firmata ?
    Firmata is not a good pattern
    MPU Atmega32U4
    Application
    node-serialport
    framework
    Digital 0~13
    PWM
    i2C
    Arduino sensor
    LinkIt Smart 7688 Duo
    相同的 baudrate下
    運算在 MCU 端處理理好

    View Slide

  46. 挑戰⼆二如何讓兩兩個晶片溝通 ? firmata ?
    Firmata is not a good pattern
    MPU Atmega32U4
    Application
    這是 blue 的指紋
    node-serialport
    framework
    Digital 0~13
    PWM
    i2C
    Arduino sensor
    LinkIt Smart 7688 Duo
    相同的 baudrate下
    運算在 MCU 端處理理好

    View Slide

  47. 讓兩兩顆晶片各司其職

    View Slide

  48. Demo
    (指紋辨識機)

    View Slide

  49. USB device
    Sensor
    Wifi, OS driver/pkg
    全部交給 OpenWRT
    mraa, node-serialport, firmata
    node-hid
    (指紋辨識機)
    (web cam, CD-player)
    (keyboard)

    View Slide

  50. mcs.mediatek.com
    labs.mediatek.com

    View Slide

  51. mcs.mediatek.com

    View Slide

  52. /PEFKTປᆜTVQQPSU
    48)8ປಆῘჷ
    -FWFSBHFBMM"SEVJOPTFOTPS
    䌉ࡄ֥≐ڛ↩ⅴ⇼
    ൲ᾁӑьၒ
    ಸၞΆೆਈ㸗ᾲ؍

    View Slide

  53. Make it big with something small

    View Slide

  54. 感謝所有參參與 LinkIt smart 7688 專案的所有同仁

    View Slide