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