Arduino IDE コンパイルエラー

Arduino IDEのライブラリマネージャから最新のライブラリ(Arduboy Library, Arduboy library 2など)を
入手してください。githubからのインストールは推奨されていません。

他の問題がありましたら書き込みをお願いします。

fatal error: Arduboy.h: No such file or directory
#include "Arduboy.h"

ライブラリが入っていないです。スタートアップガイドに従って入れてください。

fatal error: SPI.h: No such file or directory

Arduino IDEのバージョンが古い場合起こります。
最新のIDEをダウンロードしてください。

Arduino: 1.6.9 (Windows 10), Board: "Arduino/Genuino Uno"

error: 'TCCR3A' was not declared in this scope
error: 'TCCR3B' was not declared in this scope

他のボードが選択されています。Arudino IDEのツール→ボード
「Arduboy」か「Arduino Leonardo」を選択してください。

最大2,560バイトのRAMのうち、グローバル変数が2,055バイト(80%)を使っていて、ローカル変数で505バイト使うことができます。
スケッチが使用できるメモリが少なくなっています。動作が不安定になる可能性があります。
(中略)
Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

コンパイルエラーではないですが、次のスケッチの書き込みができなくなります。
今のところTeam a.r.gさんのDo-Nutsデモで確認しています。
原因はローカル変数の不足です。

解決方法は2種類あります。

UPボタンを押している状態のまま電源をONにしてください。
うまくいくと書き込みできるようになります。
これはArduboy Library内に組み込まれているもので、壊れたスケッチに
実行が行く前にせき止める役割をしています。

次の案は物理的なリセットを行いつつ、スケッチを書き込むことです。

  1. IDE上でサンプルのArduBreakoutを開く
  2. リセットを”掛けた状態のまま維持”する
  3. リセットが維持されているか、ツール→シリアルポートで項目が消えていることを確認
  4. スケッチを書き込むボタンを押す
  5. 以下のログで、PORTSが出ているタイミングでリセットを解除する

Arduino IDE 1.6.9 + Devkit(追記:Arduboy 1.0でもOK)

最大28,672バイトのフラッシュメモリのうち、スケッチが17,894バイト(62%)を使っています。
最大2,560バイトのRAMのうち、グローバル変数が1,468バイト(57%)を使っていて、ローカル変数で1,092バイト使うことができます。
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {COM9, } => {COM9, }
Found upload port: COM9

こちらはDo-Nutsデモでスケッチが書けない状態にして、
そこから5回中5回、確実に復帰できました。

物理的なリセットは、Arduboyを再起動させてブートをさせることです。
問題はブートプロセス後、Arduboy内部でスケッチが起動されるとPCとの通信ができなくなります。
ブートプロセス時にしかPCとの接続が確立できません。

コンパイルOK。スケッチも転送されたけど画面が真っ暗。ボタンの反応なし。

上記のリセットバグか、developer kitのソースコードを誤って入手した為と思われます。
Arduboy 1.0バージョンを入手し直してください。 1.0とdev kitでは配線が違います。

error: 'class Arduboy' has no member named 'tunes'
arduboy.tunes.tone(以下略・・・)

ライブラリのv1.2(githubでいうmaster)が入っています。v1.1に差し替えてください。

Caused by: jssc.SerialPortException: Port name - /dev/ttyACM0;
Method name - openPort(); Exception type - Permission denied.

ubuntu(linux?)環境の場合起こります。アクセス権がない為です。

sudo usermod -a -G dialout username // usernameは書き換えてください。

としてください。

画面が乱れる。2重に見える。

最新のArduino IDEとArduboy Library 0.1.0~1.1.0の組み合わせで起こる現象です。
バージョンを1.1.1以上(最新版)に差し替えてください。

1 Like

リセット手順が詳細になってますね…! リセットはかなり難しいようので、情報うれしいです。

2 Likes

これで誰でもリセット職人になれると思います。:slight_smile:

ただ1.0は持っていないのでdev kitでしかテストしていないです。
違っていたらどうしようか、そこだけが心配だったりします。

追記:
1.0でも問題ありませんでした。

1 Like

