با سلام خدمت دوستان عزیز.
من به همراه دوستانم در حال ساخت یک روبات پرنده quadrotor هستیم. برای تشخیص زاویه روبات نسبت به زمین در سه محور x و y و z، اقدام به خریداری یک gyro که مدل آن rm-g145 است کردیم. ولی متاسفانه در خواندن زاویه ها با مشکل برخورد کردیم.
دسترسی به این gyro از طریق پورت i2c هستش و همانطور که می دونید در code vision برای کار با i2c کتابخانه ای به نام i2c.h وجود داره که شامل توابع آماده برای دسترسی به وسایلی است که از طریق پورت i2c میکرو به میکرو متصل شده اند. ما از این توابع برای ازسال اطلاعات به gyro استفاده می کنیم.
برای اینکه سرتون رو درد نیارم مشکلم رو فعلا به ضورت کلی بیان می کنم و اگه نیاز شد به صورت جزئی تر مشکلم رو شرح می دم.
مشکل اینه که من آدرس i2c جایرو رو برای دسترسی به رجیستر های اون ندارم. شایدم دارم ولی نمی دونم چطوری باید اطلاعات رجیستری که مثلا زاویه در جهت محور x رو نگه می داره رو بخونم. در کاتالوگ این مدل gyro که ما خریدیم نوشته آدرس i2c این gyro عدد 0x21 (مبنای 16) هستش ولی خروجی این دستور ما (i2c_write(0x21 همراره صفره. چون اگه اون آدرس معتبر باشه این دستور باید خروجی 1 بده. اون 1 در واقع همون acknowledge هستش که در صورت موفقیت آمیز بودن عمل نوشتن از سمت دستگاه slave ارسال میشه.
در ابتدا می خوام بدونم کسی با این نوع gyro کار کرده؟ و آیا کسی اصول دسترسی به رجیستر های gyro ای که با پورت i2c کار می کنه رو می دونه؟
خیلی ممنون
من به همراه دوستانم در حال ساخت یک روبات پرنده quadrotor هستیم. برای تشخیص زاویه روبات نسبت به زمین در سه محور x و y و z، اقدام به خریداری یک gyro که مدل آن rm-g145 است کردیم. ولی متاسفانه در خواندن زاویه ها با مشکل برخورد کردیم.
دسترسی به این gyro از طریق پورت i2c هستش و همانطور که می دونید در code vision برای کار با i2c کتابخانه ای به نام i2c.h وجود داره که شامل توابع آماده برای دسترسی به وسایلی است که از طریق پورت i2c میکرو به میکرو متصل شده اند. ما از این توابع برای ازسال اطلاعات به gyro استفاده می کنیم.
برای اینکه سرتون رو درد نیارم مشکلم رو فعلا به ضورت کلی بیان می کنم و اگه نیاز شد به صورت جزئی تر مشکلم رو شرح می دم.
مشکل اینه که من آدرس i2c جایرو رو برای دسترسی به رجیستر های اون ندارم. شایدم دارم ولی نمی دونم چطوری باید اطلاعات رجیستری که مثلا زاویه در جهت محور x رو نگه می داره رو بخونم. در کاتالوگ این مدل gyro که ما خریدیم نوشته آدرس i2c این gyro عدد 0x21 (مبنای 16) هستش ولی خروجی این دستور ما (i2c_write(0x21 همراره صفره. چون اگه اون آدرس معتبر باشه این دستور باید خروجی 1 بده. اون 1 در واقع همون acknowledge هستش که در صورت موفقیت آمیز بودن عمل نوشتن از سمت دستگاه slave ارسال میشه.
در ابتدا می خوام بدونم کسی با این نوع gyro کار کرده؟ و آیا کسی اصول دسترسی به رجیستر های gyro ای که با پورت i2c کار می کنه رو می دونه؟
خیلی ممنون
دیدگاه