Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Raspberry pi pico 2w
90 min
Share

كيفية استخدام حساس التسارع MPU-6050 مع لوحة الراسبيرى باى بيكو

فى هذا الدرس سنتعلم كيفية قياس التسارع فى الثلاث محاور باستخدام لوحة راسبيرى باى بيكو 2w وحساس MPU6050 فى الجزء الاول من الفيديو سنعرض قيمة تسارع الخطى للحساس فى الثلاث محاور وايضا التسارع الزاوى على الشاشة, وفى الجزء الثانى سنبنى نظام لتحريك محرك السيرفو بنفس زاوية ميل الحساس.

Project Video

Overview

Getting the Items

Raspberry Pi Pico 2 wireless
Get Item
3 Axis Gyroscope & Accelerometer Module (MPU-6050)
Get Item
SG90 Servo -Positional Rotation
Get Item
Full-size Breadboard
Get Item
Jumper Wires - Male to Male (40 Pack)
Get Item
Jumper Wires – Male to Female (40 Pack)
Get Item

Steps

Wiring it Up

قم بتوصيل الأسلاك بين حساس  MPU-6050ومحرك السيرفو ولوحة راسبيرى باى بيكو2W  كما فى الصورة التى فى الأسفل.

التوصيلات من لوحة راسبيرى باى بيكو 2W :

• منفذ ال VBUS بلوحة راسبيرى باى بيكو  ←المنافذ الموجبة بلوحة التجارب

• منفذ ال GND بلوحة راسبيرى باى بيكو2W  ← المنافذ السالبة بلوحة التجارب

التوصيلات من حساس mpu6050 :

• منفذ الVCC لحساس التسارع ← منفذ الVBUS بلوحة راسبيرى باى بيكو 2W

• منفذ الGND لحساس التسارع ← منفذ الGND بلوحة راسبيرى باى بيكو2W

• منفذ SDA لحساس التسارع ← منفذ رقم 0 فى لوحة راسبيرى باى بيكو 2W

• منفذ SCL لحساس التسارع ← منفذ رقم 1 فى لوحة راسبيرى باى بيكو 2W

التوصيلات من محرك السيرفو:

• المنفذ الموجب لمحرك السيرفو ← منفذ الVBUS بلوحة راسبيرى باى بيكو 2W

• المنفذ السالب لمحرك السيرفو ← منفذ الGND بلوحة راسبيرى باى بيكو 2W

• منفذ الإشارة لمحرك السيرفو ← منفذ رقم 16 في لوحة راسبيرى باى بيكو2W

Coding

وظيفة الكود البرمجى الأول هو عرض قيم التسارع للحساس على الشاشة, بينما الكود البرمجى الثانى وظيفته هى التحكم فى محرك سيرفو بنفس زاوية ميل الحساس.

'''

Voltaat Learn (http://learn.voltaat.com)

Link to the full tutorial:

Tutorial: How to Use the MPU-6050 Accelerometer with the Raspberry Pi Pico

This sketch print the output of MPU-6050 Sensor.

Note: You can use this sketch with any Raspberry Pi Pico.

'''

LED = machine.Pin("LED", machine.Pin.OUT)

LED.on()

from imu import MPU6050

from time import sleep

from machine import Pin, I2C

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)

imu = MPU6050(i2c)

while True:

   ax=round(imu.accel.x,2)

   ay=round(imu.accel.y,2)

   az=round(imu.accel.z,2)

   gx=round(imu.gyro.x)

   gy=round(imu.gyro.y)

   gz=round(imu.gyro.z)

   tem=round(imu.temperature,2)

   print("ax",ax,"\t","ay",ay,"\t","az",az,"\t","gx",gx,"\t","gy",gy,"\t","gz",gz,"\t","Temperature",tem,"        ",end="\r")

   sleep(0.2)

'''

Voltaat Learn (http://learn.voltaat.com)

Link to the full tutorial:

Tutorial: How to Use the MPU-6050 Accelerometer with the Raspberry Pi Pico

This sketch controll a servo motor with MPU-6050 Accelerometer.

Note: You can use this sketch with any Raspberry Pi Pico.

'''

import machine

from imu import MPU6050

from time import sleep

from machine import Pin, I2C

from servo import Servo

# LED indicator

LED = machine.Pin("LED", machine.Pin.OUT)

LED.on()

# اختيار المحور للتحكم (x او y)

axis = "x"  

# تهيئة I2C

i2c = I2C(0, sda=Pin(0), scl=Pin(1), freq=400000)

imu = MPU6050(i2c)

# تهيئة السيرفو على GP16 (غير المنفذ حسب توصيلك)

my_servo = Servo(pin_id=16)

while True:

   # قراءة القيم من الحساس

   ax = round(imu.accel.x, 2)

   ay = round(imu.accel.y, 2)

   if axis == "y":

       val = ax

   else:

       val = ay

   # تحويل القيمة الى زاوية (0 - 180 درجة)

   angle = int((val + 1) * 90)   # لأن القيم عادة بين -1 و +1

   angle = max(0, min(180, angle))  # تأكيد أن الزاوية ضمن الحدود

   # تحريك السيرفو

   my_servo.write(angle)

   print(f"Axis {axis.upper()} = {val}  --> Servo angle = {angle}")

   sleep(0.2)

Testing it Out

بعد رفع الكود البرمجى الأول ستجد انه يتم عرض قيم التسارع للحساس على الشاشة, بينما اذا رفعت الكود البرمجى الثانى ستجد انه يتم التحكم فى محرك سيرفو بنفس زاوية ميل الحساس.

Resources

No items found.