Продукция Eagle Tree Systems весьма популярна во всем мире среди любителей полетать. Логгер , OSD и куча всяких датчиков, весьма полезные вещи в RC хозяйстве. На сайте Eagle Tree имеется инструкция по использованию датчиков G-Force, Airspeed, AltimeterV4 и AltimeterV3 в самодельных системах.
У меня есть альтиметр V4 и GPS Expander. Я цепляю их к Multiwii , к MinimOsd с немного измененной прошивкой Diy osd (MAX7456version) и вообще. С GPS Expander никаках проблем, это просто MTK 3329, подключаем к чему угодно по протоколу NMEA, скорость 38400. Еще есть PowerPanel LCD Display, тоже можно цеплять к чему угодно (ардуино например) по протоколу I2C.
А что еще можно использовать из продукции Eagle Tree?
Guardian Stabilization Expander for osd-Pro.
Сразу понятно, что этот девайс подключается на шину I2C, как и остальные (кроме GPS) датчики. Давайте посмотрим, что передается по шине. Берем arduino, делаем простейший анализатор I2C, получаем картинку.
По адресу 60h пишется 07h, потом запрос на получение четырех байт. Что-то знакомое? Очень похоже на описание обмена из инструкции Eagle Tree. Набросаем ардуино программку и посмотрим.
#include <Wire.h>
void setup()
{
Serial.begin(9600);
Wire.begin();
}
byte dataarr[6];
void loop()
{
float pitch;
float roll;
read_sensor();
pitch = (256 * dataarr[1] + dataarr[0])/10.0;
Serial.print("pitch ");
Serial.print(pitch);
Serial.print(" roll ");
roll = (256 * dataarr[3] + dataarr[2])/10.0;
Serial.println(roll);
Serial.print(" ");
delay(100);
}
int read_sensor()
{
int i;
Wire.beginTransmission(0x60);
Wire.write(0x07);
Wire.endTransmission();
Wire.beginTransmission(0x60);
Wire.requestFrom(0x60,4);
for (i=0;i<4;i++)
{
if (Wire.available())
{
dataarr[i] = Wire.read();
}
}
Wire.endTransmission();
}
Загружаем, включаем и открываем Serial monitor. Крутим-вертим гуардиан. Смотрим на экран и видим, что там выходят Roll (крен) и Pitch (тангаж) в градусах, с точность до десятых. Еще крутим-вертим и видим, что Roll диапазон -180.0 / 0 / +180.0 градусов, Pitch 0 / -90.0 / 0 /+90.0 / 0 градусов.
Простой обмен, данные сразу в градусах. Можем делать стабилизатор или выводить искусственный горизонт на OSD или еще чего.
Guardian 2D/3D Stabilizer.
У этого девайса есть таинственный разъем, рядом с USB. В мануале о нем написано, что «Accessory (Data) Port – this port is for future expansion, and is not used presently. Please let us know how we should use this port! ». Типа сейчас не используется, присылайте пожелания. Или уже используется?
Прошивка девайса V1.19. На разъеме четыре контакта. Путем прозвонки определяем, что на разъеме имеются : питание (похоже через диод) , общий и два сигнальных. I2C?
Подключаемся, делаем опрос шины, определяем адрес I2C как 63h. Берем программу выше, считываем четыре байта, есть данные. Считываем шесть байт, есть данные. Дальше ничего не считывается.
Крутим-вертим и получаем то же , что и у предыдущего испытуемого + ось Z. Pitch 0 / -90.0 / 0 /+90.0 / 0 градусов, Roll -180.0 / 0 / +180.0 градусов и Yaw, но не градусы, ускорение по оси Z. Думаю, что диапазон как у датчика в G-Force, то есть сотые g. Из мануала - «G-Force Microsensors return signed centi-g (hundredths of g) readings for X, Y and Z .. at least +/-7g in the Z axis».
Я не пробовал, но может быть, если подключить этот стабилизатор в Eagle Tree систему, то может он будет работать как датчик для искусственного горизонта. Хотя, может в следующей прошивке все поменяется. Есть вполне логичное предложение, что бы к этому порту подключать датчик скорости. Будем посмотреть….
Alex K.
26 августа 2013 г.