.. note:: こんにちは、SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community on Facebookへようこそ!Raspberry Pi、Arduino、ESP32を愛好する仲間たちと一緒に、これらの技術を深く探求しましょう。 **参加する理由** - **専門家のサポート**: コミュニティやチームの助けを借りて、購入後の問題や技術的な課題を解決します。 - **学びと共有**: スキルを向上させるためのヒントやチュートリアルを交換します。 - **独占プレビュー**: 新製品の発表やプレビューに早期アクセスできます。 - **特別割引**: 最新の製品に対する独占割引を楽しめます。 - **フェスティブプロモーションとギブアウェイ**: ギブアウェイやフェスティブプロモーションに参加できます。 👉 私たちと一緒に探索と創造を始める準備はできましたか?[|link_sf_facebook|]をクリックして、今日参加しましょう! 2.2.6 MPU6050モジュール ========================= イントロダクション ------------------- MPU-6050は、スマートフォン、タブレット、ウェアラブルセンサー向けに設計された世界初の6軸モーショントラッキングデバイスです(3軸ジャイロスコープおよび3軸加速度計)。これには、低消費電力、低コスト、および高性能の要件が含まれます。 この実験では、I2Cを使用してMPU6050の三軸加速度センサーと三軸ジャイロスコープの値を取得し、画面に表示します。 コンポーネント ----------------- .. image:: ../img/list_2.2.6.png 回路図 ----------------- MPU6050はI2Cバスインターフェースを介してマイクロコントローラーと通信します。SDA1とSCL1は対応するピンに接続する必要があります。 .. image:: ../img/image330.png 実験手順 ------------------------------- **ステップ1:** 回路を構築します。 .. image:: ../img/image227.png **ステップ2:** I2Cの設定を行います(「I2Cの設定」参照。I2Cを設定済みの場合、このステップはスキップしてください)。 **ステップ3:** コードのフォルダに移動します。 .. raw:: html .. code-block:: cd ~/davinci-kit-for-raspberry-pi/nodejs/ **ステップ4:** 依存関係をインストールします。 .. raw:: html .. code-block:: sudo npm install mpu6050-gyro **ステップ5:** コードを実行します。 .. raw:: html .. code-block:: sudo node mpu6050_module.js コードが実行されると、MPU6050によって読み取られたx軸とy軸の傾斜角、および各軸の加速度、角速度が画面に表示されます。 **コード** .. code-block:: js var gyro = require("mpu6050-gyro"); var address = 0x68; //MPU6050のアドレス var bus = 1; //使用するi2cバス var gyro = new gyro( bus, address ); async function update_telemetry() { var gyro_xyz = gyro.get_gyro_xyz(); var accel_xyz = gyro.get_accel_xyz(); var gyro_data = { gyro_xyz: gyro_xyz, accel_xyz: accel_xyz, rollpitch: gyro.get_roll_pitch( gyro_xyz, accel_xyz ) } console.log(gyro_data); setTimeout(update_telemetry, 500); } if ( gyro ) { update_telemetry(); } **コードの説明** .. code-block:: js var gyro = require("mpu6050-gyro"); var address = 0x68; //MPU6050のアドレス var bus = 1; //使用するi2cバス var gyro = new gyro( bus, address ); ``mpu6050-gyro`` モジュールをインポートし、MPU6050のアドレスとバスを指定してオブジェクトgyroを作成します。 これにより、モジュール内の関数を呼び出すことができます。 .. note:: このモジュールについての詳細は、https://www.npmjs.com/package/mpu6050-gyro を参照してください。 .. code-block:: js var gyro_xyz = gyro.get_gyro_xyz(); var accel_xyz = gyro.get_accel_xyz(); var gyro_data = { gyro_xyz: gyro_xyz, accel_xyz: accel_xyz, rollpitch: gyro.get_roll_pitch( gyro_xyz, accel_xyz ) } console.log(gyro_data); setTimeout(update_telemetry, 500); モジュールには3つの利用可能な関数がカプセル化されています: ``gyro.get_gyro_xyz()`` : ジャイロスコープからの生のx, y, zデータを含むJSONオブジェクトを返します。 ``gyro.get_accel_xyz()`` : 加速度計からの生のx, y, zデータを含むJSONオブジェクトを返します。 ``gyro.get_roll_pitch( gyro_xyz, accel_xyz )`` : ロールとピッチを度単位で含むJSONオブジェクトを返します。 現象の写真 ------------------ .. image:: ../img/image228.jpeg