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

Linkit smart 7688 與 Node.js 的邂逅

blue chen
December 11, 2015

Linkit smart 7688 與 Node.js 的邂逅

blue chen

December 11, 2015
Tweet

More Decks by blue chen

Other Decks in Programming

Transcript

  1. >  npm  install  express    ….  ran  out  of  memory

     … npm install 耗⽤用極⼤大 memory npm  install  ⼤大約基礎會耗掉接近  60  mb  的  memory
  2. >  opkg  install  node    ….  no  space  … 硬碟只有

    16 MB, 只剩 4 mb 可⽤用空間 nodejs  在各平台⼤大約基礎會耗掉  6~8  mb  的  space
  3. • MT7688 • 128MB DDR2 • 32MB Flash • Chip

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

    • Chip Antenna (default) • IPEX Ext Antenna • microSD • USB Host • JTAG LinkIt Smart 7688 Duo
  5. MPU  (  Microproccess  Unit) MCU  (MIcrocontroller  Unit) 1.  ⼯工作時脈幾百MHz  

    2.  MB  等級的  RAM   3.  可以跑完整的  Linux   1.  ⼯工作時脈  100MHz  以下   2.  KB  等級的  RAM     3.  Real-­‐time  OS  :  freeRTOS  …etc  
  6. MT7688& ATMega32U4+ Sensor USB device LinkIt Smart 7688 Duo MT7688&

    Sensor USB device LinkIt Smart 7688 MPU,  邏輯端運算 MCU,  Real-­‐time  control
  7. 先從⼀一般基本跑得動 javascript 情境來談 Nodejs OS   硬碟⾄至少要  1X  mb,  RAM

     建議⾄至少要  64  mb 想像⼀一下各位現有的  server  如何跑  javascript  ?   Linux,  openWRT…etc
  8. 先從⼀一般基本跑得動 javascript 情境來談 Nodejs OS   Applicaton 想像⼀一下各位現有的  server  如何跑

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

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

     javascript  ?   規格 架構 Linux,  openWRT…etc 硬碟⾄至少要  1X  mb,  RAM  建議⾄至少要  64  mb
  11. MT7688& ATMega32U4+ Sensor USB device LinkIt Smart 7688 Duo MT7688&

    Sensor USB device LinkIt Smart 7688 MPU,  邏輯端運算 MCU,  Real-­‐time  control  Node.js  跑在這
  12. Node.js需要有其他的軟體架構擴充 對嵌⼊入式開發板⽽而⾔言 1.PWM,  GPIO,  I2C  ….  etc  (  libmraa  )

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

      2.跟  MCU  端溝通  (  node-­‐serialport,  firmata  )   3.USB  device  (  node-­‐hid  )
  14. NodeJS  (  v0.12.7  )   node-serialport node-hid Firmata, cylonJS Your

    application OpenWRT  OS (Wifi,  driver) (MCU  溝通) (MCU  溝通) mraa (USB)
  15. OpenWRT 重點玩法 1. full  stack  wifi:  AP  mode,  Station  mode

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

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

    wifi  Router/gateway  玩法   3. 超級豐富的  package,  driver  community OpenWRT 重點玩法
  18. OpenWRT package management >  opkg  update   >  opkg  install

     套件名 我們提供  opkg  清單:   http://mirror2.openwrt.org/mt7688_v0.9/packages/
  19. ruby,  python,  nodejs,  lua,  perl,     php,  erlang,  javm,

     opencv,  ffmpeg,     bluez  …  
     找不到?    來  contribute  吧!  
  20. 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
  21. NodeJS  (  v0.10.27  )   node-serialport node-hid Firmata, cylonJS Your

    application OpenWRT  OS (Wifi,  driver) (MCU  溝通) (MCU  溝通) mraa (USB)
  22. MT7688& ATMega32U4+ Sensor ( mcu, mpu溝通) USB device LinkIt Smart

    7688 Duo MT7688& Sensor ( libmraa ) USB device LinkIt Smart 7688
  23. node-­‐serialport  接收對話 Firmata  把每個通道都打通 Digital  0~13   PWM   i2C

    Arduino sensor MT7688& ATMega32U4+ Linkit Smart 7688 Duo 相同的  baudrate下
  24. MPU Atmega32U4 Application 101010000000 node-­‐serialport framework Digital  0~13   PWM

      i2C Arduino sensor Firmata  把每個通道都打通 LinkIt Smart 7688 Duo 相同的  baudrate下
  25. 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下
  26. 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 的效能及市場性的問題
  27. 挑戰⼆二如何讓兩個晶⽚片溝通 ? 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  端處理好
  28. 挑戰⼆二如何讓兩個晶⽚片溝通 ? 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  端處理好
  29. USB  device Sensor Wifi, OS driver/pkg 全部交給  OpenWRT mraa,  node-­‐serialport,

     firmata node-­‐hid (指紋辨識機) (web  cam,  CD-­‐player) (keyboard)
  30. NodeJS  (  v0.10.27  )   node-serialport node-hid Firmata, cylonJS Your

    application OpenWRT  OS (Wifi,  driver) (MCU  溝通) (MCU  溝通) mraa (USB)
  31. 1.提供  RPC  ,  可透過打  API  的⽅方式操作  OS  底層介⾯面   2.session/

     token  驗證沿⽤用  OpenWRT  Luci  auth   3.提供給⾃自造商更好客製化⾃自⼰己  webUI/  application   • RPC  demo:     https://github.com/MediaTek-­‐Labs/linkit-­‐smart-­‐7688-­‐webUI/blob/master/rpc_demo_files/rpc_demo.html   • Linkit  smart  7688  WebUI   https://github.com/MediaTek-­‐Labs/linkit-­‐smart-­‐7688-­‐webUI