Blog Archives

マイクロマウス研修(安江) [Part.02]

こんにちは!安江です。

早速ですが、アールティは7/9~7/12に東京ビックサイトで開催されていたFOOMA2019へ、『Foodly』という協働型ロボットを展示しておりました!

ニュースでも紹介されていますので、興味がある方はぜひご覧になってくださいね!!

(アールティHPのFoodly紹介ページもぜひご覧ください!)

 

もちろんFOOMA2019の開催中もマイクロマウス研修は実施していましたので、進捗を報告させて頂きます。

[前回の記事]ではPi:Co Classic3の機体を組み立てるところまで完成させました。

今回は、センサ類などの調整を行い、サンプルプログラムを用いて実際にコースを走行させてみたいと思います!

 

① センサの調整をしよう!

Pi:Co Classic3のセンサには、LEDとフォトトランジスタが使用されており、壁で反射されたLEDの光をフォトトランジスタで受光することによりセンサ値を取得することができます。

(Pi:Co Classic3のセンサ類)

ただし、センサ値を取得するだけでは壁の有無を確認することができないため、閾値(しきいち)を設定してあげる必要があります。

この閾値の設定をすることにより、壁の有無を認識し、進む/停止/旋回などの行動をすることができるようになります。

実は、この閾値の設定が大切なんです!この設定を疎かにしてしまうと壁の認識精度が下がり、完走することが難しくなってしまいます。

皆さんも妥協せず、閾値設定を頑張ってください!

 

② タイヤ径の調整をしよう!

次に、タイヤ径の調整を行います。

Pi:Co Classic3に使用されているタイヤ径は48.0mmですが、誤差などにより実際のタイヤ径は異なります。しかし、プログラムではタイヤ径を元に進む距離を算出していますので、タイヤ径を調整しないと、進めば進むほど誤差が生じてしまうことになります。

今回、16区画(180×16=2880mm)の直進でタイヤ幅を調整してみました。

では、実際に調整する前後の動画で、どの程度誤差が減っているのか見てみましょう!

分かりにくいですが、調整後では走行後のタイヤの中心と柱の中心が近くなっています!

 

③ トレッド幅の調整をしよう!

次に、トレッド幅の調整を行います。

トレッド幅というのは、タイヤ間の距離のことで、Pi:Co Classic3では曲がる角度を算出するのに使用しています。そのため、調整が不十分だと曲がる回数が多くなるほど誤差が生じてしまうことになりますので、調整に妥協は許されません!

今回、偉大な先輩からアドバイスを頂き(さなえさんありがとうございました!)、20回転させて調整するプログラムにしてみました。

では、こちらも実際に調整する前後の動画で確認してみましょう!

こちらは調整前後で違いが分かりやすいかと思いますが、調整後では回転前の姿勢により近いのが分かるかと思います!

しかし、完全に調整しきれていないので、こちらは今後も調整を続ける必要がありますね・・・

 

続きを読む ›

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, お知らせ, ブログ, 研修


ハーフマウス研修 その33 ~HM_StarterKit販売~

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

今回は開発していたハーフマウスの販売報告です!
(開発している間に”ハーフ”ではなくなってしまいましたが)

先月7月にとうとう販売にたどり着くことが出来ました。
このような綺麗な製品ページも作ってもらい無事販売開始いたしました。

製品の見た目はこんな感じです。

実際の内容物等に関しては別日にブログが上がりますので
そちらをご覧ください!

今後はこのブログでHM-StarterKitの開発例なんかを上げていきたいと思います。

続きを読む ›

Posted in お知らせ, ハーフマウスキット製作記, ブログ, 研修


ハーフマウス研修 その32 ~3台目の改良点~

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

今回は前回記事で拳げた問題点を解決するための解決策を上げていきたいと思います。

まずおさらいで、前回挙げた改良点を書いておきます。

主に改良したいところは次の4点です。
・エンコーダサブ基板のマウント方法
・サブ基板のはんだ付け方法
・インターフェース
・見た目

ちなみにこれに加えてバッテリを置く際に
斜めになってしまうという問題点も2作目ではあったので追記しておきます。

・エンコーダサブ基板のマウント方法
・サブ基板のはんだ付け方法

この二つはL字ピンヘッダを用いる事と
もう一つの基板で挟むことで位置決めをします。
言葉だとわかりにくいので(ブログ上ではまだ出来てませんが)
実機の写真で説明いたします。

これによってエンコーダ基板の位置に再現性が生まれ
はんだ付けしやすくなるのではないかと考えました。

また、基板をモータマウントの上部に渡すことで車体全体の剛性を高められる事と
触って壊れやすいエンコーダ基板をガードすることが出来るため
製品として誰が触っても安心な車体になるのではないかと考えました。

・インターフェース

インターフェースに関しては先ほど登場した
モータマウントの上部に渡した基板をインターフェース基板と
することで解決しました。

