Mundarija:
- 1 -qadam: Uskuna kerak:
- 2 -qadam: Uskuna ulanishi:
- 3 -qadam: Tezlikni o'lchash uchun Arduino kodi:
- 4 -qadam: Ilovalar:
Video: BMA250 va Arduino Nano yordamida tezlikni o'lchash: 4 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:24
BMA250-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13-bitli) ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2C raqamli interfeysi orqali kirish mumkin. Nishab olishda tortishish statik tezlanishini, shuningdek harakat yoki zarba natijasida dinamik tezlanishni o'lchaydi. Uning yuqori aniqligi (3,9 mg/LSB) moyillik o'zgarishlarini 1,0 ° dan past o'lchash imkonini beradi.
Ushbu qo'llanmada biz BMA250 va Arduino Nano yordamida uchta perpendikulyar o'qning tezlanishini o'lchaymiz.
1 -qadam: Uskuna kerak:
Maqsadga erishish uchun bizga kerak bo'lgan materiallar quyidagi apparat komponentlarini o'z ichiga oladi:
1. BMA250
2. Arduino Nano
3. I2C kabeli
4. Arduino Nano uchun I2C qalqoni
2 -qadam: Uskuna ulanishi:
Uskuna ulanish bo'limi asosan sensor va arduino o'rtasida zarur bo'lgan simi ulanishlarini tushuntiradi. To'g'ri ulanishni ta'minlash har qanday tizimda kerakli chiqish uchun ishlashning asosiy zarurati hisoblanadi. Shunday qilib, kerakli ulanishlar quyidagilar:
BMA250 I2C ustida ishlaydi. Sensorning har bir interfeysini qanday ulash kerakligini ko'rsatadigan simlar sxemasi.
Qutidan tashqari, taxta I2C interfeysi uchun tuzilgan, shuning uchun agar siz agnostik bo'lsangiz, biz ushbu ulanishni ishlatishni maslahat beramiz. Sizga faqat to'rtta sim kerak!
Vcc, Gnd, SCL va SDA pinlari uchun faqat to'rtta ulanish kerak va ular I2C kabeli yordamida ulangan.
Bu ulanishlar yuqoridagi rasmlarda ko'rsatilgan.
3 -qadam: Tezlikni o'lchash uchun Arduino kodi:
Endi Arduino kodidan boshlaylik.
Sensor modulini Arduino bilan ishlatganda, biz Wire.h kutubxonasini o'z ichiga olamiz. "Wire" kutubxonasida sensorlar va Arduino kartalari o'rtasidagi i2c aloqasini osonlashtiradigan funktsiyalar mavjud.
Foydalanuvchining qulayligi uchun butun Arduino kodi quyida keltirilgan:
#qo'shing
// BMA250 I2C manzili - 0x18 (24)
#aniqlang Addr 0x18
bo'sh o'rnatish ()
{
// I2C aloqasini MASTER sifatida boshlang
Wire.begin ();
// Serial aloqani ishga tushiring, bod tezligi = 9600
Serial.begin (9600);
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// diapazonni tanlash registrini tanlang
Wire.write (0x0F);
// +/- 2g oralig'ini o'rnating
Wire.write (0x03);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// tarmoqli kengligi registrini tanlang
Wire.write (0x10);
// Tarmoqli kengligini sozlash 7.81 Gts
Wire.write (0x08);
// I2C uzatishni to'xtating
Wire.endTransmission (); kechikish (300);}
bo'sh halqa ()
{
imzosiz int ma'lumotlari [0];
// I2C uzatishni boshlang
Wire.beginTransmission (Addr);
// Ma'lumotlar registrlarini tanlang (0x02 - 0x07)
Wire.write (0x02);
// I2C uzatishni to'xtating
Wire.endTransmission ();
// 6 bayt talab qiling
Wire.requestFrom (Addr, 6);
// Olti baytni o'qing
// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb
agar (Wire.available () == 6)
{
ma'lumotlar [0] = Wire.read ();
ma'lumotlar [1] = Wire.read ();
ma'lumotlar [2] = Wire.read ();
ma'lumotlar [3] = Wire.read ();
ma'lumotlar [4] = Wire.read ();
ma'lumotlar [5] = Wire.read ();
}
kechikish (300);
// Ma'lumotni 10 bitga aylantiring
float xAccl = ((ma'lumotlar [1] * 256.0) + (ma'lumotlar [0] & 0xC0)) / 64;
agar (xAccl> 511)
{
xAccl -= 1024;
}
float yAccl = ((ma'lumotlar [3] * 256.0) + (ma'lumotlar [2] & 0xC0)) / 64;
agar (yAccl> 511)
{
yAccl -= 1024;
}
float zAccl = ((ma'lumotlar [5] * 256.0) + (ma'lumotlar [4] & 0xC0)) / 64;
agar (zAccl> 511)
{
zAccl -= 1024;
}
// Ma'lumotlarni ketma -ket monitorga chiqarish
Serial.print ("X o'qida tezlashtirish:");
Serial.println (xAccl);
Serial.print ("Y o'qida tezlashtirish:");
Serial.println (yAccl);
Serial.print ("Z o'qida tezlashtirish:");
Serial.println (zAccl);
}
Tel kutubxonasida Wire.write () va Wire.read () buyruqlarni yozish va sensor chiqishini o'qish uchun ishlatiladi. Sensor chiqishini Arduino IDE ketma -ket monitorida ko'rsatish uchun Serial.print () va Serial.println () ishlatiladi.
Sensor chiqishi yuqoridagi rasmda ko'rsatilgan.
4 -qadam: Ilovalar:
BMA250 kabi akselerometrlar asosan o'yinlarda va profilni almashtirishda ishlatiladi. Ushbu sensorli modul, shuningdek, mobil ilovalar uchun quvvatni boshqarishning ilg'or tizimida ham qo'llaniladi. BMA250-bu uch fazali raqamli tezlashtirish sensori bo'lib, u aqlli chipda harakatlanuvchi uzilishlar boshqaruvchisi bilan jihozlangan.
Tavsiya:
Servo dvigatel va tezlikni boshqarish yordamida aylanadigan fanat: 6 qadam
Servo dvigatel va tezlikni boshqarish yordamida aylanadigan fanat: Ushbu qo'llanmada biz fanni servo dvigatel, potansiyometr, arduino va Visuino yordamida sozlanishi tezlik bilan aylantirishni o'rganamiz. Videoni tomosha qiling
Bluetooth boshqariladigan RC avtomobili tezlikni boshqarish va masofani o'lchash bilan: 8 qadam
Bluetooth boshqariladigan RC avtomashinasi tezlikni boshqarish va masofani o'lchash bilan: Bolaligimda men doimo RC avtomashinalarini yaxshi ko'rardim. Hozirgi vaqtda siz Arduino yordamida Bluetooth orqali boshqariladigan arzon RC avtomashinalarini o'zingiz yasash uchun ko'plab qo'llanmalarni topishingiz mumkin. Keling, yana bir qadam tashlaymiz va kinematikadagi amaliy bilimlarimizni hisob -kitob qilish uchun ishlatamiz
160A cho'tkali elektron tezlikni nazorat qilish moslamasi va servo tester yordamida DC tishli motorini qanday boshqarish mumkin: 3 qadam
160A cho'tkali elektron tezlikni nazorat qilish moslamasi va servo-sinov qurilmasi yordamida shahar tishli dvigatelini qanday boshqarish mumkin: Xususiyat: kuchlanish: 2-3S Lipo yoki 6-9 NiMH uzluksiz oqim: 35A portlash oqimi: 160A BEC: 5V / 1A, chiziqli rejim rejimi: 1. oldinga &teskari; 2. oldinga &tormoz; 3. oldinga & tormoz & teskari Og'irligi: 34g Hajmi: 42*28*17 mm
BMA250 va Raspberry Pi yordamida tezlikni o'lchash: 4 qadam
BMA250 va Raspberry Pi yordamida tezlashtirishni o'lchash: BMA250-kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13-bit) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2C raqamli interfeysi orqali kirish mumkin. Statikani o'lchaydi
BMA250 va zarracha foton yordamida tezlashtirishni o'lchash: 4 qadam
BMA250 va zarracha foton yordamida tezlashtirishni o'lchash: BMA250-bu kichik, ingichka, ultra quvvatli, 3 o'qli akselerometr, yuqori aniqlikdagi (13-bitli) o'lchami ± 16 g gacha. Raqamli chiqish ma'lumotlari 16 bitli ikkita qo'shimcha sifatida formatlangan va I2C raqamli interfeysi orqali kirish mumkin. Statikani o'lchaydi