Size: a a a

2019 January 19

SR

Sergio Ramazotti in ARDUINO [RU]
Alfred Shulz
Да. Повтыкал - повыдергивал провода, в итоге: без датчика в порте просто будут рандомные координаты, с датчиком все стопорится
Может он не отвечает, а код коряво написан.кидай скетч
источник

AS

Alfred Shulz in ARDUINO [RU]
Alfred Shulz:
#include <Wire.h>
#include "Kalman.h"
Kalman kalmanX;
Kalman kalmanY;
uint8_t IMUAddress = 0x68;
/* IMU Data */
int16_t accX;
int16_t accY;
int16_t accZ;
int16_t tempRaw;
int16_t gyroX;
int16_t gyroY;
int16_t gyroZ;
double accXangle; // Angle calculate using the accelerometer
double accYangle;
double temp;
double gyroXangle = 180; // Angle calculate using the gyro
double gyroYangle = 180;
double compAngleX = 180; // Calculate the angle using a Kalman filter
double compAngleY = 180;
double kalAngleX; // Calculate the angle using a Kalman filter
double kalAngleY;
uint32_t timer;
void setup() {
 Wire.begin();
 Serial.begin(9600);
 i2cWrite(0x6B,0x00); // Disable sleep mode      
 kalmanX.setAngle(180); // Set starting angle
 kalmanY.setAngle(180);
 timer = micros();
}
void loop() {
 /* Update all the values */
 uint8_t* data = i2cRead(0x3B,14);
 accX = ((data[0] << 8) | data[1]);
 accY = ((data[2] << 8) | data[3]);
 accZ = ((data[4] << 8) | data[5]);
 tempRaw = ((data[6] << 8) | data[7]);
 gyroX = ((data[8] << 8) | data[9]);
 gyroY = ((data[10] << 8) | data[11]);
 gyroZ = ((data[12] << 8) | data[13]);
 /* Calculate the angls based on the different sensors and algorithm */
 accYangle = (atan2(accX,accZ)+PI)*RAD_TO_DEG;
 accXangle = (atan2(accY,accZ)+PI)*RAD_TO_DEG;  
 double gyroXrate = (double)gyroX/131.0;
 double gyroYrate = -((double)gyroY/131.0);
 gyroXangle += kalmanX.getRate()*((double)(micros()-timer)/1000000); // Calculate gyro angle using the unbiased rate
 gyroYangle += kalmanY.getRate()*((double)(micros()-timer)/1000000);
 kalAngleX = kalmanX.getAngle(accXangle, gyroXrate, (double)(micros()-timer)/1000000); // Calculate the angle using a Kalman filter
 kalAngleY = kalmanY.getAngle(accYangle, gyroYrate, (double)(micros()-timer)/1000000);
 timer = micros();
Serial.println();
   Serial.print("X:");
   Serial.print(kalAngleX,0);
   Serial.print(" ");
   Serial.print("Y:");
   Serial.print(kalAngleY,0);
   Serial.println(" ");
 // The accelerometer's maximum samples rate is 1kHz
}
void i2cWrite(uint8_t registerAddress, uint8_t data){
 Wire.beginTransmission(IMUAddress);
 Wire.write(registerAddress);
 Wire.write(data);
 Wire.endTransmission(); // Send stop
}
uint8_t* i2cRead(uint8_t registerAddress, uint8_t nbytes) {
 uint8_t data[nbytes];
 Wire.beginTransmission(IMUAddress);
 Wire.write(registerAddress);
 Wire.endTransmission(false); // Don't release the bus
 Wire.requestFrom(IMUAddress, nbytes); // Send a repeated start and then release the bus after reading
 for(uint8_t i = 0; i < nbytes; i++)
   data [i]= Wire.read();
 return data;
}


Вот собственно скетч
библиотеки все подключил
источник

SR

Sergio Ramazotti in ARDUINO [RU]
Функция i2cread скорее всего виснет в цикле фор ибо не может прочитать датчик.он рассчитан на 5 вольтовые сигналы? Можно фото ваших проводов
источник

SR

Sergio Ramazotti in ARDUINO [RU]
Всего барахла которое пытаетесь запустить 😊
источник

AS

Alfred Shulz in ARDUINO [RU]
Могу схему из гугла скинуть, по которой собирал
источник

AS

Alfred Shulz in ARDUINO [RU]
Вот собственно
источник
2019 January 22

ПБ

Павел Байкалов in ARDUINO [RU]
Привет, друзья! Я бесконечно далек от физики и электроники в целом.  Но хочу попробовать устранить пробел.  Подскажите с чего начать.  С гуглом знаком, но может есть какой-то системный учебник или просто хорошая книга?  У меня есть UNO, три моторчика  и ещё что-то по мелочи.
источник

EG

Eduard Gilmutdinov (edgi) in ARDUINO [RU]
Павел Байкалов
Привет, друзья! Я бесконечно далек от физики и электроники в целом.  Но хочу попробовать устранить пробел.  Подскажите с чего начать.  С гуглом знаком, но может есть какой-то системный учебник или просто хорошая книга?  У меня есть UNO, три моторчика  и ещё что-то по мелочи.
привет. самое наверно простое это видео от джереми блума https://www.youtube.com/watch?v=bO_jN0Lpz3Q&t=457s  в переводе амперки.
источник

ПБ

Павел Байкалов in ARDUINO [RU]
Про ютуб не подумал. Сейчас ознакомлюсь.  Спасибо.
источник

AS

Alfred Shulz in ARDUINO [RU]
Sergio Ramazotti
Всего барахла которое пытаетесь запустить 😊
Такс, на работе пропадал. Сейчас скину
источник

AS

Alfred Shulz in ARDUINO [RU]
источник

AS

Alfred Shulz in ARDUINO [RU]
источник

AS

Alfred Shulz in ARDUINO [RU]
Сопсно, это все
С питанием на 3.3. и на 5 V все одинаково(
источник

А

Артем in ARDUINO [RU]
Павел Байкалов
Привет, друзья! Я бесконечно далек от физики и электроники в целом.  Но хочу попробовать устранить пробел.  Подскажите с чего начать.  С гуглом знаком, но может есть какой-то системный учебник или просто хорошая книга?  У меня есть UNO, три моторчика  и ещё что-то по мелочи.
источник

А

Артем in ARDUINO [RU]
Тоже от Джереми Блума
источник

А

Артем in ARDUINO [RU]
И еще одна книга
источник

А

Артем in ARDUINO [RU]
источник

А

Артем in ARDUINO [RU]
Можно еще на амперке поискать, если недостаточно
источник
2019 January 25

AF

Alex Frankov in ARDUINO [RU]
источник

AF

Alex Frankov in ARDUINO [RU]
Почему иногда показатели жестко меняються
источник