写真のように新たにLEDを4つとスイッチを3つ付けたことで
Pi:Co Classic3と同じ数のインターフェースとしました。
また、このインターフェース基板にエンコーダ基板を接続することで
メイン基板へのDIP実装点数が減り、配線面積を稼ぐことが出来ました。
また、ブザーを設置しました。

・見た目
・バッテリスペース

これらに関してはインターフェース基板を付けたことで
モータ配線が隠れ、全体がまとまった印象となりました。

また、基板の前方を数mm伸ばしたことで
バッテリを置くスペースが確保できました。

3作目の主な改良点としては以上です。
次回ですが、本業の方が忙しくなってしまったため
2,3週間程度ブログの更新をお休みさせていただきます!
いつも見て下さってる方々には申し訳ないですが
しばらくお待ちください!

ちなみに別のサイトでは二足歩行ロボット研修のブログも連載しております!
こちらもぜひご覧ください!

続きを読む ›

Posted in お知らせ, ハーフマウスキット製作記, ブログ, 研修


ハーフマウス研修 その28~ミニタイヤについて~

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

今週は通常のハーフマウス研修に割り込んで
ミニタイヤについて書いていきます。

現在マイクロマウス競技(旧マイクロマウス(ハーフサイズ))で
殆どの人が使っているタイヤがあります。
それが、KYOSHOさんから出ているdnano用スリックタイヤ(硬度10)です。
(dnano用スリックタイヤの商品リンク)

しかし、ここ最近はこのタイヤの供給が安定せずに
欲しいタイミングで手に入らないことがありました。

そこで…
マイクロマウス競技用のミニタイヤを
製造することにしました。

また、兼ねてより希望の多かった別の硬度のミニタイヤも製造いたしました。
そして、こちらがその商品になります。

タイヤ一つ当たりの価格は据え置きの200円で、10個入の形態で販売いたします。
硬度は10度20度30度の三種類を用意いたしました。(それぞれの文字が商品リンクになってます!)

以下がタイヤ表面と形状の比較画像です。
左側がdnanoで右側が新タイヤの10度のものとなっています。


dnano(左)の方がツヤがあり、少しべたついた印象です。対して新タイヤはdnanoタイヤを軽く使った後のような色と触り心地です。


この写真は右が新品のdnano、真ん中が使い古したdnano、右が新品の新タイヤです。
これを見ると、ある程度使った状態のdnanoタイヤが新品タイヤよりツヤが無くなっている様子がわかります。


タイヤ表面に関しては、dnanoより新タイヤのほうが均一のようにも見えます。

実際に研修で制作しているマウスで新タイヤの10度を試したところ
低、中速域(2m/s以下)ではdnanoタイヤと比べ大きな違いが現れませんでした。
そのまま付け替えて走行することも可能です。

新タイヤは在庫もたくさんあるためタイヤの消耗を気にせず
どんどん使ってください!

商品リンク
マイクロマウス用タイヤ10度 10個入り
マイクロマウス用タイヤ20度 10個入り
マイクロマウス用タイヤ30度 10個入り

続きを読む ›

Posted in お知らせ, ハーフマウスキット製作記, ブログ


ハーフマウス研修その21 ~二台目のモータを回す~

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

今回はモータを回してみたいと思います。
一作目とは前後転を変えるディジタルピンのポートが変わっているので
そこだけ変えて一作目のソフトを流してみました。

しかし、モータが回らない…?
困ったらとりあえずオシロスコープで確認です!

マイコンの出力ピンを見てみたらPWM波形は出てました。
モータドライバ側の端子にも信号は届いているようです。
もしかして、モータドライバ周りのはんだ不良かなと思い、別の車体で試してみたところ動かない…

とうとう原因がわからなくなり、再度モータドライバまわりをオシロスコープで確認中に…一瞬モータが動いた。

もしかして、と思い配線図を開くとロジック電源が未結線でした。

DRC(デザインルールチェック)を改めてみてみると、確かに未結線エラーが出ていました。
しかし、モータドライバの未結線エラーがエンコーダのサブ基板のロジック電源側に表示されていました。

とりあえず、ロジック電源のところにジャンパ線をつないだところ無事モータが回りました!

今回はメイン基板とサブ基板を同じプロジェクト内で作ったため、エラーが混ざりチェック漏れが出てしまいました。
次回からは複数基板を同一プロジェクト内で作成する場合は未結線エラーは場所でなく、リファレンス番号でチェックしようと思います。

続きを読む ›

Posted in お知らせ


DCマウス研修[06] モータが届きました!

こんにちは、nomuraです。
今週は予定を変更してお送りします。そうです、モータが届いたのです!
「一か月かかるから」と言われて急いで注文しましたが、あっという間にひと月経っちゃいました。
まだ車体の設計にかかれていません、マズい。。。

続きを読む ›

Posted in お知らせ