ロボットを使用してキッチンの棚の周りで料理を移動する方法は?

キッチンの魅力と機能性を劇的に高める方法を探している場合は、そこでの人的労力を最小限に抑えることを検討してください。キッチンにある家庭用ロボットを作ることで人的労力を最小限に抑えることができ、汚れた道具を流しに運び、そこで止まります。人がロボットから器具を降ろすと、ロボットは戻ってきて、より多くの器具を持ってきます。大きなキッチンでは、洗面台がキャビネットにそれほど近くないことがあるため、ロボットは棚のある場所から別の場所に皿を運びます。ロボットの経路は、黒いテープを使用して棚に作成されます。ロボットは2つの赤外線近接センサーを使用して経路を検出し、センサーから受信した入力に基づいて、Arduinoはモータードライバーの助けを借りてモーターを動かすように指示します。



家庭用ロボット

家庭用ロボットの製造に必要なすべての周辺機器を接続するにはどうすればよいですか?

次に、必要なコンポーネントを収集して、ロボットの作成を開始する必要があります。



ステップ1:使用するコンポーネント

  • Arduino uno
  • IRセンサー(x5)
  • DCモーター
  • 車のホイールチェイス
  • 黒テープ
  • ジャンパー線
  • DCバッテリー
  • グルーガン
  • ドライバーセット

ステップ2:コンポーネントの調査

すでにコンポーネントのリストを作成しているので、一歩先に進んで、各コンポーネントの動作について簡単に説明します。



ザ・ Arduino UNO は、マイクロチップATMega 328Pで構成され、Arduino.ccによって開発されたマイクロコントローラーボードです。このボードには、他の拡張ボードまたは回路と接続できるデジタルおよびアナログデータピンのセットがあります。このボードには、14個のデジタルピンと6個のアナログピンがあり、タイプBUSBケーブルを介してArduinoIDE(統合開発環境)でプログラム可能です。電源には5Vが必要です オンCコード 動作します。



Arduino UNO

L298Nモータードライバーは、DCモーターの操作に使用されます。 L298Nは、2つのDCモーターの速度と方向を同時に制御できるデュアルHブリッジモータードライバーです。このモジュールは、最大2Aのピーク電流で5〜35Vの電圧を持つDCモーターを駆動できます。モーターのVCC端子で使用される電圧に依存します。私たちのプロジェクトでは、ICが正しく動作するために5V電源に接続する必要があるため、5Vピンを入力として使用します。 DCモーターを接続したL298Nモータードライバーの回路図 L298Nモータードライバーのメカニズムを理解するために、以下に示します。デモンストレーションでは、入力は 論理状態 IRセンサーの代わりに。

Proteus 8Professionalで作成された回路図



ステップ3:ブロック図と動作原理を理解する

まず、ブロック図を確認し、動作原理を理解してから、ハードウェアコンポーネントの組み立てに移ります。

ブロック図

私たちが使用するセンサーはデジタルであり、0または1のいずれかの出力を提供できます。私たちが購入したこれらのセンサーは提供しています 1 白い表面と 0 黒い表面に。私たちが購入するセンサーはランダムな値を与えます、時々それらは与えます 0 白い表面に 1 黒い表面に。このロボットでは5つのセンサーを使用します。5つのセンサーのコードには4つの条件があります。

  1. フォワードオンザライン: 真ん中のセンサーが黒い面にあり、残りのセンサーが白い面にある場合、前進状態が実行され、ロボットはまっすぐ前進します。から始めれば センサー1 まで続行します センサー5、 各センサーがそれぞれ与える値は次のとおりです。 (1 1 0 1 1)
  2. 鋭い右折: いつ センサー1 そして センサー2 が白い表面にあり、残りのセンサーが黒い表面にある場合、鋭い右折条件が実行され、ロボットは鋭い右に曲がります。から始めれば センサー1 まで続行します センサー5、 各センサーがそれぞれ与える値は次のとおりです。 (1 1 0 0 0)。
  3. 鋭い左折: いつ センサー4 そして センサー5 が白い面にあり、残りのセンサーが黒い面にある場合、鋭い左折条件が実行され、ロボットは鋭い左折します。から始めれば センサー1 まで続行します センサー5、 各センサーがそれぞれ与える値は次のとおりです。 (0 0 0 1 1)
  4. やめる: 5つのセンサーすべてが黒い表面にある場合、ロボットは停止し、モーターが回転します オフ。 食器洗い機が洗浄のためにロボットからプレートを降ろすことができるように、5つの黒い表面を持つこのポイントはシンクの近くにあります。

黒いテープを使用してキッチンの棚に小道を作り、その小道は流しの近くで終わるので、ロボットは流しの近くで停止し、食器洗い機はプレートを降ろし、ロボットは小道に向かって移動して調理器具を探します再び。

ロボットの軌跡

ステップ4:Arduino入門

以前にArduinoIDEに慣れていない場合でも、心配しないでください。以下では、ArduinoIDEを使用してマイクロコントローラーボードにコードを書き込む明確な手順を確認できます。 ArduinoIDEの最新バージョンはからダウンロードできます ここに 以下の手順に従ってください。

  1. ArduinoボードがPCに接続されたら、「コントロールパネル」を開き、「ハードウェアとサウンド」をクリックします。次に、「デバイスとプリンター」をクリックします。 Arduinoボードが接続されているポートの名前を見つけます。私の場合は「COM14」ですが、パソコンによって異なる場合があります。

    ポートを見つける

  2. 次に、ArduinoIDEを開きます。ツールから、Arduinoボードをに設定します Arduino / GenuinoUNO。

    セッティングボード

  3. 同じツールメニューから、コントロールパネルに表示されているポート番号を設定します。

    設定ポート

  4. 以下に添付されているコードをダウンロードして、IDEにコピーします。コードをアップロードするには、アップロードボタンをクリックします。

