Blog Archives

持ち運び用クラシックマウスフィールド製作1(岩本)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
岩本ブログ一覧
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

こんにちは岩本です。

本日は、簡単に作れる持ち運び用クラシックマウスフィールドを作ったのでご紹介です。
まずフィールドを作る際に最初に用意したのは、キャリーケースでした。
持ち運ぶと言うコンセプト的に入れ物に入るかどうかが絶対条件でした。
と言うことで、こちらのキャリーケースを購入しました。
このキャリーケースなんと、内寸450×390で、クッションなんかを入れても丁度360×360のフィールドが入ります。
まるで、マウスフィールドを入れるためとしか思えないピッタリ感です。

さて、無事1枚当たりのフィールドサイズが決まったところで、材質検討です。
今回、持ち運びと言うことで、軽さ重視で検討し、ファルカタ材を使用することにしました。
ファルカタ材は、軽量で加工性が良い材料です。その代わり、耐久性が低く、凹みやすい等の問題もあるのですが、今回初めて製作するので使ってみて判断することにしました。
今回、購入したのは、t12のファルカタ材です。マウスの柱は10㎜程差し込むため、t10㎜以上の厚さが欲しかったためです。
材料カットは、大体どこのホームセンターでも行ってくれるため、360×360でカットしてもらいます。
後は、穴を180×180でφ9㎜で4か所穴をあけます。CNC等で、ジグを作ると大量に作るとき楽です。
塗料はマイクロマウスのHPで使用していた塗料(ニッペホームプロダクツ製 水性フレッシュワイド【つやなしブラック】)を使用しました。

ただ、フィールドを並べただけだと、段差が結構あるのでダボ繋ぎを付けることにしました。
穴を開けるだけで良いので、比較的楽に加工できます。こちらもジグがあると楽です。

繋ぎ合わせるとこんな感じで完成です。写真は4枚組ですが最終的に9枚作成して、5×5のフィールドにしました。
暫く使ってみた感じ、そこまで大きな段差もなく走れております。しかし、ずっと出したままにしているとやはりそり返ってきて、段差が出てきてしまいます。
後、何となくカッコいいと思って全面に塗料塗ったら板同士が引っ付いてしまって、間に紙を挟まなきゃいけなくなってしまったのはご愛敬。

キャリーケースに入れるとこんな感じです。板厚を少し厚くしすぎて、9枚入れるとちょっとオーバー気味。
重さもキャリーケースであれば、そこまで気にならなかったので、次のモデルは容積を気にして製作しようと思います。

『マウスフィールド欲しいけど置く場所がない人』や『大会前日入りしたけどホテルで走らせたい人』は、是非作ってみてください。

以上

続きを読む ›

Posted in お知らせ


北陸信越地区大会に出場しました – 元Web屋のマイクロマウス製作記 Part.5

ししかわです。

9/15(日)マイクロマウス北陸信越地区大会に出場しました。

東日本地区大会に続き2度目の大会参加です。

前回の大会で一度完走しているため、今回は「最短走行を成功させること」が目標です。

前回、探索走行中に壁を誤認識したためにマップが壊れてしまい、最短走行で壁に正面衝突するミスをしていました。その対策として、今回は壁認識のしきい値もしっかり調整し、試走会では「迷路のマップが正しく作れているか」の確認を重点的に行いました。

結果は、

  • 1走目の探索走行で迷路を完走し、タイムは43.362秒でした。
  • 残りの4回は最短走行で挑みましたが、すべて失敗しました。

ということで、完走はしたものの目標達成ならずでした…

今回の最短走行失敗の原因は「床の段差」です。

画像は今回の大会で使われた迷路です。ゴールへたどり着く経路は何通りかありますが、私の探索アルゴリズムでは南側のルートを最短と認識しました。

すると画像中の黄色い丸のポイントで矢印の方向へ加速をするのですが、ここはちょうど床板の継ぎ目にあたります(x7->x8)。ここに僅かな段差が生まれています。

