工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

Rocky Rover:Robotic Vision System PixyCam&Arduino 101

コンポーネントと消耗品

>
Arduino 101
× 1
Adafruit Motor / Stepper Shield V2
× 1
SparkFun DaguDG102タンクシャーシ
× 1
単三電池
× 1
USB-AからBへのケーブル
× 1
AdafruitUSBバッテリーパック
× 1
M2.5ナットとネジ付きスタンドオフ
× 4
オスとメスの極性JSTバッテリーコネクタ
× 1
>
オスヘッダー40位置1行(0.1 ")
× 1
オス/オスジャンパー線
× 1
Pixy(CMUcam5)
× 1
Pixy Pan-Tilt Kit for Pixy
× 1

アプリとオンラインサービス

>
Arduino IDE
Blynk

このプロジェクトについて

PixyCamを搭載したIntelArduino 101ベースのローバー!

ハックスターライブイベントは素晴らしいです! IntelはHacksterDallasイベントを後援し、Roversを構築するためにIntel Arduino101を送ってくれました。 Intelに感謝し、Arduinoに感謝します。これが私がイベントのために作ったローバーです。

Johnathan Hottellのこのチュートリアルに従って、このデバイスを作成しました。彼はBLEローバーを構築するためにいくつかのビデオを作成しました。そして、それは簡単です!こちらでチェックしてください。これがJohnathanHottellのビデオです。

私は4つのモーターを備えたローバーを持っているので、これに従いました。

ローバーを構築し、ブリンクと接続した後。ビルドを改善してPixyCamを追加することにしました。パン/チルトカメラを取り付けることができるように、バッテリーホルダーを前に移動しました。

PixyCam

PixyCamを使用すると、ロボットによるビジョンが簡単になります。 PixyはDIYロボット工学用の高速視覚センサーであり、ボタンを押すだけで簡単にPixyにオブジェクトを教えることができます。何百ものオブジェクトを同時に追跡することができ、追跡しているデータのみを提供します。

オレンジ色のカボチャを追跡することにしました。

私はそれを実行するのがいかに簡単であるかに驚いています。 PixyCamをArduinoに接続する手順のリンクは次のとおりです。パン/チルト機構の組み立て手順については、ここをクリックしてください。たくさんの写真があり、とてもわかりやすいのがうれしいです。セットアップとビルドの手順、Arduinoとの統合方法に従いました。私は彼らの例をテストしました。

これが私がAPIについて知ったものです。

PixyCam Arduino API

ArduinoでPixyを使用するのは本当に簡単です。 SPIヘッダーとPixyヘッダーを含めるだけです:

  #include  #include   

そして、この小さな男を setup()の外に置いて、Pixyのグローバルインスタンスを作成します。 および loop() 機能:

  Pixy pixy;  

Arduinoライブラリで最も重要なメソッドは getBlocks()です 、Pixyが検出したオブジェクトの数を返します。次に、 pixy.blocks [] を確認できます。 検出された各オブジェクトに関する情報の配列(検出されたオブジェクトごとに1つの配列メンバー)。各配列メンバー( i )次のフィールドが含まれています:

  • pixy.blocks [i] .signature 検出されたオブジェクトの署名番号(通常の署名の場合は1〜7)
  • pixy.blocks [i] .x 検出されたオブジェクトの中心のx位置(0〜319)
  • pixy.blocks [i] .y 検出されたオブジェクトの中心のy位置(0〜199)
  • pixy.blocks [i] .width 検出されたオブジェクトの幅(1〜320)
  • pixy.blocks [i] .height 検出されたオブジェクトの高さ(1〜200)
  • pixy.blocks [i] .angle 検出されたオブジェクトがカラーコードの場合、オブジェクトが検出されたオブジェクトの角度。
  • pixy.blocks [i] .print() 検出されたオブジェクト情報をシリアルポートに出力するメンバー関数

したがって、ArduinoでPixyと話すのは簡単です! ArduinoライブラリとAPIの詳細については、こちらをご覧ください。これがローバーに使用されるコードです。元のBLEコードを変更し、オブジェクトトラッキングを追加しました。セットアップ中:

  void setup(){..... pixy.init(); ....}  

メインループは次のようになります:

  void loop(){...... // pixyデータを読み取り、ブロックを取得static int i =0; int j; uint16_tブロック; char buf [32]; int32_t panError、tiltError;ブロック=pixy.getBlocks(); //ブロックがある場合if(blocks){panError =X_CENTER-pixy.blocks [0] .x; tileError =pixy.blocks [0] .y-Y_CENTER; panLoop.updatePan(panError); tileLoop.update(tiltError); pixy.setServos(panLoop.m_pos、tiltLoop.m_pos); i ++; //フレームはArduinoをダウンさせますif(i%10 ==0){int trackedBlock =0; sprintf(buf、 "検出された%d:\ n"、ブロック); Serial.print(buf); long maxSize =0; for(j =0; j  maxSize){trackedBlock =j; maxSize =newSize; }} int32_t followError =RCS_CENTER_POS --panLoop.m_pos; //サイズはオブジェクトの面積です。 //最後の8の移動平均を保持します。size+ =pixy.blocks [trackedBlock] .width * pixy.blocks [trackedBlock] .height;サイズ-=サイズ>> 3; int forwardSpeed =Constraint(400-(サイズ/ 256)、-100、400); int32_t差動=(followError +(followError * forwardSpeed))>> 8; int leftSpeed =Constraint(forwardSpeed +差動、-400、400); int rightSpeed =Constraint(forwardSpeed-差動、-400、400); motor1-> setSpeed(leftSpeed); //左モーター3-> setSpeed(leftSpeed); motor2-> setSpeed(rightSpeed); //左モーター4-> setSpeed(rightSpeed); double width =pixy.blocks [trackedBlock] .width; if(width <=5){} else if(width <20 &&!running){Serial.println( "running"); motor1-> run(FORWARD); motor3-> run(FORWARD); motor2-> run(FORWARD); motor4-> run(FORWARD); running =true; } else if(width> 80 &&!running){Serial.println( "running"); motor1-> run(BACKWARD); motor3-> run(BACKWARD); motor2-> run(BACKWARD); motor4-> run(BACKWARD); running =true; } else if(width> =20 &&width <=80 &&running){motor1-> setSpeed(128); motor2-> setSpeed(128); motor3-> setSpeed(128); motor4-> setSpeed(128); motor2-> run(RELEASE); motor4-> run(RELEASE); motor1-> run(RELEASE); motor3-> run(RELEASE); running =false; }}}}  

PixyCamが制御せずにBlynkを実行するには、レンズキャップを装着します。 PixyCamがボットの制御に干渉しないようにします。このプロジェクトでArduinoでのプログラミングや、次のプロジェクトでのPixyCamの使用に興味を持った場合は、[プロジェクトを尊重する]ボタンをクリックしてフォローしてください。

お気軽にご質問ください。

コード

ロッキーローバー

製造プロセス

  1. Arduinoハメ撮りビジョンクロック
  2. Arduino警報システム:SERENA
  3. Arduino3Dプリントロボットアーム
  4. Arduino Power
  5. Nunchuk制御ロボットアーム(Arduino付き)
  6. Intel Arduino 101 BLEBlynkタンク
  7. Arduino101 / tinyTILE BLE:マッチメイキングサングラス
  8. 視覚の持続性
  9. Arduino Apple Watch
  10. 地下室/クロールスペース換気システム
  11. ロボット手術ビジョンシステムの照明設計に関する考慮事項