コードはからダウンロードできます ここに

ステップ5:コードを理解する

コードは非常に単純です。以下に簡単に説明します。

  1. コードの開始時にセンサーピンが初期化され、それに伴ってモータードライバーL298Nのピンも初期化されます。
    int enable1pin = 10; //モーター1のアナログ入力のPWMピンを初期化するintmotor1pin1 = 2; //モーター1の正のピンを初期化するintmotor1pin2 = 3; //モーター1の負のピンを初期化するintenable2pin = 11; //モーター2のアナログ入力のPWMピンを初期化するintmotor2pin1 = 4; //モーター2の正のピンを初期化するintmotor2pin2 = 5; //モーター2の負のピンを初期化するintS1 = 12; //センサー1のピン12を初期化しますintS2 = 9; //センサー2のピン9を初期化しますintS3 = 8; //センサー3のピン8を初期化しますintS4 = 7; //センサー4のピン7を初期化intS5 = 6; //センサー5のピン6を初期化します
  2. void setup() ピンをINPUTまたはOUTPUTとして設定するために使用される関数です。また、Arduinoのボーレートも設定します。ボーレートは、マイクロコントローラボードが接続されている他のコンポーネントと通信する速度です。
    {pinMode(enable1pin、OUTPUT); //モーター1のPWMを有効にするpinMode(enable2pin、OUTPUT); //モーター2のPWMを有効にするpinMode(motor1pin1、OUTPUT); // motor1 pin1を出力として設定pinMode(motor1pin2、OUTPUT); // motor1 pin2を出力として設定pinMode(motor2pin1、OUTPUT); // motor2 pin1を出力として設定pinMode(motor2pin2、OUTPUT); // motor2 pin2を出力として設定pinMode(S1、INPUT); // sensor1を入力として設定pinMode(S2、INPUT); // sensor2を入力として設定pinMode(S3、INPUT); // sensor3を入力として設定pinMode(S4、INPUT); // sensor4を入力として設定pinMode(S5、INPUT); // sensor5を入力として設定Serial.begin(9600); //ボーレートの設定}
  3. void loop() サイクルで何度も実行される関数です。このループでは、実行する操作をArduinoUNOに指示します。モーターの全速力は255で、両方のモーターの速度が異なります。したがって、ロボットを前方に動かしたり、右に曲がったりする場合は、モーターの速度を調整する必要があります。異なる条件で2つのモーターの速度を変化させたいので、コードではアナログピンを使用しました。モーターの速度は自分で調整できます。
    void loop(){if(!(digitalRead(S1))&&!(digitalRead(S2))&&(digitalRead(S3))&&!(digitalRead(S4))&&!(digitalRead(S5)))//先に進む行{analogWrite(enable1pin、61); //モーター1の速度analogWrite(enable2pin、63); //モーター2速度digitalWrite(motor1pin1、HIGH); //モーター1のピン1をHighに設定digitalWrite(motor1pin2、LOW); //モーター1のピン2をLowに設定digitalWrite(motor2pin1、HIGH); //モーター2ピン1をHighに設定digitalWrite(motor2pin2、LOW); //モーター2のピン2をローに設定} if(!(digitalRead(S1))&&!(digitalRead(S2))&&(digitalRead(S3))&&(digitalRead(S4))&&(digitalRead(S5)))/ /鋭い右折{analogWrite(enable1pin、60); //モーター1の速度analogWrite(enable2pin、80); //モーター2速度digitalWrite(motor1pin1、HIGH); //モーター1のピン1をHighに設定digitalWrite(motor1pin2、LOW); //モーター1のピン2をLowに設定digitalWrite(motor2pin1、LOW); //モーター2のピン1をLowに設定digitalWrite(motor2pin2、LOW); //モーター2ピン2をローに設定} if((digitalRead(S1))&&(digitalRead(S2))&&(digitalRead(S3))&&!(digitalRead(S4))&&!(digitalRead(S5)))/ /鋭い左折{analogWrite(enable1pin、80); //モーター1の速度analogWrite(enable2pin、65); //モーター2速度digitalWrite(motor1pin1、LOW); //モーター1のピン1をLowに設定digitalWrite(motor1pin2、LOW); //モーター1のピン2をLowに設定digitalWrite(motor2pin1、HIGH); //モーター2ピン1をHighに設定digitalWrite(motor2pin2、LOW); //モーター2のピン2をローに設定} if((digitalRead(S1))&&(digitalRead(S2))&&(digitalRead(S3))&&(digitalRead(S4))&&(digitalRead(S5)))//停止{analogWrite(enable1pin、0); //モーター1の速度analogWrite(enable2pin、0); //モーター2速度digitalWrite(motor1pin1、LOW); //モーター1のピン1をLowに設定digitalWrite(motor1pin2、LOW); //モーター1のピン2をLowに設定digitalWrite(motor2pin1、LOW); //モーター2のピン1をLowに設定digitalWrite(motor2pin2、LOW); //モーター2のピン2をLowに設定}}

アプリケーション

  1. 産業用アプリケーション :これらのロボットは、従来のコンベヤーベルトに代わる産業で自動機器キャリアとして使用できます。
  2. 国内アプリケーション :これらは、床の掃除、台所の仕事などの家庭用の家庭でも使用できます。
  3. ガイダンスアプリケーション :これらのロボットは、ショッピングモール、フードコート、美術館などの公共の場所で使用して、経路案内を提供できます。