YUUKIの自作マウス作製記

YUUKIの自作マウス作製記-Part13

YUUKIの自作マウス作製記

各回路設計-その2-

梅雨入り…ですかね、雨の日が多くなり洗濯物が乾きにくい季節になりました。
じめじめしますね。 涼しくていいのですが湿度が高いのはあまり好きではないです(笑)

みなさん、こんにちはYUUKIです。

さて、前回の記事からYMmouseの回路を紹介しています。電源とユーザーインターフェースを紹介しました。
今回はセンサーとモータードライバを紹介していきます。

 

センサー

YMmouseで使用しているセンサーは、距離センサーとして「ST-1KL3A」「SFH4550」を、エンコーダーは1717モーター内蔵の「IEH2-4096」になります。またジャイロには「MPU-9250」の9軸ジャイロモジュールを使用しています。

距離センサー

回路自体はPi:Coと同様ですが、ここもデジタルトランジスタからFETに変更しています。これは前回の記事にて説明している通りです。FETに変更する場合、プルダウンや電流調整用の抵抗を取り付ける必要があります。

フォトトランジスタについては、Pi:Coと同様のものを使用していますが、発光LEDは赤色LEDから赤外LEDに変更しています。特筆これといった理由はないのですが、諸先輩方がよく使っているので採用しました。

※赤外LEDとフォトトランジスタをまとめる形で書いたので、すごく見づらかったです。赤外LEDは3.3レギュレーターから引っ張っていますが、フォトトランジスタはVDDA端子から電源を取っています。STM32の電源は、アナログの電源(ADやDA)とデジタルの電源を分けて入力できる様になっており、電源のノイズがA/DやD/Aの結果に響いてしまうためアナログに使用する電源はノイズが小さいものを入力すること推奨されてます。そこで、センサの電源は、ノイズが小さいアナログ電源を使っています。加えて、L4シリーズではペリフェラル電圧モニターで監視しながら、2つの閾値を比較できるようです。

 

エンコーダー

エンコーダーは「FAULHABER 1717T006SR-6V」に内蔵されている「IEH2-4096」です。
内蔵されているおかげでモーターとエンコーダーの軸合わせの必要がありません。モーターマウントにポン付けで使用できるお手軽モーターですが、ちょっとお高いです。

Pi:Coに使われるRX631マイコンは3.3V電源で、電源+0.3V程度は壊れないみたいですが、エンコーダー出力が5Vだと壊れてしまいます。(RX631も一部のポートでは5Vトレラントみたいです。)では、YMmouseで使っているSTM32F446REはどうでしょう…RX631同様に3.3V駆動ですが基本5Vトレラントみたいです。ですが例外もあるようで一部ピンでは絶対定格で最大4.0Vとなっています。

※このブログを書いているときに調べて分かったことなので、当時はとりあえず3.0V近くまで落としておけばいいよね。ということで板Pi:Coの回路をそのまま流用しました。計算すると5Vから2.9Vくらいまで分圧していることになります。

ジャイロ

ジャイロセンサーは特筆こだわりがなく、正直に言うと部材の入手難ということで選ぶことが大変だったのでディスコンになっているもののAmazonに在庫がまだ潤沢にあったMPU9250ジャイロモジュールを使用することにしました。製品開発では使えないですが、マウスの部材として使うなら良いでしょうということで採用しています。

・SCL=SPI-clock   ・SDA=Data input(MOSI)  ・EDA=Aux serial data
・ECL=Aux serial clock ・ADD=Data Output(MISO)・INT=Interrupt Output
・NCS=Chip Select ・FSYNC=Frame Synchronization

基板にプリントされている名称で一部わからなかったので調べたら説明してくれているところを見つけたので備忘録として書いてみました。
今回は回路図を見ていただいてもわかるようにSPI通信を採用するので電源、GNDのほかに4か所と接続します。I2C接続にする場合は、SPI通信よりも速度は劣るようですが、電源、GNDに加えSCLとSDAと少ない接続で通信できます。

こちら値段も安くて入手も容易ですが、モジュールとしてのデータシート等が手に入らないのでMPU9250のデータシートを参考に製作することになります。

モータードライバー

モータードライバーは秋月で購入できるDRV8835のモジュールを使います。一つのモジュールで2つのモーターを制御できます。ここで気をつけるのは、使用するDCモータに流れる最大電流がモータードライバーのドライブ能力を超えてしまうので、PWMのDutyの最大値を回転速度に応じて可変にする必要があるみたいです。
(ここも板Pi:Coの回路を流用していますが、大会直前にモーター動かすのに苦戦します。動きはするのですが、モーターの駆動に明らかな偏りがありました。片方が倍以上回転します…
解決策は見つかっているのですが、狙った使い方ではないのでここも何か見落としているか、使い方を見直す必要がある部分です。また今後の記事で紹介します。)

次回

今回はセンサーとモータードライバーの回路を紹介しました。
次回、マイコンと通信にまつわる回路の紹介をして、基板のレイアウトのお話へと続きます。

それではっ

YUUKI

タイトルとURLをコピーしました