Arduino収めとArduino 1.9の新機能について
TOP > てきとうにこらむ > ゲーム作りとプログラミング日記 > Arduino収めとArduino 1.9の新機能について
Arduino Advent Calendar
Arduino Advent Calendar 25日目てきめんです。
どっちかというと、今年やったまとめとか、内部の実装、1.9betaの内容をまとめました。
ことしやったこと
くらいでしょうか。
あとは、ダイソーで購入した300円バッテリーがArduinoで使えたーということもありました。
ダイソーの300円バッテリー、Arduinoの低消費電力でもきちんと動くようだ pic.twitter.com/l2iLAq59bg
— てきめん (@youkidearitai) 2017年11月3日
シリアルJPEGカメラ
Adafruit Product ID 1386としか言いようのない、JPEGシリアルカメラをArduinoで使うためにはどうしたらよいかと言うのをひたすら悪戦苦闘しまくって解決に導きました。
デバッグのためにシリアル通信の内容をダンプさせて、正常な動きをしているか確認したり、ソースコードのバグを見つけたり、結局はArduino Microで解決させたりと色々大変だったなとおもいました。
LCD
デバッグの時にLCDあったほうがよくねと思って作りました。
Arduino 1.9 beta
10月11日にBe among the first to try the Arduino IDE 1.9 Betaという記事がpostされてました。
何か力になれば良いのですが、それはそれとして非常に面白そうな内容でしたのでまとめてみます。
ビルドしてみる
Arduino IDEをビルドすれば実際何ができるのかわかると思うので、ビルドしてみます。今回はWindows 10 64bitでビルドします。
ArduinoのGithubレポジトリを参考にしました。https://github.com/arduino/Arduino/wiki/Building-Arduino
MinGWはインストールしてあったので、JavaとAntだけ。
ソースコードをcloneする
まずはソースコードをcloneするのですが、そのままgit-cloneしてしまうと1GBを超える上にめっちゃ時間がかかります。なので(やりかたは色々ありますが)depth 1を加えて一つだけ。
$ git clone --depth 1 git@github.com:arduino/Arduino.git
このままでは1.8.6のソースなので、pullします。
$ git checkout -b ide-1.9.x-beta
$ git pull origin ide-1.9.x-beta
ビルドツールのインストール
ビルドツールのインストールを行います。JDKをインストールしますが、32bitでないとビルドできてもdllを読み込めないので実行ができずに落ちます。
環境変数JAVA_HOMEとANT_HOMEとPathを設定すればおしまい。
ビルド
/path/to/Arduino/buildディレクトリまでcdを行いantを実行します
$ cd /path/to/Arduino/build
$ ant run
これでビルドが終了した後、Arduino IDEが実行されます。
1.9の新機能と気になる機能
autocompletion
今までのArduino IDEは言っちゃ悪いがIDEとしては力不足感がありましたが、1.9からautocompletionが標準搭載されます。
Ctrl + Spaceを入力すれば入力候補が一覧にでてくるようになります。
Arduino IDEってautocomplete使えたのね。Ctrl + Spaceで使えた pic.twitter.com/jruTnRWj9g
— てきめん (@youkidearitai) December 24, 2017
動画に撮ってみた
arduino-preprocessor
Arduinoスケッチというのは、初期状態ではsetupとloopのみですが、C++のコードとしてコンパイラに解釈させるためには、変換作業が必要です。
arduino-preprocessorというものが作られています。プロトタイプ宣言を補完するためのツールのようです。
The other is arduino-preprocessor, which supersedes ctags in the sketch preprocessing phase. Moving to a different tool has been a necessary step for many reasons, the most important being the ctags’ limited parsing of complex C++ sketches.
(拙訳) arduino-preprocessorは、スケッチのプリプロセッシングフェーズにctagsを取って代わるものです。たくさんの理由があって違うツールに意向する必要がありました、大きな理由としてはctagsがC++スケッチをパースする際にctagsの限界に到達してしまうことです。
わざわざClang/LLVMを使うというアプローチにはすごく興味深くてもうちょっと深く調べたいなと。
おわりに
今年はそんなに何もやっていない感じだったので、結局Arduino IDEの実装を見てまとめた記事になってしまいました。Arduino IDEも、どんどん進化しているようですし、いろいろなチャレンジも試みられているようです。
Arduinoは1つのパッケージとしてみるとコンパイラやIDEなど様々な技術を必要としているようにみえるので、何かしらで貢献できると嬉しいなーと考えていたりします。