はじめに
- 作成したクラシックマウスの各パーツの解説。
- 今回は「OLED 0.96インチ 128×64 SSD1306」と「フレーム、ホイールなど」
- 機体写真、動画などは「その1」をご参照。
OLED 0.96インチ 128×64 SSD1306
マウスはディスプレイが無くても走るのですが、やはり機体の状況を把握するためにも、表示装置があったほうが便利です。手持ちのディスプレイの中から選んでみました。
プログラムサイズに余裕がないので、あまり大きなライブラリは使えないので、以下の選択になりました。
- 液晶ディスプレイとの比較
- 手元にはAQM1602Y-RN-GBWもあったのですが、なぜか他のセンサーと同時に認識することができず、止む無くOLEDになりました。1602LCDはさすがに大きすぎて、マウスに載せる気になりませんでした。
- OLED
- 手元にあるものから選んだので、どこで買ったか忘れてしまいました。AMAZONでたくさん売っているものと同じだと思います。
- ライブラリ
- プログラムサイズの制約から、ライブラリの小さいSSD1306Asciiを選びました。
- フォントが選べるのですが、サイズの小さい System5x7 にしています。小さくて読みにくいときはoled.set2X();で大きくしてoled.set1X();で元に戻せます。
- スケッチ例は以下ご参照。
#include "SSD1306Ascii.h"
#include "SSD1306AsciiAvrI2c.h"
#define I2C_ADDRESS 0x3C
SSD1306AsciiAvrI2c oled;
///// 以下SETUP内 ////////////
oled.begin(&Adafruit128x64, I2C_ADDRESS);
oled.setFont(System5x7);
oled.clear();
oled.println("oled start");
フレーム、ホイールなど
設計図など書かずに、試作の積み重ねで作っています。センサーを交換したり、パーツの場所を変えたりしているので、あまり見栄えも良くありません。
走行しているときに 前後にバタつく感じがあるので、もう少しスムーズにしたいのですが、段差対策との兼ね合いが良くわからなくて試行錯誤しています。もっと前の方に重心をおけばよいのでしょうか。
- フレーム
- モーターを載せる板にはプリント基板を使いました。大きさは50mm x 60mm。手元にあったものを使ったので、材質などはよくわかりません。タミヤのユニバーサルプレートを使おうと思っていたのですが、プリント基板は、値段も安く、穴も開いていて、薄く丈夫ですが、加工も可能なので、意外と良い感じでした。
- モーターは両面テープで接着して、一応テグスを巻いて固定していますが、両面テープだけで十分かもしれません。
- 裏面はカグスベールを貼っています。どの程度の高さにするのが良いかよくわからないのですが、試行錯誤しています。
- プリント基板から支柱(スペーサー)を伸ばして、上段にArduino Unoを載せています。ここの板にはユニバーサルプレートを切断して使いました。さらにそこから支柱を伸ばし、ミニブレボを利用しててMPU6050を取り付けています。
- バッテリーの置き場所も試行錯誤しています。最初2階に置いておいたのですが、下に置くほうが安定するかと思い、車体前方にアルミ板と両面テープを使って載せています。
- VL53L0Xは高めの位置に来るように置いています。両面テープだけで固定したりしていて、あまりスマートでないので、改善の余地がありそうです。
- ホイール
- 朱雀技研さんで入手した50mmホイールとタイヤを使っています。軸径はモーターに合わせて5mm。止めネジの穴のバリを削る必要があるかもしれないので、軸穴に入るような金属ヤスリも持っていたほうが良いです。
- 最初はそのまま利用していたのですが、迷路の段差に引っかかることが多かったので、タイヤを少し大きくしました。ホイールに両面テープを適当に巻いて、その上からタイヤをはめているので、少し大きくなっています(実測で52mm)。どの程度段差対策になっているのかは、これから検証です。
以上