ちょうど段差があるところで加速しようとしたために、タイヤがスリップして想定した距離を進みません。その結果、次の曲がり角で壁にぶつかりました。

この段差、先輩方に「段差にやられました」というと「あ〜わかる」という反応をいただけるくらいには、あるあるな失敗原因のようです。

大会規定では「壁および床面には1mm程度の隙間あるいは段差が生じることがある。」という文面でしっかりルール化されていますので、多少の段差があっても確実に走れるような制御が必要です。

前回の壁の誤認識といい、今回のスリップといい、練習では気づかなかった原因で失敗してしまいました。失敗が起きてから「なるほどそういうのもあるのか〜勉強になるな〜」ではお粗末なので、起きうるトラブルをもっと調べてあらかじめ対策を建てないとですね…。

2度出場してみて、大会の上位ランカーの走りを見ると「速く走ること」に目が行きがちですが、競技の本質はむしろ自律性、頑健性にあるのだと実感しています。実際、今回の特別賞は「壁にぶつかるなどして迷っても自己位置推定で経路に復帰できる」という機能を実装した方が受賞されていました。実世界のいろいろなエラー(機械、電気、ソフトウェアはてはヒューマンエラーまで…)に立ち向かうのは一筋縄では行かないですが、一つずつ乗り越えていきたいと思います。

次回は東北地区大会(10/13)です。まだ時間があるのでプログラムを見直しつつ、今度こそ確実に最短走行を成功させます!

続きを読む ›

Posted in お知らせ


マイクロマウス研修 Part15(岩本)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
岩本ブログ一覧
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

こんにちは岩本です。
今回は、音楽を奏でていきたいと思います。

まず、音楽を鳴らすには、音程を作成する必要があります。
音は、オクターブ毎に2倍されていき、音階は12個なので図の様に計算していけば、欲しい音が出るようになると思います。
ちなみに私は周波数220-7902の5オクターブ分の音階を用意しました。

 
音楽は余り分からないのですが、一応、音楽の速度と音符の長さとかは定義してみました。

 

取り敢えず、スパーマ〇オっぽい音がなる様になりました。
ちなみに、私のPI:COはスーパーピーコと言う名前にしています。

続きを読む ›

Posted in Pi:Co Classic3 製作記, お知らせ


マイクロマウス研修 Part14(岩本)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
岩本ブログ一覧
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

こんにちは岩本です。
今回からプログラムの編集をして行きたいと思います。
PI:CO を買われた方だと分かると思うのですがPI:COのサンプルプログラムでゴールを変えるとき、parameters.hの中を編集してゴール地点を変える必要があります。
しかし、ゴールを変えて実験したりする時に、わざわざビルドし直すのもめんどくさいので、ゴールの座標をPI:COのスイッチで変更できるようにしたいと思います。
まずは、parameters.hの中のGOAL_XとGOAL_Yを変数にしたいため、取り敢えずコメントアウトさせます。

 

今回、色んなところでGOALの値を使うので、グローバル変数として定義します。
PI:COのサンプルプログラムでは、glob_var.hで纏めて定義されていますので、同じように追加します。

 

取り敢えず、PiCoClassic3.cの中のメイン関数の所で、初期値を1としておきました。

 

次に、PiCoClassic3.cの中のswitch関数の空いてるところに、GOAL変更のモードを追加します。
プログラムの内容は、モード選択の時に使った無限ループを殆どそのまま突っ込みました。
変えたところと言えば、変数をGOAL_X(またはY)に変更したとこと、180行目から184行目でLEDが点滅するようにしたところくらいです。
点滅にしているのは、走行モードを選択しているのか、パラメータを変更しているのか見分けがつくようにするためです。

 

たったこれだけで、ゴール変更が簡単に変更できました!!
テスト走行の時に便利なので私的には、是非入れときたい機能です。
でわでわ、今回はここまです。

続きを読む ›

Posted in Pi:Co Classic3 製作記, お知らせ


shotaのマイクロマウス研修18 ESP32周辺回路とピンの機能選択

こんにちは、shotaです。
社員研修として、オリジナルマウスを製作しています。

今日は回路設計の最後の記事です。(やっと終わる・・・)
ESP32周りとピンの機能選択について書きます。

これまでの記事で各回路ブロックについて説明したので、どんな回路があったのかは過去記事を参照してください。
この記事の上部にある編集者名shotaをクリックすれば、過去記事が見れます。

続きを読む ›

Posted in DCマウス研修, お知らせ, ブログ, 研修


マイクロマウス研修 関西地区大会・山形マウス合宿(岩本)

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
岩本ブログ一覧
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

こんにちは岩本です。

今回は、関西地区大会(7/20)と山形マウス合宿(7/27)に参加しましたので、その話です。
 

≪関西地区大会≫
今回、関西地区大会は、大阪電気通信大学の駅前キャンパスで開かれました。

また、大会とは別にRSさんの講習もありましたので、そちらにも参加しました。
こちらの、回路設計ソフトDESIGN SPARKは、無料で資料できる3D設計ソフト(メカ設計・回路設計用)です。

メカ設計用の方は、タッチパネルでの操作に対応した少し珍しいソフトで、押し出し方法等も一般的な3D設計ソフトと同等で感覚的に使いやすいソフトでした。
ただ、ソフトを軽くする為にスケッチデータの履歴を残していないようで、編集がやや難しそうでした。
https://www.rs-online.com/designspark/mechanical-software-jp

次に回路設計ソフトの方は、私がまだ回路設計していないので、あまり詳しくは比較できないのですが、メカ設計者的にも分かりやすいソフトでした。
基板は1m*1mの多層基板に対応しており、外部CADファイルに出力でき、回路シミュレーション等もあり使いやすそうなので、自作マウス作る時に使ってみようかと思っております。
https://www.rs-online.com/designspark/pcb-software-jp

大会の方は、PI:COそのままのソフトウェアに尻当てのプログラムだけ追加して、挑戦しました。
1走目、足立方探索で見事ゴールまで行ってくれました。しかし、途中でケーブルが飛び出てしまい超地旋回するときに引っ掛かって戻ってくることが出来ませんでしたが。。。
2走目、最短は出ていないが、取り敢えず、最速で走らせましたが、途中で引っ掛かりリタイア。
3走目、もう一度足立方で探索してみましたが、時間切れでタイムアップとなりました。

探索しかできなかったので、時間は、1:53.789秒となりました。(遅い。。。)
しかし、時間は掛かりましたが、ゴールはゴールです!
全国大会の出場権を得ることが出来ましたので、これをモチベーションに頑張っていきます。

 

≪山形マウス合宿≫
山形マウス合宿は、タスパークホテルの一室をお借りして、プチ大会が開催されました。
今回は、まだ調整中ですがスラ探を入れて来ました。一応走るのですが、たまに壁を認識しきれずに壁に突進していってしまうことしばしば…
そのため現場で、壁認識の閾値を下げて、なるべく壁に突進しないようにしてプチ大会に臨みました。

結果としましては、ゴールできませんでした。
原因は完全に壁認識の閾値下げすぎで、壁がないところに壁を見てしいました。。。(その後、元の値に戻したらゴールできました。)
今回の教訓から得られたものは、大会当日の付け焼刃は止めようと言う事です。事前準備大事。

ちなみに商品は、山形のお野菜でした。
私も参加証として、トマトやナス等をもらい、ナスミートスパゲッティにして美味しく頂きました。ありがとうございました。

今回はここまでです。

続きを読む ›

Posted in お知らせ


マイクロマウスクラシック~プラスチック壁について~

こんにちは、まえけんです。

ただいまアールティではマイクロマウスクラシックサイズの
プラスチック壁の開発をしております!

現在、弊社webショップでは木製の壁を販売しておりますが
昨年販売を開始した柱に引き続き、壁もプラスチック化を進めております。

販売はもう少し先になりますが、形になってきましたので情報を公開していきたいと思います。