リセット職人ご用達ツールを紹介しましょう。
爪楊枝の先端 2mm を爪切りで切り落とすとかなり安定してリセットボタンを押すことができます。

3 Likes

先週に秋月で白基板のArduboyを購入しました。Mystic Balloonがインストールされていました。(秋月では"Dev kit V2"と表記されていますが、Dev kit とは違いますよね?)

違うスケッチをアップロードしようとすると、

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

と表示されてしまい失敗します。

PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}
PORTS {} / {} => {}PORTS {} / {COM3, } => {COM3, }

のあとに赤字でメッセージが表示されたとき、本体では既にスケッチが起動しています。

akkera102さんの説明に従い、

PORTS {} / {} => {}
が表示され始めたらリセットボタンを押し、
PORTS {} / {} => {}PORTS {} / {COM3, } => {COM3, }
Found upload port: COM9

となる少し前にリセットボタンを離すと無事にアップロード出来ました。ありがとうございます。

ただ、皆様アップロードする度に毎回リセットを押されているのでしょうか?
物理リセットせずにアップロードする方法はありますか?

チュートリアルに従ってセットアップしたつもりなのですが、間違いがありましたらご指摘をおねがいします。
IDE
ArduinoIDE 1.8.2
ライブラリ追加
Arduboy 1.1.1
Arduboy2 3.1.1
ArdBitmap 2.0.3
Arduboy-TinyFont 3.0.0
ArduboyPlaytiune 1.0.2
ArduboyTones 1.0.2
ArdVoice 0.1.0
ATMlib 1.2.3
ツールメニューのボード、ポート指定
Arduboy、COM3(Arduino Leonard)

えーと、違います。秋月さんの登録ミスだと思います。

正式名称は(ただの)Arduboy。もしくはArduboy 1.0と言われています。
海外(adafruit, pimoromi, seeed stdio)、
国内のスイッチサイエンスはArduboyとして販売しています。

毎回リセットボタンを押していないです。

使う場合は
1.自作ゲームの開発中にバグった時、
2.ローカル変数の空きが少ないゲームを入れた時、
です。

Mystic Balloonは問題ないのでどちらも該当しないはず。
セットアップ手順も(コンパイルまで出来ているので)問題なさそうに思えます。
原因として考えられるのは・・・

・IDE上でのCOMの指定間違い。複数のArduinoを繋げていないでしょうか。

・USBケーブルを変えてみる。(万に一つないですが)
購入されたオフィシャルのケーブルを付けてください。

・アップロードする時、Arduboyの電源がONの状態か。(転送可能状態か)

3点ともダメだった場合、本体故障っぽい気も。。
以下の手順をお願いします。
1.「ファイル → スケッチ例 → Arduboy → ArduBreakout」選択。

2.「マイコンボードに書き込むボタン」を押してArduboyに転送する。
(書き込めない場合、リセットボタンを使ってもアップロードを試みてください)

3.ArduBreakoutがArduboy上に入っていることを確認。

4.再度、「マイコンボードに書き込むボタン」を押す。
(こちらの場合はリセットボタンを使わないでください)
書き込めない場合、 IDEのエラーログをください。

akkera102さん、早速ありがとうございます。
先ず、PCからUSB3.0ハブを経由してアップロードしていたのが良くなかったみたいです。うっかりしていました。
PCから直接繋ぐとReset押さずにアップロードできるようになりました。

ただ、デスクトップPCだとまず大丈夫なのですが、ノートPCだとときどき同じ症状が出たりします。同じ条件でも再現したりしなかったりするのが謎です。

USBハブ!これは盲点でした。
思わず膝を叩いたり、アハ体験しました。:relaxed:

デスクトップの問題は解決したとして、次にノートの方についてです。
ただ個人的に、今まで聞いたこともないパターンで、
どう解決して良いのか頭を抱えています。うーん。

ご説明のまま、
「デスクトップでOK。でもノートなら時々、症状が出る」としたら、
ノート側に問題がありそうです。

仮に
「デスクトップでもノートでも時々、症状が出る」としたら、
Arduboy側に問題がありそうです。

(眉唾ものの対策ですけど)ノートのUSBポートを変えてみる、
ぐらいしか思いつかないです。

