Hirdetés
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Teasüti
nagyúr
MPU6050 lelkivilágához ért itt vki?
Átnyálaztam magam ezen, mellé felcsaptam még ezt is.
Viszont akad pár kérdésem, amit nem értek, infót neten nem találtam, a program és a kézikönyv nem tárgyalja.
Pl. a FIFO olvasása és írása hogy működik?
Van egy FIFO_R_W regiszterem, de ez csak egyetlen bájt az 1024-ből. Szóval ezt miként használja a modul? Az olvasás gondolom úgy megy, mint a 60 KB soros puffer esetén, hogy a kiolvasott adat helyére a sorban következő kerül míg ki nem ürül a FIFO. Így van?
Viszont az írás teljesen ködös, egyáltalán mit és miért kéne ebbe írni kívülről az adatbusz felől?Aztán ott van a low pass filter és a sample rate.
Ha jól értem a kézikönyvet, akkor a chip a mintavételi frekinél alacsonyabb szűrő frekivel írja ki a szűrt értéket a regiszterbe.
Viszont ennek látszólag ellenmond az alábbi kód:// Configure MPU6050 gyro and accelerometer for bias calculation
writeByte(MPU6050_ADDRESS, CONFIG, 0x01); // Set low-pass filter to 188 Hz
writeByte(MPU6050_ADDRESS, SMPLRT_DIV, 0x00); // Set sample rate to 1 kHz
writeByte(MPU6050_ADDRESS, GYRO_CONFIG, 0x00); // Set gyro full-scale to 250 degrees per second, maximum sensitivity
writeByte(MPU6050_ADDRESS, ACCEL_CONFIG, 0x00); // Set accelerometer full-scale to 2 g, maximum sensitivity
uint16_t gyrosensitivity = 131; // = 131 LSB/degrees/sec
uint16_t accelsensitivity = 16384; // = 16384 LSB/g
// Configure FIFO to capture accelerometer and gyro data for bias calculation
writeByte(MPU6050_ADDRESS, USER_CTRL, 0x40); // Enable FIFO
writeByte(MPU6050_ADDRESS, FIFO_EN, 0x78); // Enable gyro and accelerometer sensors for FIFO (max size 1024 bytes in MPU-6050)
delay(80); // accumulate 80 samples in 80 milliseconds = 960 bytesTehát 80 ms-et vár, ami e szerint 80 minta (1 kHz). Viszont feljebb meg 188 Hz-es lowpass van beállítva, szóval ezt nem értem.
A célom az volna, hogy egy tetszőleges lowpass frekvencián megtöltsem a FIFO-t a gyorsulásérzékelő adataival, majd ezt burst read módban kiolvasni relatíve ritkán, hogy a fő programomat ne lassítsa be a 200 hz-es I2C olvasás szerencsétlen Uno-n. E helyett mondjuk a megengedhető legnagyobb késleltetéssel végezni egyetlen I2C műveletet a teljes FIFO puffert kiemelve, majd matekozni.
Ehhez talán interrupt se fog kelleni, max flag-ként.
Illetve azon fílózom még, hogy ha overflow interrupt-ot választok, akkor a FIFO eleje már felülírodott, mire jön a jel? Mert tök jó lenne úgy időzíteni a burst read-et is, hogy teli puffernél olvasson.szerk: illetve továbbra se tudok interrupt-ban I2C műveletet végezni. Ez normális?
Köszi!

Új hozzászólás Aktív témák
- Azonnali informatikai kérdések órája
- Fujifilm X
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Motorola Edge 70 - többért kevesebbet
- Call of Duty: Black Ops 7
- Spórolós topik
- RETRO beárazás (mobil, PC, konzol)
- Azonnali alaplapos kérdések órája
- sh4d0w: StarWars: Felismerés
- Router gondok
- További aktív témák...
- BESZÁMÍTÁS! 4TB Western Digital Purple SATA HDD meghajtó garanciával hibátlan működéssel
- Xiaomi 14T Pro 5G 512GB, Kártyafüggetlen, 1 Év Garanciával
- Xiaomi Redmi Pad SE 64GB, Kártyafüggetlen, 1 Év Garanciaval
- AKCIÓ! Apple Macbook Pro 16" 2019 i7 16GB 500GB 5300M 4GB macbook garanciával hibátlan működés
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA -Kártyafüggetlen, MS3889, 100% Akksi
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

ekkold

