この記事では、携帯電話のGセンサーを介してロボットカーを制御します。電話を傾けるだけでロボットを動かすことができます。このGセンサー制御ロボットにはArduinoとRemoteXYアプリも使用します。RemoteXYアプリは、ロボットを制御するためのインターフェースをスマートフォンに作成するために使用されます。インターフェースにジョイスティックを追加して、ロボットをジョイスティックや電話を傾けて制御できるようにします。
Gセンサーまたは重力センサーは基本的にスマートフォンの加速度計であり、電話の画面の向きを制御するために使用されます。加速度計は重力のX、Y、Z方向を感知し、電話の位置合わせに従って画面を回転させます。今日では、より高感度で正確なジャイロスコープセンサーが、画面の向きを決定するために携帯電話で使用されています。私たちのプロジェクトでは、ロボットの車は、電話を前に傾けるときのように、電話を傾ける方向に応じて移動します。次に、車は前に移動し、下に傾けると、車は後ろに移動します。これは、モバイルでいくつかのカーゲームをプレイするときと同じですが、Gセンサーを使用してそれに応じて車を動かします。最後にビデオをチェックしてください。他のロボティクスプロジェクトもここでチェックしてください。
必要なコンポーネント:
- 二輪ロボット車のシャーシ
- Arduino UNO
- L298Nモーターコントローラー
- HC-06 Bluetoothモジュール(HC-05も機能します)
- 電源またはセル
- 接続線
RemoteXYアプリを使用したロボットのインターフェースの作成:
RemoteXYアプリを使用してロボットカーを制御するためのインターフェイスを作成するには、次のリンクに移動する必要があります
remotexy.com/en/editor/Webページは次のようになります
次に、画面の左側から、スイッチボタンとジョイスティックを手に取り、モバイルインターフェイスに配置します。ボタンはArduinoの内部に接続されているピン13のライトをオンにし、ジョイスティックはロボットカーを動かします。スイッチとジョイスティックを配置した後のWebページは次のようになります。
次に、ジョイスティックと一緒にGセンサーの有効化/無効化ボタンを配置する必要があります。これにより、電話を左右、上下に傾けてロボットカーを動かすことができます。そのボタンを使用して、Gセンサーを有効または無効にできます。Gセンサーが無効になっている場合、ジョイスティックを動かすことで車を制御できます。したがって、Gセンサーの有効化/無効化ボタンを配置するには、インターフェイスに配置したジョイスティックをクリックします。左側にプロパティセクションがあり、最後にジョイスティックの近くにGセンサーボタンを配置するオプションがあります。したがって、Gセンサーボタンを好きな場所に配置します。この後のウェブページは次のようになります。
その後、「ソースコードを取得」ボタンをクリックして、コンピュータに保存します。ここからライブラリをダウンロードして、Arduinoライブラリフォルダに保存します。ダウンロードしたコードをコンパイルして、エラーがないことを確認します。これはロボットを実行するコードではありませんが、Arduinoでアプリを使用するのに役立ちます。ここからアプリをダウンロードするか、PlayストアにアクセスしてそこからAndroidスマートフォン用のRemoteXYアプリをダウンロードします。
回路図と説明:
まず、L298NモーターコントローラーをArduinoに接続します。モーターコントローラーのENAピンとENBピンをそれぞれArduinoピン12と11に接続します。これらの2つのピンは、モーターのPWM制御用です。これらのピンを使用して、車の速度を増減できます。次に、IN1、IN2、IN3、およびIN4をそれぞれArduinoのピン10、9、8、および7に接続します。これらのピンは、モーターを両方向(時計回りと反時計回り)に回転させます。
モーターに電力を供給するために、バッテリーのプラスとマイナスを12Vとモーターコントローラーのアースに接続します。次に、5VとアースをモーターコントローラーからArduinoVinとアースに接続します。
次に、BluetoothモジュールHC-06をarduinoに接続します。あなたがHC-05を持っているなら、それもうまくいくでしょう。VCCとBluetoothモジュールのアースを5VとArduinoのアースに接続します。次に、BluetoothモジュールのTXピンをArduinoのピン2に接続し、RXピンをArduinoのピン3に接続します。ArduinoでBluetoothを使用する方法の詳細については、Arduinoを使用したBluetooth制御のおもちゃの車も確認してください。
コードの説明:
このモバイル制御ロボットカーの完全なArduinoコードは、以下のコードセクションに記載されています。ここでは、このコードがどのように機能するかを理解します。
まず、SoftwareSerialとRemoteXYのライブラリを含めました。RemoteXYライブラリは、Arduinoでアプリを設定するのに役立ちます。これにより、ロボットカーを制御します。その後、Bluetoothモジュールのピンを定義しました。BluetoothモジュールのTXはArduinoのRXピンであるArduinoのピン2に接続され、BluetoothモジュールのRXはArduinoのピン3に接続されます。はArduinoのTXピンであり、Bluetoothモジュールのボーレートを9600に設定します。
#define REMOTEXY_MODE__SOFTWARESERIAL #include
次のコードは、モーター速度を増減します。ジョイスティックが中央にあるときは速度がゼロになり、前進方向にあるときは速度が0から100に増加します。車が移動すると速度は0から-100に減少します。逆方向。車は特定の速度で動かすこともできます。これはPWM信号を与えることによって行うことができます。pwm信号は、ジョイスティックの回転に応じてモーターに送信されます。
if(motor_speed> 100)motor_speed = 100; if(motor_speed <-100)motor_speed = -100; if(motor_speed> 0){digitalWrite(pointer、HIGH); digitalWrite(pointer、LOW); AnalogWrite(pointer、motor_speed * 2.55); } else if(motor_speed <0){digitalWrite(pointer、LOW); digitalWrite(pointer、HIGH); AnalogWrite(pointer、(-motor_speed)* 2.55); } else {digitalWrite(pointer、LOW); digitalWrite(pointer、LOW); AnalogWrite(ポインタ、0); }
次のコードでは、アプリでジョイスティックを動かすたびに呼び出される関数を定義しました。アプリでスイッチをオンにすると、ロジック1がArduinoのピン13に渡され、LEDピンがオンになります。ロボットカーを前後方向に動かしながら、 速度 機能を呼び出します。
void loop(){RemoteXY_Handler(); digitalWrite(ledpin、(RemoteXY.switch_1 == 0)?LOW:HIGH); 速度(first_motor、RemoteXY.joystick_1_y-RemoteXY.joystick_1_x); 速度(second_motor、RemoteXY.joystick_1_y + RemoteXY.joystick_1_x); }
それを実行する方法:
RemoteXYのライブラリをArduinoライブラリに追加し、ArduinoIDEにコードをアップロードします。次に、携帯電話にアプリをダウンロードして、Bluetoothをオンにします。アプリのインターフェースは次のようになります
次に、Bluetoothに移動し、そこでBluetoothをオンにします。オンにすると、Bluetoothデバイスが表示されます。そこからHC-06Bluetoothモジュールを選択すると、ロボットカーを制御できるインターフェイスに移動します。
これが、携帯電話内の重力センサーを使用してロボットを動かす方法です。間にMicrocontorller(Arduinoなど)を接続することで、Gセンサーをさらに実験して、外部のものを制御するためのより興味深い使用法を見つけることができます。