2017年09月04日

直交エンコーダ読込(Quadrature encoder)

今回はSTM32マイコンで直交エンコーダを読み込む方法をご紹介します。



秋月で販売しているロータリーエンコーダを使用しました。
1kΩより大きい抵抗ではインピーダンスが大きすぎるようで
330Ωでプルアップすると読み込めました。

CubeMXの設定は下記の通りです。

Combined ChannelsをEncoder Modeに設定すると
A相、B相を接続するポートが自動的に割り当てられます。

tim-encoder.jpg



詳細設定は次の通りです。
Periodに設定した値までカウントすると0にリセットされます。
また、EncoderModeをTI1とTI2に設定することで
4逓倍となります。

この設定の場合、
今回のエンコーダは1回転24パルスですが、
4逓倍で1回転96パルスとなります。


tim-encoder2.jpg


CubeMXで自動で生成されたコードから下記のコードを追加しました。



 HAL_TIM_Encoder_Start(&htim3, TIM_CHANNEL_ALL);
  printf("Initialized Success!!\n");

  while (1)
  {
    HAL_Delay(300);
    int8_t uwDirection = __HAL_TIM_IS_TIM_COUNTING_DOWN(&htim3);
    uint16_t cnt=TIM3->CNT;//htim3.Init.Period;
    printf("CNT:%d, Drc:%d \n",cnt,uwDirection);
  }

__HAL_TIM_IS_TIM_COUNTING_DOWN関数で回転方向を取得できます。
エンコーダの値はTIM3->CNTで取得します。


実際にコードを実行してエンコーダを回転させてみました。

result.jpg


実際のロボットなどの位置取得では、
1回転で0に戻ると制御できないため、
0で割り込みを発生させて繰り上がり、繰り下がり処理等を行うのが一般的です。

また、他にチャタリング防止等のフィルタ機能もあるようなので、
必要に応じて使ってみると良いと思いました。



posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2017年08月16日

OpenMV試食

今回は単体で画像認識等の処理が可能な
OpenMVという部品を紹介します。

通常は画像処理はraspberryPIやBeagleboneなど
ARMでもAシリーズとOpenCVが動くOS上で処理を行うことが一般的です。

ただ、OSを積むとOSのバージョンによる差や電源断によるシステムイメージ破壊など
色々考えることが増えて大変です。

OpenMVはSTM32F7マイコンにmicroPythonを組込んで、
組込マイコン単体で処理できるデバイスです。

他のマイコンに組込んで画像処理を行うことができます。

スイッチサイエンスでも扱い始めたようですが、
それより1か月前にロボットショップで発注したものが届いたため、
ちょっと試食した様子を紹介します。


まずはUSBをPCへ繋ぐ前に
開発環境をインストールします。
QTベースのソフトでなかなか良くできています。
インストールと一緒にドライバもインストールされます。

USBを接続するとカメラ横のLEDが眩しく点灯します。

openmv-photo.JPG



ただ、ソフトを起動して、左下の接続ボタンを押しても
ソフト上でOpenMV本体を操作できない不具合がありました。


良く見るとソフトウェアの右下に「Firmware out of date」と表示されており、
クリックして内部ファームのバージョンを更新するとしっかり認識できました。

openmv.jpg

最初はフォーカスがずれているため、
レンズを外に出す方向にひたすら回してピントを調整します。
調整できると右上にOpenMVのカメラで撮影したLEDのリングが映りました。

ということでポイントはまずはファームのアップデートということのようです。

ラベル:部品
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2017年08月02日

Lattepanda用Arduino変換基板

巷ではRaspberrypiやbeaglebone、nanopiなど
いろいろなARMベースのコンピュータボードがありますが、
その中でも異色なのがLattepandaです。



LattepandaはatomCPU搭載のWindowsマシンでありながら、
Arduino Leonardを搭載したコンボコンピュータボードです。
Amazonなどで入手することが可能です。

残念ながら内蔵のWifiは技適がないため、
使用できません。


