GoにいればGoに従え(30) math/bitsをTinyGoで使ってみる

MathBitsEC
Joseph Halfmoon

前回まで標準ライブラリのcontainerを練習してましたが、今回からmathに入ります。最初はmath/bitsです。ここにはMCU(マイクロ・コントローラ・ユニット、間違えてもマーベルなんたらではありませんぞ)使うときに必要になりそうな者どもが控えております。バイナリ者(忍者の一種?)にはお馴染みの操作かと。 “GoにいればGoに従え(30) math/bitsをTinyGoで使ってみる” の続きを読む

GoにいればGoに従え(29) container/ringをTinyGoで使ってみる

mb20ringResult
Joseph Halfmoon

前々回heap前回listとGoの標準ライブラリのcontainerを練習。今回はcontainerの最後の一つ ring です。しかし似たお名前のRingBufferがTinyGoのMachineパッケージの中に存在。今回は2つを比較してから、標準ライブラリのringの方をmicro:bit上で練習してみます。

“GoにいればGoに従え(29) container/ringをTinyGoで使ってみる” の続きを読む

GoにいればGoに従え(28) container/listをTinyGoで使ってみる

mb20listSRC
Joseph Halfmoon

前回はTinyGoでも「フルの」Goの標準ライブラリが立派に使える、ということで「値によって順番をつけて」データを格納してくれるheapを使ってみました。さて今回はその流れで container/list を使ってみます。順番を管理できるデータ構造です。それにどんな型のデータを入れても良いし。よくあるリスト構造だね。 “GoにいればGoに従え(28) container/listをTinyGoで使ってみる” の続きを読む

GoにいればGoに従え(27) container/heapをTinyGoで使ってみる

Defineiheap
Joseph Halfmoon

インタプリタ処理系のMicroPythonとコンパイラのTinyGoを比べるのもどうかと思うのですが。MicroPythonは「フルセットのPythonのライブラリのサブセット」を実装、一方TinyGoは「フルセットのGoのライブラリの一部」を使用可能というスタンスみたいっす。今回は乱雑な順に乱雑な値を入れても出すときは順番にならんでいるヒープ構造をTinyGoで使ってみます。 “GoにいればGoに従え(27) container/heapをTinyGoで使ってみる” の続きを読む

GoにいればGoに従え(26) Goの標準ライブラリも46%くらい?はTinyGoで使える

TinyGoPackage
Joseph Halfmoon

前回はTinyGo専用(組み込みマイコン向けの)ドライバセットTinyGo Driversは便利、便利の回でした。でもねTinyGo専用のドライバばかりでなく便利なものは他にもあるっしょ、肝心なものを忘れてないかい?ということでGo言語の標準ライブラリのTinyGo対応状況を確認してみました。かなり使える?

“GoにいればGoに従え(26) Goの標準ライブラリも46%くらい?はTinyGoで使える” の続きを読む

GoにいればGoに従え(25) TinyGo Drivers便利。なんでも簡単接続。

LIS3DHmodule
Joseph Halfmoon

前回使用したTinyGo Driversというドライバセットは超便利っす。非常に簡単な手順で、定番物の周辺デバイス約100種に対するドライバをTinyGoのコードから使えるようになります。Arduinoなどで人気のデバイスは網羅している感じです。今回はLIS3DH、MEMS加速度センサとの接続を実験。 “GoにいればGoに従え(25) TinyGo Drivers便利。なんでも簡単接続。” の続きを読む

GoにいればGoに従え(24) TinyGo Driversを使ってNeoPixel接続

mb20NeoPixel
Joseph Halfmoon

前回はちょっとマイナーで冒険的なインタフェースのシリアルLEDを光らせてみました。今回は定番のシリアル接続フルカラーLED Neopixel(WS2812)を光らせてみます。前回と違い「定番デバイス」なのでTinyGo Driversというドライバセットを使うことができます。自前でドライバ書かなくても良いのでお楽。 “GoにいればGoに従え(24) TinyGo Driversを使ってNeoPixel接続” の続きを読む

GoにいればGoに従え(23) TinyGo、シリアル接続LED、micro:bit v2

