Release 2016.8.2 / Update 2017.11.1

AR-FOCUS arduino [Sketch]

AR-FOCUSのスケッチは31KBあります。
ArduinoUNO R3でプログラミング領域が96%に達してます。互換機だと容量オーバーする場合もあります。

2016/9/21 追記

Arduino IDE 1.6.11でコンパイルすると大分容量が減り、90%を切るようになりました。標準の関数が軽くなったのではないかと思います。それと、ひとつdefine定数を入れ忘れていたのに気づいたので付け加えました(IDLE_TIMEというやつです)。ジッター低減を有効にしないとエラーは出ないので、使いたい場合に更新してください。

でも、残念ながらグラフィックが半分以上を占めているので、これ以上節約するには一から書き直さないといけません。でも、もう面倒なんでこのままです。バージョンの0.9は9回書き直しているってことなので…

スケッチ内容について

SPIディスプレイについて

OLEDディスプレイを使うためにu8glibライブラリを使っています。基本128×64のSPI接続で動きますが、環境によってはI2Cでも動く場合もあります。理由がよくわからないですが、マイコンチップの種類によるみたいなので、気になる方は詳細を自分でu8glibで調べてください。

接続SPIのディスプレイは本来A2~A5のピンではない筈なんだけど、何故か動きます。
間違っているのかもしれないので、動作がおかしかったり気になる方は68-70行目のコメントアウトを通常に戻してください。(8~13ピン)
あとI2Cを使う場合も同様にコメントアウトを変更してください。

U8GLIB_SSD1306_128X64 u8g(A2, A3, A4, A5);  // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
//U8GLIB_SSD1306_128X64 u8g(13, 11, 10, 9, 8);  // SW SPI Com: SCK = 13, MOSI = 11, CS = 10, A0 = 9
//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE | U8G_I2C_OPT_DEV_0); // OLED / I2C / TWI

スイッチの正理論、負理論

「ALT」スイッチ、「AUTO」スイッチに関してはdefineで反転できます。

#define ALT_LGC       1
#define AUTO_LGC      0

状況に合わせて理論を反転してください。

AUTO MOVE について

AUTO MOVEの移動は本来タイマー割り込みで制御するべきなんでしょうが、そうしていません。サーボのPWMやシリアル通信などを併用したときに弊害が出そうな気がしたので。なので、設定できる移動時間は必ずしも正確な時間、動作にはならないです。

AR-FOCUS Sketch

現時点では軽い動作確認しただけなので、運用していく上でどんな不具合が出るか全く分かりません。それを認識してご使用ください。
This sketch may destroy your machine or lens. Please take responsibility to your own.

*AR-FOCUSにはu8glibライブラリが必要です。IDEのライブラリマネージャからインストールしてください。

*スケッチが万が一書き込めない場合、こちらを読んでください。(2017/2/15 追記)

クリエイティブ・コモンズ・ライセンス


クリエイティブ・コモンズ・ライセンス
jumbler 作『AR-FOCUS』はクリエイティブ・コモンズ 表示 – 非営利 4.0 国際 ライセンスで提供されています。