Blog Archives

shotaのマイクロマウス研修15[回路設計③ 物体検出センサ回路]

こんにちは、shotaです。

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

[前回の記事]では電源回路について書きました。

今回は物体検出センサ回路(通称:壁センサ回路)について書きます。

 

物体検出センサ回路

物体検出センサ回路のブロック図はこのようになりました。

点線から左側が内部回路で、上半分が発光回路、下半分が受光回路です。

点線から右側が外部回路です。回路はありませんが、赤外線を反射する壁があります。

 

物体の検出にはフォトリフレクタ[LBR-127HLD]を使用します。

フォトリフレクタには赤外線発光ダイオードとフォトトランジスタが内蔵されており、ダイオードが発光した赤外線が壁で反射し、フォトトランジスタで受光されることで壁を検出できます。

壁がない場合は、赤外線が反射されず、フォトトランジスタが受光できません。

 

回路図はこのようになりました。

自分のマイクロマウスには、この検出回路が4つ搭載されます。それぞれ、前(左)・左・右・前(右)の壁を検出します。

 

それでは発光回路・受光回路について説明します。

発光回路

回路図は[HM-StarterKit]を流用していますが、より詳しい発光回路の動きについては[マイクロマウスのセンサについて②]を参考にしました。

 

参考記事に書いてあるとおり、環境光による壁の誤検知を防ぐため、発光ダイオードをパルスでON/OFFさせます。パルスの周波数は1kHzとします。

発光ダイオードを1kHzでON/OFFすると、それに伴い電源電流が変動します。この変動をなだらかにするためにローパスフィルタを搭載しています(回路図のR5とC11)。

素子の定数はHM-StarterKitの値をそのまま使用しています。電源ICがHM-SterterKitのものから変わっているので、実際に動かした時の波形を見て定数を変えようと思います。(もしかしたらフィルタ回路が不要かもしれません。)

 

ON/OFFするパルスは、ESP32から出力します。発光した赤外線が別の受光部に入らないように、4つのダイオードを別々のタイミングで発光させたいです。

そのためには、パルスの出力端子も4つ必要ですが、ESP32の端子数が足りないため出力端子を2つに減らしています(回路図のIRLED_R_FLと、IRLED_L_FR)。

本来は別々に点灯させる、RとFLを同時に点灯させます。同じようにLとFRも同時に点灯させます。

RとLのセンサは角度が傾いているので、センサRとFL、LとFRのペアで発光すれば、誤検知しません(おそらく)。

受光回路

こちらも、HM-StarterKitの回路図を流用します。

フォトリフレクタに内蔵されているフォトトランジスタは、ベース電流の入力が光の入力に置き換わったトランジスタです。

[赤外LEDとフォトトランジスタ –

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


shotaのマイクロマウス研修14[回路設計② 電源回路]

こんにちは、shotaです。

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

[前回の記事]では回路ブロック図について書きました。

今回は電源回路について書きます。

 

マウスの回路ブロック図(振り返り)

マウスの回路ブロック図は以下のとおりでした。

今回は、この左上部分の電源回路について書きます。

 

電源回路の回路ブロック図

電源回路のブロック図はこのようになりました。

点線から左側が外部回路で、LiPoバッテリが接続されます。

点線から右側が内部回路で、コネクタから始まり、スイッチやLDO、その先にはESP32マイコンやモータドライバが接続されます。

 

それでは、各ブロックの役割を左から順に説明します。

LiPoバッテリ

LiPoバッテリは、電源回路(広く言えばマウス回路)の電源供給源です。バッテリがなければ回路は動きません。

どのLiPoバッテリを使用するかは、動かしたい回路の電源電圧や消費電流などから選定します。

今回は[HM-StarterKit(通称ハムスター)]で使用しているバッテリ 3.7V 150mAhを使用する予定ですが、容量を何mAhにするかは実際に動かしてみて決めたいと思います。

ESP32はWiFiやBluetoothが使用できるので、150mAhでは容量が足りないことを懸念しています。

 

別のLiPoバッテリ使用する場合は、[Amazonで”lipo 3.7V”と検索]したり、模型屋さんでドローン用のバッテリを調べたりして入手しようと思います。

 

電源コネクタ

電源コネクタは、使用するバッテリのコネクタ形状に合うものを選びます。

今回はハムスターで使用しているものと同じ、JSTのZHコネクタを使います。

[ZHコネクタ データシート]

ケーブルが車体外に飛び出ないようにトップ型を選びます。

また、ケーブルを繰り返し抜き差しすることを想定して、スルーホールタイプ(表面実装タイプではない)を選びます。

(私はケーブルを外すときに、表面実装のコネクタを剥がした経験があります)

 

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


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

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

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

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

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

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

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

続きを読む ›

Posted in お知らせ, ブログ


shotaのマイクロマウス研修13[回路設計①]

こんにちは、shotaです。

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

[前回の記事]ではオリジナルマウスの設計方針を決めました。[HM-StarterKit(通称ハムスター)]の回路を流用して、設計時間を短縮するということでした。

今回から回路設計を始めます。

 

マウスの回路ブロック図

まずはじめに回路ブロック図を作ります。

回路ブロック図を書くと、システムに必要な回路要素(ブロック)を把握でき、要素間の接続も確認できます。

各ブロックに使用する素子・ICや、接続する電源電圧等を書いておくとより便利です。

 

今回は簡易的な回路ブロック図を作成しました。

[ハムスターの回路図]をベースにしていますが、マイクロマウスとしてはベーシックな回路構成になっていると思います。

(最近では[吸引ファン]を取り付けるのが流行ってるみたいです)

 

このブロック図について簡単に説明します。

  • バッテリ・電源コネクタ・電源回路
    • マイクロマウス(というか回路)を動かすには電源が必要です。
    • [マイクロマウス(ハーフサイズ)競技規定]より、マウスの大きさに制限があるため、ACアダプタによる電源供給は難しそうです。
    • 競技規定より、燃焼を利用したエネルギー源は許されないので、残念ながらエンジンは搭載できません。
    • 以上より、比較的サイズの小さいLiPoバッテリを使います。
  •  マイコン回路
    • 競技規定より、マイクロマウスは自立型でなければなりません。そのためには頭脳となるマイコンが必要です。
    • マイコンにはESP-WROOM-32Dを使用します。
  • モータドライバ・エンコーダ・DCモータ
    • 迷路を走行するためにはタイヤとモータが必要です。モータを動かすためにはモータドライバが必要です。
    • また、走行速度や走行距離を推定するためにはエンコーダが必要です。
    • 競技規定より、迷路の壁を飛び越したり、 よじのぼったりしてはいけいないので、残念ながらジャンプ機構は搭載できません。
  • 物体検出センサ回路
    • いわゆる壁センサです。
    • 迷路の壁を検出し、マウス自身の位置や姿勢を推定するために必要です。
  • モーショントラッキング回路
    • マウス自身の位置・速度・姿勢を推定するために必要です。
    • 加速度センサ・ジャイロセンサを搭載します。
  • インジケータ回路
    • プログラムの状態を表示するために必要です。
    • LEDを搭載します。
  • ソフト書き込みコネクタ
    • マイコンにプログラムを書き込むために必要です。
    • 回路規模の縮小のためコネクタを用意せず、基板に導線をハンダ付けしてプログラムを書く方法もあります。
      • 毎回毎回ハンダ付けするのは手間がかかるので採用しません。

マウスの回路図

そして・・・出来上がった回路図がこちらです。

次回から、各回路ブロックについて説明します。

 

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


Raspberry Pi Mouse / Cat を遠隔操作(音声通話編)

1.はじめに

こんにちは.鈴本です.
前回の記事「Raspberry Pi Mouse / Catを中継サーバー経由で遠隔操作」の続きとして
双方向音声通話機能を実装しました.

構成は前回記事と同様,

ロボット

  • Raspberry Pi Mouse / Cat
  • Ubuntu Server 16.04.5 LTS (Xenial Xerus)
  • Node.js v10.14.2

PC

  • Microsoft Windows 10 Home 1803 (64bit)
  • Google Chrome 72.0.3626.121 (Official Build) (64bit) or Firefox 65.0.2 (64 bit)

中継サーバー

  • Raspberry Pi 3 Model B
  • Ubuntu Server 16.04.5 LTS (Xenial Xerus)
  • Node.js v10.14.2

通信プロトコル

  • WebSocket

です.

また,これも前回同様ソースコードは
ソースコードを GitHub で公開しています.

どうやら,ChromeブラウザからPCのマイクへアクセスするには,
サイトがHTTPSであることが必須なようで,マイクの動作確認はFirefoxのみで行いました.

2.実装(ロボット→PC)

Node.jsの以下の2つのモジュールを利用しました.

ロボット側は

なかんじで,PC側も

なかんじ.

ロボット側ではマイク入力を, mic_input_stream のイベントを監視して取得し,WebSocketに流し,
PC側ではそれを中継サーバー経由で受け取って,Web Audio APIであるAudioContextで再生しています.

PC側のコードで,音声が途切れ途切れにならないようになっている部分は,
WebAudio+WebSocketでブラウザへの音声リアルタイムストリーミングを実装する
を参考に実装しました.

3.実装(PC→ロボット)

ラズパイでのスピーカーでの再生には,Node.jsの

モジュールを使いました.

ラズパイにRaspbianをインストールしていると,ラズパイ上のオーディオジャックが簡単につかえるのですが,
代わりにUbuntuをインストールしている環境では, /boot/config.txt を編集する必要があるようです.
(出典:How to enable sound on Raspberry Pi 3 running Ubuntu 16 –

続きを読む ›

Posted in Raspberry Pi Cat, Raspberry Pi Mouse, ブログ


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


shotaのマイクロマウス研修11[ESP32でMPU9250とSPI通信する]

こんにちは、shotaです。

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

[前回の記事]ではオリジナルマウスの仕様を決めました。

今回はタイトルの通り、ESP32で9軸センサMPU9250とSPI通信をします。

 

確認すること

できあがったプログラムがこちらです

n分クッキングみたいですが、先に完成したプログラムと通信結果を紹介します。

プログラムは[GitHub]に公開しています。[ESP-IDFのサンプル]をもとに作成しました。

WHO_AM_I(0x75)の応答のみを実装しています。

 

通信結果はこちらです。MPU9250からの返答0x71が確認できます。


SPI通信信号をロジアナで確認した結果がこちらです。

ESP32からの送信信号0xF5(Readビット(0x80) + WHO_AM_I(0x75))と、MPU9250からの返答0x71が確認できます。

また、通信クロック500 kHzも確認できます。

それでは、このプログラムができるまでの過程をここに書きます。

 

開発環境の導入からHello Worldまで

は、省略します。公式ページを見れば実施できるため、ここには書きません。

[ESP-IDF Programming Guide]Get Startedから開発環境(ESP-IDF)を導入してください。

私は、Linux(Xubuntu 16.04)に開発環境を作りました。使用するESP32のボードは[ESP32-DevKitC-32D]です。

 

ESP32のSPI機能について確認

まず、[公式ドキュメント]や、[Technical Reference Manual][データシート]を閲覧することを推奨します。

ここでは、引っかかった項目をピックアップします。

 

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


Raspberry Pi Mouse / Catを中継サーバー経由で遠隔操作

1.はじめに

こんにちは.鈴本です.
Raspberry Pi MouseとCatを遠隔操作するためのシステムを作りました.

  • 同一LANにいなくても操作できる
  • 複数台あったとしても中央集権的に管理できる

などの要求から,中継サーバーを挟んでPCから遠隔地のロボットを操作できるようにします.

2.全体像と要求

全体像は上図のような感じです.
遠隔地のLAN間でも操作できるように,PCとロボットがそれぞれ中継サーバー(ここではRaspberry Pi)につなぎに行きます.
そこでデータなどをやり取りして,遠隔操作を行おう,というものです.

要求は,

  • ロボット,操作PCは静的グローバルIPを必要としない.
  • 中継サーバー1台あれば,複数の通信セッションも開設できる.
  • データを中央で管理できる.
  • LANをまたいだ遠隔操作(NAT超え)も可能である.
  • 可能な限りリアルタイム性を追求する.

です.

3.構成
ロボット

  • Raspberry Pi Mouse / Cat
  • Ubuntu Server 16.04.5 LTS (Xenial Xerus)
  • Node.js v10.14.2
  • ROS kinetic
  • UVC対応カメラ:LOAS MCM-15W or C270 HD WEBCAM

PC

  • Microsoft Windows 10 Home 1803 (64bit)
  • Google Chrome 71.0.3578.80 (Official Build) (64bit)

中継サーバー

  • Raspberry Pi 3 Model B
  • Ubuntu Server 16.04.5 LTS (Xenial Xerus)
  • Node.js v10.14.2

通信プロトコル

  • WebSocket

のような構成にしました.

操作コンソールにはブラウザを用いて,リアルタイム性より通信プロトコルはWebSocketを採用しました.
Webを使うので,サーバーサイドとロボットサイドのコードはNode.jsで実装しています.

4.環境構築
ロボットと中継サーバーへのUbuntu Serverインストール

ロボットも中継サーバーもRaspberry Piなので,公式ページよりRaspberry Pi用のイメージファイルをダウンロードしてきて,SDカードに展開します.
ここでは Unofficial images の Raspberry Pi 3: ubuntu-16.04-preinstalled-server-armhf+raspi3.img.xz (4G image,

続きを読む ›

Posted in Raspberry Pi Cat, Raspberry Pi Mouse, ブログ


shotaのマイクロマウス研修10[オリジナルマウスの仕様を決める]

こんにちは、shotaです。

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

[前回の記事]で、ESP32を使ったマウスを作る!!という目標を掲げました。

今回はより詳細な仕様を決めたいと思います。

仕様決めのルール

設計を楽にするため(妥協するため)、仕様を3段階に分けます。

  • 最低限必要な機能・性能
    • これがないとマウスじゃない
  • 重要な機能・性能
    • 目指すマウスの姿
    • 目標
    • 欲望
  • できればほしい機能・性能
    • あったら嬉しい
    • 妥協できるところ

最低限必要な機能・性能

これがないとマウスじゃないという機能・性能です。実現しないと大会に出場できません。

  • 迷路を直進・旋回できる
    • 実現しないと迷路を走れません
  • 壁を検知できる
    • 実現しないと角を曲がれません迷路を解けません
  • 迷路情報をフラッシュメモリに保存できる
    • 実現しないと競技中にマウスの電源を切れません
  • 電源スイッチがある
    • 実現しないと電源を切るためにバッテリーを引き抜かなければなりません
  • モード切替インタフェースがある
    • 実現しないと電源ONですぐに走り出しちゃいます

重要な機能・性能

目指すマウスの姿です。これらをすべて実現できるように頑張ります。

  • ESP-WROOM-32Dを使う
    • 一番重要な項目です。ESP32はマイクロマウスで使えない。なんてことにならないようにがんばります。
  • WiFi・Bluetoothが使える
    • ESP32の主な機能の一つです。ただ、マウスで使うにあたって注意事項があります。この記事の最後に書きます。
  • 組み込みOS(FreeRTOS)が使える
    • 組み込みでマルチタスクを使ってみます
  • AWSと接続して迷路データをクラウド(AWS)に送信できる
    • 番むずかしい仕様だと思います。
    • これまで使っていた[Pi:Co Classic3]では、マウスとPCをUSBで接続して、迷路情報を[Tera Term]に表示していました。
    • 無線で迷路情報をクラウドに送信し、いつでもどこからでも迷路情報を閲覧できるようにしたいです。
  • DCモータを使う
  • Linuxのターミナルで開発できる
    • (Windows使いたくない)
    • (好きなエディタ(NeoVim)を使いたい)

 

続きを読む ›

Posted in DCマウス研修, ブログ, 研修


shotaのマイクロマウス研修9[オリジナルマウスの製作開始]

こんにちは、shotaです。

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

 

前回までの研修では[Pi:Co Classic3]を動かしていました。

Pi:Coはマイクロマウスキットなので、筐体設計・基板設計は不要です。

マウスに必要なプログラミング要素を学ぶことができました。

 

今回からはいよいよマウス研修の本番です。

筐体・回路・プログラムのすべてを設計・製作します。

 

研修の課題

は、オリジナルマウスで迷路を走る(完走?)、です。

つまり、クラシック競技でもハーフ競技でも、早いマウスでも遅いマウスでも、何でもOKということです。

 

課題がゆるふわだと製作するマウスもゆるふわになってしまうので、まずはどんなマウスを作りたいか(目標)を決めます。

 

どんなマウスを作りたいか(目標)

ESP32を使ったマウスを作る!!!

 

ESP32(ESP-WROOM-32D)って何?

秋月さんの販売ページの言葉を拝借すると、以下のとおりです。

ESP-WROOM-32は、WiFiとBluetoothが一つのモジュールに収まったワイヤレスモジュールです。SPI、UART、I2C、I2S、PWM、GPIO、SDIO、ADコンバータなど、多彩なインターフェースが内蔵されています。モジュールは工事設計認証(技適/TELEC)番号を取得済みですので安心してお使い頂けます。

http://akizukidenshi.com/catalog/g/gM-13318/

詳細な情報は[ESP-WROOM-32Dのデータシート]を読んでみてください。

 

また、秋月さんからはブレッドボードに差し込めるタイプの[開発ボード]が販売されています。

お手頃価格ですので、話題のIoTを始めたい方にはピッタリだと思います。

なぜESP32を使いたいか?

理由は主に3つです。

  • WiFiとBluetoothが使える
  • マウスに必要な機能(GPIO、ADコンバータ、PWM、I2C、SPI、フラッシュメモリ…etc)がある
  • 組み込みOS(FreeRTOS)に対応している

 

続きを読む ›

Posted in DCマウス研修, ブログ, 研修