Снятие данных с акселерометра и их запись на флешку
- Войдите на сайт для отправки комментариев
Сб, 14/02/2015 - 20:36
Я хочу подключить подключить arduino pro mini к телефонному аккумулятору, а к pro mini картридер и гироскоп(mpu 6050) проблема оказалась с кодом я не знаю как написать код что бы все записывалось на флешку, мне нужно что бы в текстовый документ записывались ускорения по 3м осям и данные с акселерометра.Вот мой четные попытки( Помогите
Сделал так подключил гироскоп, картридер, pro, аккум. Проверяю результат карта вообще не работает. Что за бред??
#include "SD.h"
#include "Wire.h"
#include "I2Cdev.h"
#include "MPU6050.h"
MPU6050 accelgyro;
File MPUFile; // Файл в который будут записаны показания с датчика
int16_t ax, ay, az; // define accel as ax,ay,az
int16_t gx, gy, gz; // define gyro as gx,gy,gz
#define LED_PIN 13
bool blinkState = false;
void setup() {
Wire.begin(); // присоединиться к шине I2C
Serial.begin(38400); // инициализировать последовательную связь
Serial.println("Initializing I2C devices...");
accelgyro.initialize();
// проверка соединения
Serial.println("Testing device connections...");
Serial.println(accelgyro.testConnection() ? "MPU6050 connection successful" : "MPU6050 connection failed");
pinMode(LED_PIN, OUTPUT); // настроить LED pin
// Инициализируем СД карту
Serial.print("Initializing SD card...");
if (!SD.begin(4)) {
Serial.println("initialization failed!");
return;}
Serial.println("initialization done.");
// Открываем (или создаем, если его нет) файл для записи данных с датчика
MPUFile = SD.open("Test.txt", FILE_WRITE);
if (MPUFile){
// accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);
Serial.print("a/g:\t");
MPUFile.println(ax);
Serial.print("\t");
MPUFile.print(ay);
Serial.print("\t");
MPUFile.print(az);
Serial.print("\t");
MPUFile.print(gx);
Serial.print("\t");
MPUFile.print(gy);
Serial.print("\t");
MPUFile.println(gz);
// Закрываем файл:
MPUFile.close();
Serial.println("done.");
}
}
void loop() {
}
Так у вас строка получения ускорения закомментирована.не так ли?
Уберите два слеша перед строкой и пробуйте:)
А строчку я закомментировал потому что думал она не нужна, это я переделывал код который данные выдавал в ком порт
Да я теперь даже проверить не могу
Потому что у меня теперь почему то не работает карта, комп ее вообще не видит. Ни как
А стандартный скетч для карты, который показывал информацию о карте говорит вот это
Initializing SD card...Wiring is correct and a card is present.
Card type: SDHC
Could not find FAT16/FAT32 partition.
Make sure you've formatted the card
А как я ее форматирую если комп не видит ее((
Может есть какой ни будь скетчь который может форматировать карту которую я вставлю в этот карт ридер?
Форматируй Partiton Magic'ом
Ты раздел удалил на карте
Установил, она тоже не видит флешку
В компе не отображается, в диспетчере тоже, cmd list disk не показывает ее.
Защита от записи не включена случайно?
Где? Что за защита? на карте, нет
Плохо дело) с другими картами работает?
Другие флешки видит. А проблема мне кажется не в флешке. Или в карт ридере который на компе или что то в компе. Телефон эту карту видит, но долго думает с ней, очистил через телефон не помогло. На ней кстати были файлы 1.txt и систем волум инфо. Удалил все равно комп не видит
А вообще код правильный? Я просто толком не понимаю что за что отвечает. Я переделывал код который выводил данные с гироскопа в ком порт. И пытался опираясь на этот пример записать данные на флешку. Тут только датчик другой.
#include <SD.h> #include <dht.h> DHT sensor = DHT(); // Датчик температуры и влажности File sensorDataFile; // Файл в который будут записаны показания с датчика char* SENSOR_DATA_FILE_NAME = "1.txt"; // Название файла void setup() { Serial.begin(9600); // Подключаем сенсор к 0 аналоговому порту sensor.attach(A0); // Ждем готовность сенсора delay(1000); // SPI SS пин должен быть OUTPUT pinMode(10, OUTPUT); // Инициализируем СД карту Serial.print("Initializing SD card..."); if (!SD.begin(4)) { Serial.println("initialization failed!"); return; } Serial.println("initialization done."); // Открываем (или создаем, если его нет) файл для записи данных с датчика sensorDataFile = SD.open(SENSOR_DATA_FILE_NAME, FILE_WRITE); for (int i = 0; i < 10; i++) { // Проводим 10 замеров sensor.update(); // Записываем удачные результаты в файл и в порт if (sensor.getLastError() == DHT_ERROR_OK && sensorDataFile) { char msg[128]; sprintf(msg, "Current humidity = %d%% temperature = %dC", sensor.getHumidityInt(), sensor.getTemperatureInt()); Serial.println(msg); sensorDataFile.println(msg); } delay(2000); } sensorDataFile.close(); Serial.println("Finished."); } void loop() { }