手前側がプラスチック壁で、奥側が木製の壁になります。
壁をひっくり返すとわかりやすいですね。
近くで見るとこんな感じになっています。
上から見るとこんな感じです。左と下がプラスチック壁で、右側が木製の壁になります。

作りたてで見た目が綺麗なのもいいですね!
また新たな情報が入りましたらこちらで更新していきます!

続きを読む ›

Posted in お知らせ, ブログ


shotaのマイクロマウス研修12[オリジナルマウスの設計方針]

こんにちは、shotaです。

社員研修として、オリジナルマウスの製作を始めます。

[前回の記事]ではESP32のSPI機能を使ってみました。

今回はオリジナルマウスの設計方針を決めます。

 

オリジナルマウスの仕様

オリジナルマウスの仕様は[この記事]に書いてます。

ESP32を使う、というのが一番の重要項目です。

 

オリジナルマウスの設計方針

まずはじめに、設計の時間がとても少ないことを考慮しなければなりません。

全日本マイクロマウス大会は12月はじめごろに開催されるのですが、地区大会がそれよりも早く開催されます。

[2018年のスケジュール]を見ると、7月頭から地区大会が始まっています。。。

残りの4ヶ月で迷路を走れるマウスを作らなければなりません。これは厳しい。。。

ということで、できるだけ頑張らない設計方針を決めました。

  • ESP32のソフト設計・開発に集中する
  • 情報公開できる設計資料を作る

方針①:ESP32のソフト設計・開発に集中する

マイクロマウスを実現するには、

  • 走行するためのタイヤ・モータ、壁を検知するセンサー
    • それらを動かす回路
      • 回路を動かすソフト

を選定・設計・開発しなければなりません。

 

先程も述べたとおり、大会まで時間がないので・・・

  • 走行するためのタイヤ・モータ、壁を検知するセンサー → HM-StarterKitをコピーする
    • それらを動かす回路 → HM-StarterKitをコピーする
      • 回路を動かすソフト → ここを頑張る!!!

という方針でマウスを作ります!

[HM-StarterKit(通称ハムスター)]は弊社アールティが開発・販売するマイクロマウス競技(旧ハーフサイズ)向けの学習キットです。

HM-StarterKitの回路図は[GitHub]に公開されています。

そしてなんと、このHM-StarterKitを設計・開発した人が社内にいます! (質問し放題)

実績があり、情報量も多いマウスをコピーできる貴重な機会なので、この回路図をベースにESP32マウスを作ります。

 

続きを読む ›

Posted in DCマウス研修, お知らせ, ブログ, 研修


マイクロマウス研修(kora編)[11]光センサの利用

こんにちは。koraです。

今回はHM-StarterKitの光センサを使えるようにします。

AD変換の準備

HM-StarterKitには、壁を検出するための4つのLEDと4つの光センサが搭載されています。それぞれの光センサに対し、壁から跳ね返ってくる光量を電圧に変換して出力しています。電圧をマイコンから読み取るためにADC(Analog to Digital Converter)という機能を使います。ADCでは、リファレンス電圧である 3.3V と 0Vを基準として、電圧を12bit(0~4095)の値に変換します。

init.c

サンプルプログラムのStep7からio_init関数とsensor_init関数をコピーして、自作プロジェクトのinit.cのinit_all関数から呼び込むようにします。io_init関数は、光センサとセットになっているLEDの初期設定です。

mh_hm_starterkit.c

Step3のmain関数の一部をコピーして次のようにします。

AD変換のテスト

TeraTermで出力されたセンサー値を表示すると、次のようになります。


壁なしの値


壁ありの値

ちなみに、HM-StarterKitはバッテリーの電圧もAD変換で測定できるように配線されていますが、バッテリー電圧がマイコンの動作電圧の3.3Vより高いので、抵抗で分圧して半分にしてから読み取るようになっています。

AD変換を割り込みで利用する

前回ジャイロセンサとエンコーダをタイマ割り込みで処理したように、今回も一定間隔でAD変換を行い、壁の情報を更新するようにします。

intprg.c

以下を追加します。

そして、void Excep_CMT1_CMI1(void){ } を次のように書き換えます。