MB20_OST4ML5B32A
Joseph Halfmoon

別シリーズにて数珠繋ぎに多数個シリアル接続可能なフルカラーLED、OST4ML5B32Aの点灯実験実施。今度はTinyGo+micro:bit v2 でも接続試験を行ってみました。よくあるNeoPixelとは違って「3値論理」の信号使ってます。中間電位を積極的に使うロジックIFにヤバさを感じつつ、Let’s go的な。

“GoにいればGoに従え(23) TinyGo、シリアル接続LED、micro:bit v2” の続きを読む

GoにいればGoに従え(22) TinyGo、SPI接続、micro:bit v2の場合

Joseph Halfmoon

TinyGoを使ってBBC micro:bit v2を制御してます。「使ってなかった」のに「使った気でいた」ペリフェラル回路があり。SPIです。TinyGoでSAMD21マイコンで実験済、またmicro:bitのmakeCode環境でも実験済。でもTinyGoとmicro:bit v2 ではやってない。組み合わせ爆発?
“GoにいればGoに従え(22) TinyGo、SPI接続、micro:bit v2の場合” の続きを読む

GoにいればGoに従え(21) TinyGo、乱数発生器よみとり、micro:bit v2

mb20rng_results
Joseph Halfmoon

このところBBC micro:bit v2のオンボードペリフェラルを端から見てまわっています。今回はオンボードというよりオンチップペリフェラルです。nRF52833搭載のハードウエア乱数発生器です。Goにはソフトウエアの乱数発生パッケージがありますが、多分ハードウエアで発生した方がより良いのではないかと。知らんけど。 “GoにいればGoに従え(21) TinyGo、乱数発生器よみとり、micro:bit v2” の続きを読む

GoにいればGoに従え(20) TinyGo、MICの値を読み取る、micro:bit v2

goMIC_DUT2
Joseph Halfmoon

前回はBBC micro:bit v2搭載のスピーカ(というよりブザーですが)を鳴らしてみました。今回はオンボード搭載のマイクロフォンの瞬時値を読み取ってみます。音声波形として読むためには正確なサンプリング周期で連続読み取りが必要ですが、今回のはある瞬間の1点の出力を読んでいるだけ。音声には程遠いです。 “GoにいればGoに従え(20) TinyGo、MICの値を読み取る、micro:bit v2” の続きを読む

GoにいればGoに従え(19) TinyGo、スピーカを鳴らす、micro:bit v2

MB20speaker2
Joseph Halfmoon

BBC micro:bit v2搭載のペリフェラルを順に動かしてみています。前回は6軸センサLSM303AGRでした。今回はボード部品面の中央に鎮座する「スピーカ」を鳴らしてみたいと思います。回路図には「スピーカ」と書いてありますが、ビープ鳴らすくらいがせいぜい、ブザーという方が穏当かもしれません。PWM駆動とな。 “GoにいればGoに従え(19) TinyGo、スピーカを鳴らす、micro:bit v2” の続きを読む

GoにいればGoに従え(18) TinyGo、加速度センサ読み取り。micro:bit v2

ACCresult
Joseph Halfmoon

前回は、BBC micro:bit v2 搭載のSTmicroelectronics社製LSM303AGRのうち磁気センサ(電子コンパス)の読み取りを確認。今回は加速度センサについて読み取りを実行です。読み取りそのものは難しくないけれども、いろいろ出来るので設定すべきレジスタが多いです。最初に一度やるだけだけれども。 “GoにいればGoに従え(18) TinyGo、加速度センサ読み取り。micro:bit v2” の続きを読む

GoにいればGoに従え(17) TinyGo、電子コンパス読み取り。micro:bit v2

GoMagResults
Joseph Halfmoon

前回micro:bit v2 搭載のSTmicroelectronics社製LSM303AGR「6軸センサ」とのI2C接続を確認。今回はLSM303AGRの2機能のうち、電子コンパス(磁気センサ)の読み取りを行ってみます。立派なアプリケーション・ノートが用意されてます。これさえあればバッチリ?ちゃんと読めよ、自分。
“GoにいればGoに従え(17) TinyGo、電子コンパス読み取り。micro:bit v2” の続きを読む