こんにちは、エンジニアのオオバです。
先日我が家にやってきたキュベット君。
キュベットとは
イギリス発のプログラミング脳を鍛えるための電子おもちゃです。
プログラミング脳を3歳から プリモトイズ キュベット
キュベットは、そこそこお高いですが、
うちの5歳の娘は夢中で遊んでいます。
→11万文字で徹底解説した「DOTweenの教科書」Unityアニメーションの超効率化ツールはこちら
キュベットの挙動をカスタマイズする
ちなみに、キュベットの中身はArduinoなので、
プログラムを書くことができます。
さっそくやってみようということで、
こちらの動画を見ながら、やってみました。
Cubetto Tutorial | Update Firmware - YouTube
しかし、コンパイル時に以下のエラーがでます。
failed MSpanList_Insert 0x30c000 0x2c93f0697180 0x0
fatal error: MSpanList_Insert
runtime stack:
runtime.throw(0x2ac50b)
/usr/local/go/src/runtime/panic.go:491 +0xad fp=0x7ffeefbff3e0 sp=0x7ffeefbff3b0
runtime.MSpanList_Insert(0x2ca128, 0x30c000)
/usr/local/go/src/runtime/mheap.c:692 +0x8f fp=0x7ffeefbff408 sp=0x7ffeefbff3e0
MHeap_FreeSpanLocked(0x2c6d20, 0x30c000, 0x100)
/usr/local/go/src/runtime/mheap.c:583 +0x163 fp=0x7ffeefbff448 sp=0x7ffeefbff408
MHeap_Grow(0x2c6d20, 0x8, 0x0)
/usr/local/go/src/runtime/mheap.c:420 +0x1a8 fp=0x7ffeefbff488 sp=0x7ffeefbff448
MHeap_AllocSpanLocked(0x2c6d20, 0x1, 0x0)
/usr/local/go/src/runtime/mheap.c:298 +0x365 fp=0x7ffeefbff4c8 sp=0x7ffeefbff488
mheap_alloc(0x2c6d20, 0x1, 0x12, 0x0)
/usr/local/go/src/runtime/mheap.c:190 +0x121 fp=0x7ffeefbff4f0 sp=0x7ffeefbff4c8
runtime.MHeap_Alloc(0x2c6d20, 0x1, 0x10000000012, 0xf989)
/usr/local/go/src/runtime/mheap.c:240 +0x66 fp=0x7ffeefbff528 sp=0x7ffeefbff4f0
MCentral_Grow(0x2cea98, 0x0)
/usr/local/go/src/runtime/mcentral.c:197 +0x8b fp=0x7ffeefbff590 sp=0x7ffeefbff528
runtime.MCentral_CacheSpan(0x2cea98, 0x0)
/usr/local/go/src/runtime/mcentral.c:85 +0x167 fp=0x7ffeefbff5c8 sp=0x7ffeefbff590
runtime.MCache_Refill(0x308000, 0x12, 0x0)
/usr/local/go/src/runtime/mcache.c:90 +0xa0 fp=0x7ffeefbff5f0 sp=0x7ffeefbff5c8
runtime.mcacheRefill_m()
/usr/local/go/src/runtime/malloc.c:368 +0x57 fp=0x7ffeefbff610 sp=0x7ffeefbff5f0
runtime.onM(0x223ad0)
/usr/local/go/src/runtime/asm_amd64.s:273 +0x9a fp=0x7ffeefbff618 sp=0x7ffeefbff610
runtime.mallocgc(0x120, 0x1bde40, 0x0, 0x0)
/usr/local/go/src/runtime/malloc.go:178 +0x849 fp=0x7ffeefbff6c8 sp=0x7ffeefbff618
runtime.newobject(0x1bde40, 0x308000)
/usr/local/go/src/runtime/malloc.go:353 +0x49 fp=0x7ffeefbff6f0 sp=0x7ffeefbff6c8
runtime.newG(0x276ba)
/usr/local/go/src/runtime/proc.go:233 +0x2a fp=0x7ffeefbff708 sp=0x7ffeefbff6f0
allocg(0x2b9660)
/usr/local/go/src/runtime/proc.c:925 +0x1f fp=0x7ffeefbff718 sp=0x7ffeefbff708
runtime.malg(0x8000, 0x2b9700)
/usr/local/go/src/runtime/proc.c:2106 +0x1f fp=0x7ffeefbff748 sp=0x7ffeefbff718
runtime.mpreinit(0x2b9ac0)
/usr/local/go/src/runtime/os_darwin.c:137 +0x27 fp=0x7ffeefbff760 sp=0x7ffeefbff748
mcommoninit(0x2b9ac0)
/usr/local/go/src/runtime/proc.c:201 +0xc9 fp=0x7ffeefbff788 sp=0x7ffeefbff760
runtime.schedinit()
/usr/local/go/src/runtime/proc.c:138 +0x55 fp=0x7ffeefbff7b0 sp=0x7ffeefbff788
runtime.rt0_go(0x7ffeefbff7e0, 0x19, 0x7ffeefbff7e0, 0x0, 0x19, 0x7ffeefbff9b8, 0x7ffeefbff9f6, 0x7ffeefbffa02, 0x7ffeefbffa12, 0x7ffeefbffa1c, ...)
/usr/local/go/src/runtime/asm_amd64.s:95 +0x116 fp=0x7ffeefbff7b8 sp=0x7ffeefbff7b0
arduino-builderが2を返しました。
ボードArduino/Genuino Zero (Native USB Port)に対するコンパイル時にエラーが発生しました。
最初Goのバージョンが古いのか?そもそもGoを使用する???など、エラー内容からGoを疑っていましたが真犯人は別にいました。
動画のバージョンではコンパイルエラー
動画の通りArduinoアプリのバージョンを1.6.9、ボードを1.6.6にしていましたが、Arduinoアプリを1.8.9、ボードを1.6.23にした環境で作業していたのですが、それではぼくの環境ではダメだったようです。
2016年末と約1年半前の動画なので、
情報がアップデートされていないのかも知れません。
とりあえず、動いてよかったです。
送信したプログラム
動画ページにリンクがありますが、こちらのコードをコンパイルしています。
PrimoCubettoOOBExample.ino · GitHub
この記事が気に入ったらフォローしよう
オススメ記事
検証環境
- macOS HighSierra 10.13.6
- Arduino 1.8.9
- Arduino AVR Boards 1.6.23