問題の絞り込みとして、
もう1つ新しいパソコンでテストしてみる、Arduboyをもう一台買う(笑)とするのも
いいですけど・・・。

ただデバッグ作業に時間を取らせるのもまずいですし
デスクトップでできるのなら、そこで満足していただく方が
いいのではないかと思う次第です。

話のネタに秋月さんに話してみるのもいいと思います。

はい、ありがとうございます。お陰様で今は満足して使えています。
これで「自分でゲームを作ってみる」という目標から逃げる口実が一つ減ってしまいました。

その後もちょっとずつ皆さんの成果物で遊んでいるのですが、Stellar_Impactというゲームをアップロードすると以後はダメになることが判りました。ローカル変数領域の問題でしょうか。昨日トラブったときもこのゲームは何度かアップロードしていました。

デスクトップとノートで挙動が変わる、というのはあれから全く再現しません。私の思い違いみたいです。お騒がせしてしまい申し訳ありません。

わざわざ問題の特定をして頂いて助かります。
今日は自宅にいない為、こちらでの確認は明日させて頂きます。
(ローカル変数領域の問題だと思います)

そもそも、この問題は1, 2年前?から議論されているようですけど
修正まで至っていないです。
開発側は個人経営っぽい感じですし、様々な理由で
リソースを割けられないのかなと思っています。

遭遇した方から見るとあんまりな話ですが、
お金出した製品はこうあるべき、というより、ちょっとバグあるけど
動くしいいんじゃない、という緩さは好きだったりします。
(Arduinoとか電子工作全般)

私はこのところコミニティに参加せず、引きこもっているので
Arduboy Magazine という電子書籍があることを知りました。
vol.2では人気投票を行ったそうで最近のゲームのトレンドがわかります。

もしよかったらゲーム作りの参考にしてください。

はい、トラブル無くゲームで遊びたいのなら他を選べば良いと思います。
考えれば回避できる程度の不具合があり、それを解消することも出来そう、かな、というのがこの手のモノの魅力だと思います。

Arduboyはハードウェアの完成度が魅力ですが、サポートは今ひとつかな、と感じました。
でも、akkera102さんにとても丁寧にご対応いただき、印象が変わりました。ありがとうございます
私も、何か貢献できるようになりたいと思います。

2 Likes

忍耐力に感謝します @kabe :slight_smile:

そしてあなたの助けに感謝します @akkera102

残念ながら、Arduboy Team は日本語を話せず、お互いに助け合うためにコミュニティに依存しています。

重大な問題がある場合はhttps://arduboy.com/contact/を使用してください.Google Translate

@kabe

Arduino IDE 1.8.2 + Arduboy Library 1.1.1 + windows10 pro
Stellar_Impact

最大28672バイトのフラッシュメモリのうち、スケッチが24208バイト(84%)を使っています。
最大2560バイトのRAMのうち、グローバル変数が1874バイト(73%)を使っていて、ローカル変数で686バイト使うことができます。
シリアルポート「COM10」を1200bpsで開いて閉じる事によって、リセットを行っています。

(中略)

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

Stellar_Impactを入れた後、再度入れようとすると同じ結果になりました。
ローカル変数は所感ですけど、600辺りから怪しくなってきて500になるとほぼ症状が出ます。

@Celinebins

Hi. Good to see you again.
Kabe of computer problem is 2. The error log is the same.

Connecting to programmer: .avrdude: butterfly_recv(): programmer is not responding

  1. desktop.
    it connected usb hub 3.0. after remove, no problem.

  2. notebook.
    Stellar_Impact use many Local variable.
    The same result occurred on my computer too. I talked reset recovery.

all done.

by the way, T-shirt is cool. including japanese word!
nice fan item. I bought 1.

and… Arduboy debuted japanese paper magazine!:slight_smile:
This book is on sale at a bookstore in Japan.

GameLabo 2017/5
ゲームラボ 2017年 5月号
https://www.amazon.co.jp/dp/B06ZZ6JD2H/

2 Likes

Thank you for your support @akkera102! :beers:
Very nice magazine article, but i can not understand :sweat_smile:

1 Like