فهرست مطالب
راهنمای راه اندازی ژایروسکوپ ( سنسور سرعت زاویه ای ) CRM200 با استفاده از برد آموزشی پلاریس Polaris
هدف از انجام این پروژه اندازه گیری سرعت زاویه ای با دقت بالا توسط ژایروسکوپ دقیق CRM200 میباشد.
با فراگیری این آموزش شما قادر خواهید بود سنسورهای مشابه که خروجی آنها SPI میباشند را به همبن روش راه اندازی نمایید.
مقدمهای بر سنسور CRM200
حسگر تک محوره CRM200 توسط تکنولوژی MEMS ساخته شده است و قادر به اندازهگیری سرعت زاویهای تا حداکثر نرخ 1000± درجه بر ثانیه میباشد. حسگر در دو حالت آنالوگ یا دیجیتال قادر به ارسال اطلاعات است. در حالت آنالوگ، سیگنال خروجی، سیگنالی خطی و متناسب با سرعت زاویهای و در حالت دیجیتال خروجی طبق پروتکل SPI و دادههای مربوط به ژایروسکوپ، 16 بیتی میباشند. در جدول زیر مشخصات سنسور آورده شدهاست.
راهاندازی CRM200 توسط برد AVR WIZARD
قطعات مورد نیاز:
برای راهاندازی حسگر در حالت دیجیتال، جامپر Mode را به Vdd متصل کرده و دو جامپر SEL0 و SEL1 را قطع نمایید. طبق شکل 1 پایههای حسگر را به میکرو متصل نمایید.
کدنویسی
CRM200 از طریق درگاه SPI ارتباط برقرار میکند. برای نوشتن کد مربوطه، ابتدا در CodeVision پروژه جدید تعریف کرده و درگاههای SPI و UART آن را راه اندازی میکنیم. همچنین تنظیمات مربوط به LCD را انجام میدهیم.
ایجاد پروژه در CodeVision
برای ایجاد پروژه جدید، از شاخه File، گزینه New و سپس Project را انتخاب کنید.
سپس پنجره دیگری نشان داده خواهد شد؛ گزینه اول را انتخاب کرده و Ok را بزنید.
پس از تایید این گزینه، وارد صفحه جدیدی خواهید شد. در این صفحه تنظیمات مربوط به پورتهای ورودی و خروجی، LCD و SPI را انجام خواهیم داد. میکرو کنترلر استفاده شده ATMEGA32A میباشد.
پایه CS ماژول به PORTB.4 متصل است. در قسمت PORT، این پورت را به عنوان خروجی تعریف می کنیم.
سپس تنظیمات مربوط به LCD را انجام میدهیم.
همانطور که روی برد مشخص شده است، خطوط داده LCD به PORTA و خطوط فرمان به PORTB متصل هستند.
در ادامه SPI را فعال سازی میکنیم.
حال تنظیمات مربوط به UART را انجام میدهیم
پس از ذخیره سازی، وارد پنجره کدنویسی خواهیم شد. در این پنجره قسمتهای مشخص شده اند که کاربر کد خود را در آن جا وارد کند.
#include
// SPI functions
#include
// Alphanumeric LCD functions
#include
// Declare your global variables here
// Standard Input/Output functions
#include
#include
#include
#include
#include
#include
void uart_print(char*);
void uart_putchar(char);
uint8_t * spi_read(uint8_t,uint8_t) ;
uint8_t read_data[10];
void main(void)
{
// Declare your local variables here
uint8_t *address,checksum,gyro_ch[10],temp_ch[10];
int gyro,temperature;
float temp;
// Input/Output Ports initialization
// Port A initialization
// Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
DDRA=(0<
خروجی برنامه
نتیجه عملی راه اندازی ژایروسکوپ CRM200 توسط برد آموزشی پلاریس Polaris
نکته:
خروجی ژایروسکوپ به صورت 16 بیتی است، اما بیت 15 حاوی داده ای نمیباشد و بیت 16 نیز بیت علامت میباشد.
نوشته های مشابه
اسامی افزایشی فایل ها در SD کارت
- ارسال توسط آیدا عزیزی
- 0 دیدگاه
پروژه های AVR سری میکروکنترلر ATMEGA
- ارسال توسط حسین توانگر
- 0 دیدگاه
پروژه راه اندازی سنسور پزشکی دما MLX90614 با استفاده از مجموعه آموزشی AVR WIZARD به زبان C
- ارسال توسط زهرا احمدی
- 2 دیدگاه
پروژه راه اندازی ماژول ITG3200 توسط برد AVR Wizard
- ارسال توسط
- 0 دیدگاه
پروژه راه اندازی سنسور تشخیص رنگ TCS34725 با استفاده از مجموعه آموزشی AVR WIZARD به زبان C
- ارسال توسط
- 0 دیدگاه
پروژه راه اندازی سنسور ژیروسکوپ و شتاب سنج ICM20689 با استفاده از مجموعه آموزشی AVR WIZARD به زبان C
- ارسال توسط
- 0 دیدگاه