Windowsマシンなので普通にキーボード、マウス、HDMIディスプレイをつなぐと
Windowsデスクトップが起動します。



Arduino Leonardが一体になっているため、
デスクトップ上のArduinoIDEからArduino Leonardボードが認識され、
そのまま書込み、実行ができます。


LattepandaのUSBを給電するとArduino Leonardが動作し、
電源ボタンを押すとWindowsが起動する感じです。
なので、Windowsを起動させなくともArduino Leonardとして使用できます。


ただ、問題点としては
内蔵のArduino Leonardはボード上の2列ピンヘッダで
Arduinoヘッダでないため、
手持ちのArdunoシールドが活用できません。

そこで
LattepandaArduno変換基板を作成しました。
Web上では他に似た基板を作成されている方が数人おられましたが、
日本で入手しにくい部品を使用していたり、
手持ちのシールドの部品と干渉するため、
結局、0から設計することになりました...

lattepanda.JPG


また、某サイトでの販売をする予定でしたが、
まだ日本でLattepandaの知名度が低いため、
販売できませんでした。

そのため、試しで作成した基板を1枚送料込みで2000円で販売します。
ご希望の方は連絡ください。
ピンヘッダ、ソケットは別売です。
表面実装部品のみ実装済みです。

ロットや機種により若干、コネクタ等に干渉する場合があるかもしれません。
所有のRev1.1ではちょうど入りました。

lattepanda_.JPG

実際に使用した例です。

ラベル:Lattepanda 部品
posted by Crescent at 00:00| Comment(0) | 電子部品 | このブログの読者になる | 更新情報をチェックする

2017年07月25日

測域センサ 構造

今回は測域センサを紹介します。


北陽電機製測域センサURG-04LXを入手しました。

今となってはKinectやRealSenseなど
3Dでキャプチャリングできるセンサが安く入手できるようになっています。
ただ、その分、処理が重く、マイコン等で処理するのは大変です。

マイコンでも処理できるものとして、測域センサがあります。
2Dで平面上の障害物等を検出できます。


最近のメジャーな測域センサというとSeedStudioRPLDARがありますが、
今回は先日、入手した日本製の測域センサURG-04LXの内部構造を少し紹介します。


main.JPG

USB端子とシリアル端子がついています。


internal.JPG

上蓋を外すとモータで回転する円柱があり、
SeedStudioRPLDARと同じような構造のようです。
円柱の上に45度?に傾いたミラーがあり、
蓋の部分についたレーザー光を反射させているようです。

円柱が回転することで反射したレーザー光の方向を変えられるようになっています。



encoder.JPG

また、円柱下側にスリット付の板があり、
モータの位置検出用のエンコーダがついていました。





laser.JPG
蓋の中心部にレーザー発光部があると思われます。


recieve.JPG
円柱を側面から見ると、
レーザー光を受光する部分と思われる側面にレンズがあります。



小さい筺体にレーザーやエンコーダ、ミラーなどの光学部品が詰まっており、
なかなか面白い構造だと思いました。

時間を見つけて、今度は測域センサURG-04LXを実際に使用してみたいと思います。

ラベル:部品
posted by Crescent at 00:00| Comment(0) | TrackBack(0) | 電子工作 | このブログの読者になる | 更新情報をチェックする

2017年07月16日

ProjectionBall IoT販売開始

今回は昨日から販売開始した
ProjectionBall IoTについて紹介します。


既にOpenHardwareとして公開しているProjectionBall IoTの
組立済みモデルを販売開始しました。


main-photo.jpg



これまでのProjectionBallとの大きな違いは下記の通りです。

・サイズが直径12cm→10cmに小型化
・ESP-WROOM02を搭載でスマートフォンやタブレット等から操作可
・フォント内蔵で任意の文字列描画可能(英数字、一部記号のみ)
・RTC内蔵でアナログ時計やデジタル時計、日付を描画可能


Projection Ball IoTはこちらのサイトから購入可能です。


posted by Crescent at 00:00| Comment(0) | TrackBack(0) | お知らせ | このブログの読者になる | 更新情報をチェックする