Мазмұны:
- 1 -қадам: BMG160 шолуы
- 2 -қадам: Сізге не керек..
- 3 -қадам: Жабдықты қосу:
- 4-қадам: Java ось көмегімен 3 осьті гироскопты өлшеу:
- 5 -қадам: Өтініштер:
Бейне: Raspberry Pi көмегімен BMG160 3 осьті гироскоп сенсорының интерфейсі: 5 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:24
Қазіргі әлемде жастар мен балалардың жартысынан көбі ойынға құмар, ал ойынның техникалық аспектілеріне қызығатындардың бәрі осы саладағы қозғалысты сезудің маңыздылығын біледі. Бізді бір нәрсе таң қалдырды және оны тақтаға шығару үшін біз кез келген заттың бұрыштық жиілігін өлшейтін гироскоп сенсорымен жұмыс жасауды ойладық. Мәселен, біз тапсырманы шешуге сенсор - BMG160. BMG160-бұрыштық жиілікті үш перпендикуляр бөлме өлшемінде өлшеуге болатын 16-разрядты, цифрлық, үшсиалды гироскоп сенсоры.
Бұл оқулықта біз Raspberry pi көмегімен BMG160 жұмыс істеуін Java -ді бағдарламалау тілі ретінде көрсететін боламыз.
Бұл үшін сізге қажет жабдықтар келесідей:
1. BMG160
2. Raspberry Pi
3. I2C кабелі
4. Raspberry Pi үшін I2C қалқаны
5. Ethernet кабелі
1 -қадам: BMG160 шолуы
Ең алдымен, біз сенсорлық модульдің негізгі мүмкіндіктерімен танысқымыз келеді, ол BMG160 және ол жұмыс істейтін байланыс хаттамасы.
BMG160-бұл негізінен 16 биттік, цифрлық, үштік гироскоп сенсоры, ол бұрыштық жиілікті өлшей алады. Ол бөлменің үш перпендикуляр өлшемінде, x-, y- және z осінде бұрыштық жылдамдықтарды есептеуге және сәйкес шығыс сигналдарын беруге қабілетті. Ол I2C байланыс протоколы арқылы таңқурай pi тақтасымен байланыса алады. Бұл нақты модуль тұтынушылық қосымшаларға қойылатын талаптарды қанағаттандыруға, сондай -ақ өндірістік мақсаттарға арналған.
Сенсор жұмыс істейтін байланыс протоколы I2C болып табылады. I2C интегралды схеманы білдіреді. Бұл байланыс хаттамасы, онда байланыс SDA (сериялық деректер) және SCL (сериялық сағат) желілері арқылы жүзеге асады. Бұл бірнеше құрылғыны бір уақытта қосуға мүмкіндік береді. Бұл қарапайым және тиімді байланыс протоколдарының бірі.
2 -қадам: Сізге не керек..
Мақсатқа жету үшін бізге қажет материалдар келесі аппараттық компоненттерді қамтиды:
1. BMG160
2. Raspberry Pi
3. I2C кабелі
4. Raspberry Pi үшін I2C қалқаны
5. Ethernet кабелі
3 -қадам: Жабдықты қосу:
Аппаратты қосу бөлімі негізінен сенсор мен таңқурай пи арасындағы қажетті сымдық қосылыстарды түсіндіреді. Қажетті шығыс үшін кез келген жүйеде жұмыс істеу кезінде дұрыс қосылуды қамтамасыз ету - бұл негізгі қажеттілік. Сонымен, қажетті байланыстар келесідей:
BMG160 I2C режимінде жұмыс істейді. Датчиктің әр интерфейсін қалай қосуға болатынын көрсететін электр схемасының мысалы.
Қаптамадан тыс тақта I2C интерфейсі үшін конфигурацияланған, сондықтан егер сіз агностикалық болмасаңыз, осы қосылымды пайдалануды ұсынамыз. Сізге тек төрт сым қажет!
Vcc, Gnd, SCL және SDA түйреуіштеріне тек төрт қосылым қажет және олар I2C кабелінің көмегімен қосылған.
Бұл байланыстар жоғарыдағы суреттерде көрсетілген.
4-қадам: Java ось көмегімен 3 осьті гироскопты өлшеу:
Таңқурай пиін қолданудың артықшылығы - бұл сенсорды интерфейске қосу үшін тақтаны бағдарламалайтын тілдің икемділігін қамтамасыз етеді. Бұл тақтаның артықшылығын пайдаланып, біз оның Java -дағы бағдарламалауын көрсетеміз. BMG160 үшін Java кодын біздің github қауымдастығынан жүктеуге болады, бұл Dcube Store қауымдастығы.
Қолданушылардың ыңғайлылығы үшін біз кодты осында түсіндіреміз: кодтаудың бірінші қадамы ретінде java жағдайында pi4j кітапханасын жүктеу қажет, себебі бұл кітапхана кодта қолданылатын функцияларды қолдайды. Сонымен, кітапхананы жүктеу үшін келесі сілтемеге кіруге болады:
pi4j.com/install.html
Сіз осы сенсордың жұмыс істейтін java кодын мына жерден көшіре аласыз:
com.pi4j.io.i2c. I2CBus импорттау;
com.pi4j.io.i2c. I2CDevice импорттау;
com.pi4j.io.i2c. I2CFactory импорттау;
java.io. IOException импорттау;
BMG160 қоғамдық класы
{
public static void main (String args ) Ерекшеліктерді шығарады
{
// I2C шинасын жасаңыз
I2CBus шинасы = I2CFactory.getInstance (I2CBus. BUS_1);
// I2C құрылғысын алыңыз, BMG160 I2C мекенжайы 0x68 (104)
I2CDevice құрылғысы = bus.getDevice (0x68);
// диапазон регистрін таңдаңыз
// Толық ауқымды диапазонды конфигурациялау, 2000 нүкте/ сек
device.write (0x0F, (байт) 0x80);
// өткізу жолағының регистрін таңдаңыз
// өткізу қабілеті 200 Гц
device.write (0x10, (байт) 0x04);
Thread.sleep (500);
// 6 байт деректерді оқу
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
байт деректер = жаңа байт [6];
device.read (0x02, деректер, 0, 6);
// Деректерді түрлендіру
int xGyro = ((деректер [1] & 0xFF) * 256 + (деректер [0] & 0xFF));
егер (xGyro> 32767)
{
xGyro -= 65536;
}
int yGyro = ((деректер [3] & 0xFF) * 256 + (деректер [2] & 0xFF));
егер (yGyro> 32767)
{
yGyro -= 65536;
}
int zGyro = ((деректер [5] & 0xFF) * 256 + (деректер [4] & 0xFF));
егер (zGyro> 32767)
{
zGyro -= 65536;
}
// Деректерді экранға шығару
System.out.printf («Айналудың осі: %d %n», xGyro);
System.out.printf («Y-айналу осі: %d %n», yGyro);
System.out.printf («Z-айналу осі: %d %n», zGyro);
}
}
Сенсор мен тақта арасындағы i2c байланысын жеңілдететін кітапхана pi4j, оның әр түрлі пакеттері I2CBus, I2CDevice және I2CFactory байланыс орнатуға көмектеседі.
com.pi4j.io.i2c. I2CBus импорттау; com.pi4j.io.i2c. I2CD құрылғыны импорттау; com.pi4j.io.i2c. I2CFactory импорттау; java.io. IOException импорттау;
Кодтың бұл бөлігі сенсорды write () функциясының көмегімен тиісті командаларды жазу арқылы бұрыштық жиілікті өлшеуге мәжбүр етеді, содан кейін деректер read () функциясы арқылы оқылады.
// Ауқым регистрін таңдау // Толық масштабты ауқымын конфигурациялау, 2000 dps device.write (0x0F, (байт) 0x80); // Өткізу регистрін таңдау // Өткізу қабілеті 200 Гц құрылғы.жазу (0x10, (байт) 0x04); Thread.sleep (500);
// 6 байт деректерді оқу
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb байт деректер = жаңа байт [6]; device.read (0x02, деректер, 0, 6);
Сенсордан алынған мәліметтер келесі жолмен сәйкес форматқа түрлендіріледі:
int xGyro = ((деректер [1] & 0xFF) * 256 + (деректер [0] & 0xFF)); егер (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((деректер [3] & 0xFF) * 256 + (деректер [2] & 0xFF)); егер (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((деректер [5] & 0xFF) * 256 + (деректер [4] & 0xFF)); егер (zGyro> 32767) {zGyro -= 65536; }
Шығару System.out.println () функциясы арқылы келесі форматта басып шығарылады.
System.out.println («Айналудың осі: %d %n», xGyro); System.out.println («Y-айналу осі: %d %n», yGyro); System.out.println («Z-айналу осі: %d %n», zGyro);
Сенсордың шығысы жоғарыдағы суретте көрсетілген.
5 -қадам: Өтініштер:
BMG160 ұялы телефондар, адамның машиналық интерфейсі сияқты құрылғыларда әр түрлі қосымшаларға ие. Бұл сенсорлық модуль суретті тұрақтандыру (DSC және камера-телефон), ойын және меңзегіш құрылғылар сияқты тұтынушылардың қосымшаларына қойылатын талаптарды қанағаттандыруға арналған. Ол сонымен қатар ыммен тануды қажет ететін жүйелерде және ішкі навигацияда қолданылатын жүйелерде қолданылады.
Ұсынылған:
BMG160 3 осьті гироскоп сенсорының Arduino Nano көмегімен интерфейсі: 5 қадам
BMG160 3 осьті гироскоп сенсорының Ардуино Наномен байланысы: Қазіргі әлемде жастар мен балалардың жартысынан көбі ойынға құмар, ал ойынның техникалық аспектілеріне қызығатындардың бәрі қозғалысты сезудің маңыздылығын біледі. осы доменде. Бізді бір нәрсе таң қалдырды
Arduino көмегімен HMC5883L компас сенсорының интерфейсі бойынша нұсқаулық: 10 қадам (суреттермен)
HMC5883L компас сенсорының Arduino интерфейсіне арналған нұсқаулық: Сипаттама нүктесіндегі магнит өрісі
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: 6 қадам
Raspberry Pi және LIS3DHTR көмегімен қозғалысты басқару, 3 осьті акселерометр, Python көмегімен: Сұлулық бізді қоршап тұрады, бірақ әдетте оны білу үшін біз бақта серуендеуіміз керек. - Біз білетін топ ретінде біз энергияның көп бөлігін компьютерлер мен ұялы телефондардың алдында жұмыс істеуге жұмсаймыз. Сондықтан біз өз денсаулығымызға жиі рұқсат береміз
BMG160 3 осьті гироскоп сенсорының бөлшектермен байланысы: 5 қадам
BMG160 3 осьті гироскоп сенсорының бөлшектермен байланысы: Қазіргі әлемде жастар мен балалардың жартысынан көбі ойынға құмар, ал ойынның техникалық аспектілеріне қызығатындардың бәрі қозғалысты сезудің маңыздылығын біледі. бұл домен. Бізді бір нәрсе таң қалдырды
GY-521 MPU6050 3 осьті үдеткіш гироскоп 6DOF модулінің оқулығы: 4 қадам
GY-521 MPU6050 3 осьтік үдеткіш гироскоп 6DOF модульінің оқулығы: Сипаттама Бұл қарапайым модуль Arduino мен басқа контроллерлерге I2C арқылы қосылу үшін қажет нәрсені қамтиды (Wire Arduino кітапханасын қолданыңыз) және 3 ось-X, Y және Z үшін қозғалысты сезу ақпаратын береді. Акселерометр диапазоны: ± 2, ±