mytypedef.h

新しくファイルを作り、壁の情報を保存する構造体を作ります。

interrupt.c

先ほど作った構造体をインクルードします。

また、サンプルプログラムのStep7からint_cmt1関数をコピーします。なお、int_cmt1関数の割り込みは4kHzで発生しますが、その都度4つのセンサうち1つを読んでおり、トータルでは1kHzで更新しています。

glob_var.h

光センサ用と電源監視用のグローバル変数を追加します。

portdef.h

光センサのLEDを操作しやすいように次のマクロを追加します。

paramters.h

センサ関連のパラメータを追加します。
マウスが壁に近づけば光センサの値は大きくなり、逆に遠ざかれば小さくなります。これを利用して迷路の壁を頼りに走行を制御することを壁制御といいます。REF_SEN_R・Lは、マウスが迷路の中央を走るために参照します。TH_SEN_R・L・FR・FLは、マウスの右・左・前に壁があるか判断するための閾値です。CONTH_SEN_R・Lは右壁・左壁を壁制御に反映するかどうかの閾値です。今回の例では壁があると判断したら即、壁制御に反映するようになっています。

実際走行する際には、これらの値を環境に合わせて調整します。

init.c

サンプルプログラムのStep7からinit_parameters関数をコピーします。ここではparameters.hで指定したパラメータを光センサ用の構造体に代入しています。

また、忘れずにinit_all関数からinit_parameters関数を呼ぶようにします。

my_hm_starterkit.c

テスト用にmain関数を次のように書き換えます。

割り込みのテスト

実行した結果をTeraTermで表示すると次のようになります。右・左・右前・左前の光センサの値がそれぞれTH_SEN_R・L・FR・FLで指定した値より大きければ、壁の有無を1・0で出力します。

次回

ジャイロ、エンコーダ、光センサの値を読み込めるようになりました。これでマウスの自律走行が可能になります。次回はこれを実装したいと思います。

続きを読む ›

Posted in お知らせ


shotaのマイクロマウス研修1[Pi:Co Classic3のはんだ付け]

はじめに

初めまして、こんにちは。

2018年10月から入社しましたshotaです。

社員研修として、弊社が販売するマイクロマウス[Pi:Co Classic3]を動かすことになりました。

その過程をブログに投稿していきます。

よろしくお願い致します。

 

私は趣味でロボカップ小型ロボットリーグに参加しています。

ROSを使ってサッカーロボットを動かすソフトを作っていますが、組み込みソフトはほとんど触っていません…

学生の時にPICマイコンを触った程度なので、

その感覚を取り戻しながら、まずはクラシックコース完走を目指して取り組みます!

 

Pi:Co Classic3とは

RT ROBOT SHOPで販売しているマイクロマウス用のロボットキットです。

https://www.rt-shop.jp/index.php?main_page=product_info&cPath=1002_1023_1036&products_id=3400

 

マイクロマウスのソフトだけでなく、はんだ付けを通して回路要素も学ぶことができます。

マイクロマウスに初めて参加する人にピッタリの製品です。

 

はんだ付け開始

6時間くらいではんだ付けと組み立てが終わりました。

はんだ付けが得意な人はもっと早く組み立てられるかもしれません。

作業初日

はんだ付け練習基板と電源基板をはんだ付けしました。

 

作業2日目

メインボードとマイコンボードをはんだ付けしました。

 

作業3日目

センサ基板をはんだ付けして、完成です。

 

このキットの良いところ

  • 部品が回路要素ごとに小袋に分けられている
    • 実装する部品がどの回路に使われているのか一目で分かります。
  • 部品をどこに実装するのか写真付きで説明されている
    • 回路図を読まなくても組み立てられます
  • はんだ付けで失敗しやすいところに注意書きがある
    • 初心者に優しい説明書です。

次回やること

キットに同封されているサンプルソフトを書き込み、走行させます!

[次の記事はこちら]

続きを読む ›

Posted in Pi:Co Classic3, お知らせ, ブログ, 研修