https://github.com/sago35/tinygobook
Support site for book (基礎から学ぶ TinyGoの組込み開発) released in Japan
https://github.com/sago35/tinygobook
embedded go tinygo wioterminal
Last synced: 8 months ago
JSON representation
Support site for book (基礎から学ぶ TinyGoの組込み開発) released in Japan
- Host: GitHub
- URL: https://github.com/sago35/tinygobook
- Owner: sago35
- License: mit
- Created: 2022-08-12T03:01:38.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2025-05-03T00:54:48.000Z (10 months ago)
- Last Synced: 2025-06-21T16:23:21.768Z (8 months ago)
- Topics: embedded, go, tinygo, wioterminal
- Language: Go
- Homepage: https://www.c-r.com/book/detail/1477
- Size: 575 KB
- Stars: 16
- Watchers: 1
- Forks: 1
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 基礎から学ぶ TinyGoの組込み開発
高砂正哲が執筆した「基礎から学ぶ TinyGoの組込み開発」 (C&R研究所) のサポートサイトです。
質問や誤記などがある場合は本ページの Issue もしくは Twitter で受け付けています。
## 書籍情報
* C&R (紙) : https://www.c-r.com/book/detail/1477
* Amazon (紙、Kindle) : https://www.amazon.co.jp/dp/4863544006
* 本の森 (紙、PDF、EPUB) : https://book.mynavi.jp/manatee/c-r/books/detail/id=134168

各節まで含めた目次はこちら。
* [目次](./toc.md)
## Twitter
Twitter に投稿する時の hashtag は `#tinygo` と `#tinygobook` を使ってください。
* Twitter : [tinygo OR #tinygo OR @tinygolang OR #tinygobook](https://twitter.com/search?q=tinygo%20OR%20%23tinygo%20OR%20%40tinygolang%20OR%20%23tinygobook&src=typed_query&f=live)
## よくある質問と回答
### tinygo flash に失敗します
2 章 P.31 に従い (リセット x 2 で) ブートローダーに入れてから `tinygo flash` してみてください。
それでも改善しない場合は、 `tinygo build -o out.uf2` のようにして uf2 ファイルを作ってから手動で書き込みしてください。
## 正誤表
誤記等を見つけた場合は、 Issue もしくは Twitter で教えてください。
* [正誤表](./correct.md)
### 注意
ネットワーク部 (RTL8720DN) のファームウェアアップデート方法の修正があるため必ず確認してください。
具体的には、
```
$ git clone https://github.com/Seeed-Studio/ambd_flash_tool
```
ではなく
```
$ git clone https://github.com/Seeed-Studio/ambd_flash_tool --branch JP
```
を使うようにしてください。
### TinyGo と Go の組み合わせ
| TinyGo | Go | 備考 |
| --- | --- | --- |
| 0.31.0 | 1.21 - 1.22 | net package が大幅更新 (※2) |
| 0.28.1 | 1.19 - 1.20 | Wio Terminal の動作について一部問題あり(※1) |
| 0.27.0 | 1.19 - 1.20 | |
| 0.26.0 | 1.18 - 1.19 | 書籍執筆時 Version (脱稿直前のリリース) |
| 0.25.0 | 1.18 - 1.19 | 書籍執筆時 Version |
※1
TinyGo 0.28.1 で Wio Terminal に搭載されている ATSAMD51 マイコンの Cache を有効化する変更が入り、 I2C などが一部動作不良となるケースがあります。
本件については [正誤表](./correct.md) に記載しています。
※2
TinyGo 0.31.0 で net や net/http package 関連が大幅更新されました。
この辺りについては後日まとめる予定ですが、さしあたりは [正誤表](./correct.md) を確認してください。
## Demos
デモアプリケーションはこちら。
Wio Terminal + TinyGo 0.26 で動作を確認しています。
### Wio Terminal Tracker
LIS3DH から得た情報を用いて、パソコン上の画像の傾きを制御する Demo です。

* [./wioterminal/tracker/](./wioterminal/tracker/)
```
$ tinygo flash --target wioterminal --size short ./wioterminal/tracker/
code data bss | flash ram
54496 1500 6260 | 55996 7760
```
注意) `-opt z` 以外でビルドすると、I2Cデータの受け取りに失敗します
### Gopher福笑い
十字キーなどを使って目と口の位置を自由に動かすことができる Demo です。
面白い顔を作って Twitter に投稿してください。

* [./wioterminal/fukuwarai](./wioterminal/fukuwarai/)
```shell
$ tinygo flash --target wioterminal --size short --opt 2 ./wioterminal/fukuwarai/
code data bss | flash ram
447876 356 180480 | 448232 180836
```
注意) 実行速度を高速化するため `-opt 2` でビルドすることを推奨します
## Chapter 7 ネットワークに接続する
サポートサイトにて、 chap07 のコードを公開しています。
以下のようにして chap07 ディレクトリに移動してから書き込むことができます。
ssid や password が必要となるコードについては P.235 を参考に設定してください。
TinyGo 0.26 以降は `tinygo flash` 時に `--monitor` を指定することが出来ます。
多くの場合、 minicom や Tera Term を使わなくてもうまくやり取りできるはずです。
```
$ cd chap07/
$ tinygo flash --target wioterminal --size short --monitor ./update_test/
code data bss | flash ram
57452 1528 9004 | 58980 10532
Connected to COM5. Press Ctrl-C to exit.
RTL8270DN Firmware Version: 2.1.2
```
### 各種リンク
* https://tinygo.org/
* https://tinygo.org/docs/reference/microcontrollers/wioterminal/
* Seeed
* https://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/ (TinyGo ではなく Arduino 情報)
* https://wiki.seeedstudio.com/jp/Wio-Terminal-Getting-Started/ (TinyGo ではなく Arduino 情報)
* [sago35の日記 - Hatena Blog](https://sago35.hatenablog.com/)
* [TinyGo 0.26 で遊べるマイコンボード一覧 - Hatena Blog](https://sago35.hatenablog.com/entry/2022/10/05/083000)
* [github.com/sago35/tinygo-workshop](https://github.com/sago35/tinygo-workshop)
* Go Conference 2021 Autumn 内の Wio Terminal を使った TinyGo ハンズオン用の記事
* ハンズオン時の動画: https://gocon.jp/2021autumn/sessions/workshop_a/
* [Wio Terminal で TinyGo プログラミングを始めよう - Qiita](https://qiita.com/sago35/items/92b22e8cbbf99d0cd3ef)
* Twitter : [tinygo OR #tinygo OR @tinygolang OR #tinygobook](https://twitter.com/search?q=tinygo%20OR%20%23tinygo%20OR%20%40tinygolang%20OR%20%23tinygobook&src=typed_query&f=live)
## 著者紹介
* 高砂正哲
* GitHub: https://github.com/sago35
* Twitter: [@sago35tk](https://twitter.com/sago35tk)
## about Gopher
The Gopher character is based on the Go mascot designed by [Renée French](https://reneefrench.blogspot.com/).