ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ورود برای شما نمایش داده نمیشود، اینجا را کلیک کنید.









اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 1 از 1
  1. #1
    2009/10/09
    1
    5

    راه اندازی حسگر MPU-6050 در بسکام

    سلام به دوستان.بی مقدمه، بنا به نیاز یک پروژه ناچار به استفاده از حسگر ژیروسکوپ 6050 در قالب یک ماژول شدم. از اونجا هم که قصد نوشتن برنامه استفاده از این حسگر رو در ربان بیسیک و کامپایلر بسکام داشتم. طبیعتا دنبال پروژه های مشابه و استفاده از تجارب دیگران توی فروم های مختلف جستجو کردم اما اغلب دوستان پروژه هایی در زبان c رو با کتابخانه های ثابت ارائه داده بودن. من هم به کاتالوگ اصلی و کاتالوگ رجیستر های چیپ رجوع کردمو برنامه مورد نیازمو در کامپایلر بسکام تهیه کردم.
    قسمت اصلی شاخه برنامه رو هم برای شما به انتشار میذارم شاید به درد کسی خورد
    تو قسمت کامنت ها توضیحات مختصری نوشتم. لازمه ذکر کنم که قبل از هر مرتبه خوندن رجیستر های اطلاعات ماژول، تنظیم رجیستر ها ی فرکانس کاری، مقیاس ژیرو و شتاب سنج و وضعیت کار ( پاور ) چیپ رو باید مجدد انجام بدید. البته در هر بار اتصال جریان یک بارش کافیه اما تکرارش میتونه خیال شما رو بابت ارتباط صحیح راحت کنه.
    دو فایل کاتالوگ دستگاه و آدرس رجیستر ها رو هم برای دانلود لینک میکنم

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    'Master headers
    $regfile = "m32def.dat"
    $crystal = 8000000

    'Ports configurations
    Config Portb = Output

    'Configuration LCD
    Config Lcdpin = Pin , Db4 = Portb.2 , Db5 = Portb.3 , Db6 = Portb.4 , Db7 = Portb.5 , Rs = Portb.0 , E = Portb.1
    Config Lcd = 16 * 2
    Cursor Off

    'Configuration I2C protocol connections
    Config Sda = Portc.1
    Config Scl = Portc.0
    Config I2cdelay = 5
    Const Mpu6050_w = &HD0
    Const Mpu6050_r = &HD1

    'Callback variables
    Dim Key_flag As Bit
    Dim Temp_l As Byte
    Dim Temp_h As Byte
    Dim Acc_xl As Byte
    Dim Acc_xh As Byte
    Dim Acc_yl As Byte
    Dim Acc_yh As Byte
    Dim Acc_zl As Byte
    Dim Acc_zh As Byte
    Dim Gyr_xl As Byte
    Dim Gyr_xh As Byte
    Dim Gyr_yl As Byte
    Dim Gyr_yh As Byte
    Dim Gyr_zl As Byte
    Dim Gyr_zh As Byte
    Dim Temp As Integer
    Dim Acc_x As Integer
    Dim Acc_y As Integer
    Dim Acc_z As Integer
    Dim Gyr_x As Integer
    Dim Gyr_y As Integer
    Dim Gyr_z As Integer

    'Rename terminals
    Lcd_bl Alias Portb.6


    'Pre start
    Set Lcd_bl


    'Script here
    Here:
    'Get from I2C
    I2cstart
    I2cwbyte Mpu6050_w 'Set Clock source
    I2cwbyte &H6B
    I2cwbyte 0
    I2cstart
    I2cwbyte Mpu6050_w 'Config gyro scale
    I2cwbyte &H1B
    I2cwbyte 0
    I2cstart
    I2cwbyte Mpu6050_w 'Config acc scale
    I2cwbyte &H1C
    I2cwbyte 0
    I2cstart
    I2cwbyte Mpu6050_w 'Sample rate divider
    I2cwbyte &H19
    I2cwbyte 0
    I2cstart
    I2cwbyte Mpu6050_w 'Start reading registers from #ADD 59 '
    I2cwbyte 59
    I2cstop
    I2cstart
    I2cwbyte Mpu6050_r
    I2crbyte Acc_xh , Ack
    I2crbyte Acc_xl , Ack
    I2crbyte Acc_yh , Ack
    I2crbyte Acc_yl , Ack
    I2crbyte Acc_zh , Ack
    I2crbyte Acc_zl , Ack
    I2crbyte Temp_h , Ack
    I2crbyte Temp_l , Ack
    I2crbyte Gyr_xh , Ack
    I2crbyte Gyr_xl , Ack
    I2crbyte Gyr_yh , Ack
    I2crbyte Gyr_yl , Ack
    I2crbyte Gyr_zh , Ack
    I2crbyte Gyr_zl , Nack
    I2cstop
    'Calculate & fine
    Acc_x = Acc_xh * 256
    Acc_x = Acc_x + Acc_xl
    Acc_y = Acc_yh * 256
    Acc_y = Acc_y + Acc_yl
    Acc_z = Acc_zh * 256
    Acc_z = Acc_z + Acc_zl
    Temp = Temp_h * 256
    Temp = Temp + Temp_l
    Gyr_x = Gyr_xh * 256
    Gyr_x = Gyr_x + Gyr_xl
    Gyr_y = Gyr_yh * 256
    Gyr_y = Gyr_y + Gyr_yl
    Gyr_z = Gyr_zh * 256
    Gyr_z = Gyr_z + Gyr_zl
    Acc_x = Acc_x / 16384
    Acc_y = Acc_y / 16384
    Acc_z = Acc_z / 16384
    Gyr_x = Gyr_x / 131
    Gyr_y = Gyr_y / 131
    Gyr_z = Gyr_z / 131
    Temp = Temp / 340
    Temp = Temp + 36.53
    Locate 1 , 1
    Lcd Acc_x ; "." ; Acc_y ; "." ; Acc_z ; "." ; Temp ; " "
    Locate 2 , 1
    Lcd Gyr_x ; "." ; Gyr_y ; "." ; Gyr_z ; " "
    Wait 1

    Goto Here
نمایش نتایج: از 1 به 1 از 1

موضوعات مشابه

  1. راه اندازی sim900 با بسکام
    توسط salempour در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2016/01/22, 19:03
  2. محاسبه مقدار حرکت با سنسور mpu-6050
    توسط hoseinquest در انجمن رباتيك و مكاترونيك
    پاسخ: 2
    آخرين نوشته: 2014/07/10, 18:25
  3. راه اندازی شرط(بسکام)
    توسط babaoghli در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2012/09/02, 18:23
  4. راه اندازی موتور براشلس با حسگر هال
    توسط mhmmdshirazi در انجمن ربات های پروازی
    پاسخ: 6
    آخرين نوشته: 2012/06/05, 19:58
  5. راه اندازی دو SPI در بسکام
    توسط وحيد حسيني در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2012/04/09, 13:37

کاربرانی که این تاپیک را مشاهده کرده اند: 3

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •