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

「Small is Going big」mercari.go#10

taqboz
August 20, 2019

「Small is Going big」mercari.go#10

taqboz

August 20, 2019
Tweet

Other Decks in Technology

Transcript

  1. source code Go TinyGo Go SSA LLVM LLVM IR binary

    TinyGoについて • LLVMを使ったGoコンパイラ • バイナリファイルのサイズを抑えてビルド • LLVMがWebAssembly対応 → 副産物としてTinyGoも対応 • 現時点でのバージョン:0.7.1
  2. デメリット / 制限 1. Gotoutineのサポートが完全ではない 2. GCはARMマイクロコントローラー (Cortex-M)のみ対応 3. 使えない標準パッケージが多い(net/http等)

    参照:https://tinygo.org/lang-support/stdlib/ 4. mapのキーは⽂字列、整数、ポインタ、 構造体(前記の型で構成されたもののみ)のみ対応
  3. セッション内でのデモ • Digispark上でLEDの点滅 (8bitプロセッサー & 8KB RAM) • Gopherbot ボタンの押し込み

    でLEDの点灯 package main Import ( "machine” "time” ) func main() { led := machine.LED led.Configure(machine.PinConfig{Mode: machine.PinOutput}) for { led.Low() time.Sleep(time.Millisecond * 500) led.High() time.Sleep(time.Millisecond * 500) } }
  4. セッション内でのデモ フライトコントローラー • Arduino Nano 33 IoT • アナログスティック •

    ボタン • OLEDディスプレイ net系パッケージは動作しないものの Arduinoチップに組み込まれたWi-Fi チップで動作するインターフェイス をコントリビューターの⽅が実装し たとのこと。
  5. Droneデモ Tello Ryze Drone IP: 192.168.10.1 PORT : 11111 Video

    PORT : 8889 Commands & Response Arduino Nano33 IoT UDP I2C JoyStick Button A/O GPIO OLED IP: 192.168.10.2 PC