Прошу помощи...

Яковлевич
Offline
Зарегистрирован: 18.01.2019
Заранее прошу извинить меня, если влез не туда....
Всем доброго дня.
Извините пенсионера, что своим письмом, отнимаю Ваше драгоценное время.
Возникла проблема с познаниями в области "Arduino", просмотрев и изучив кучу материала....Увы, результатов нет. Видно новому поколению, подобные вещи ближе и понятнее.
Неоходимо собрать прибор, на основе гироскопа   MPU-6050 , чтобы можно было контролировать плоскость по двум координатам, размеры стола 300х300 мм. с выводом информации на индикатор, в цифровой или аналоговой форме.
Приобретено:
1. Плата гироскопа
2. Плата индикации
3. Плата управления.
Честно скажу, одну плату угробил, вторая...что-то с микроконтролёром, информацию не пишет.
ПРОШУ ПОМОЩИ! Выручайте, как собрать и написать программу? Буду благодарен любой информации и помощи. Готов заказать, готовый прибор или программу.
С Уважением, Александр Яковлевич.
E-mail:  A.Verbakh@yandex.ru
asam
asam аватар
Offline
Зарегистрирован: 12.12.2018

Посмотрите здесь - https://circuitdigest.com/microcontroller-projects/mpu6050-gyro-sensor-interfacing-with-arduino

А еще лучше - опишите вашу задачу (что значит "контролировать стол") по подробнее. Может вам лучше какое другое решение подойдет. Например на основе акселерометра.

karamzin01
Offline
Зарегистрирован: 08.03.2018

привет. р е а л и з у е м о - maslachenko767@mail.ru , консультации, подбор компонентов бесплатно, гарантии

Яковлевич
Offline
Зарегистрирован: 18.01.2019
Постараюсь подробнее описать задачу.
Лучшим примером будет хозяйка на кухне, которая печёт блины. 
Чтобы блинчики были тонкими, она наливает основу и крутит сковородку вокруг оси, при этом вся плоскость заполняется.
У меня возможности крутить матрицу нет. Рабочий стол, это съёмная матрица. Да и материалом является расплавленный металл. Мне необходимо выставить по двум координатам матрицу, по Х и поY и проконтролировать на дисплее. 
Устанавливаю в центр матрицы гироскоп, выставленный по нулям и контролирую. 
Если есть какие мысли или возможность по другому решить эту проблему, готов выслушать.
sadman41
Онлайн
Зарегистрирован: 19.10.2016

Гироскоп постоянно установлен или временно ставится?

Яковлевич
Offline
Зарегистрирован: 18.01.2019

            Модуль гироскопа могу установить постоянно, могу сделать съёмным. Что изменится от этого?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Ну, вот у меня, к примеру, в смартфоне есть гироскоп и приложение для него. Когда по рукой уровня нет - я аппарат кладу на плоскость и отравниваю. Ничего колхозить не надо.

Яковлевич
Offline
Зарегистрирован: 18.01.2019

               Проблема в другом. Матрица находится на высоте 2.30 см. Проще сделать выносной дисплей. Для регулировки плоскости стоят механические регулируемые тяги.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

С такими высотами (длинами проводников) у вас могут быть проблемы и без какого-либо скетча... Думаю, что без чертежа конструктива не стоит начинать работу над скетчем.

Яковлевич
Offline
Зарегистрирован: 18.01.2019

          Управление цифровое, программа видит цифру - 0 и 1. При длине проводов до 2.0 м. от гироскопа до платы управления, даже емкостных связей кот наплакал, плюс поместить кабель сигнальный в экран. Это объяснено в справочных данных для Arduino...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Споров о длине проводников внутрисхемной шины i2c на форуме было достаточно. Протокол этот помехонезащищенный. А тут имеем еще и неизвестные производственные условия. Думаю, что подводных камней в изобилии и схему надо проработать тщательней.

Ну это я так. Просто хотел предложить альтернативный вариант использования готового девайса - смартфона.

Яковлевич
Offline
Зарегистрирован: 18.01.2019

                     Два года назад, смартфон не стал приобретать...,а вот два цифровых угломера китайских прицепил. Неудобство огромное, ставим лестницу, настраиваем и т.д. Решил вынести табло. Разобрал китайцев, а у них ЧИП гпроскопа, на плате залит компаутом. Вот и пришло решение изменить ситуацию...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

В данном случае лично я бы добавил сюда еще один МК и связал измерительную часть и индикаторную протоколом с... CRC, например. Была бы хоть какой-то способ минимизировать получение недостоверных показаний. Или, как вариант, присобачил большие сегментные LED-индикаторы к площадке, где располагается измеритель. Так, чтобы за 2 метра было видно.

Яковлевич
Offline
Зарегистрирован: 18.01.2019

                    Гироскоп и плату управления в один корпус, а плату индикации вынести до 2.0 метров....так возможно решить данную задачу?

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Тоже так себе вариант, по моему мнению. Даже проводов тащить больше. Дополнительный мк надёжней. Между ними уже можно будет всякие физ-интерфейсы наворачивать (типа rs-485), если уж совсем будет плохо.

rst
Offline
Зарегистрирован: 25.06.2018

Яковлевич пишет:
Устанавливаю в центр матрицы гироскоп, выставленный по нулям и контролирую.

Расплавленный металл (это сколько градусов? или это всё-таки - ртуть? ;) и гироскоп с алиэкспресса + ещё абдурина/LCD оттуда же с коммерческим диапазоном температур 0..+40C (да и гироскоп не факт что Industrial хотя-бы)... Да ещё в жёстких пром. условиях с кучей ЭМ-помех от соседнего оборудования, вибрациями, ударами, агрессивной средой (пыль (металлическая?), влага, химически активные вещества, ....). ну-ну...

Интересно - почему никто не пытается строить многоэтажные высотки из детского конструктора из пластмассовых кубиков???

 

PS: Приварить к этому самому столу для печки блинов жёсткую штангу подлиннее - чтоб вынести датчик за пределы брызг металла и жара. К датчику рядом как можно ближе посадить МК с RF-интерфейсом. И всё это залить жаростойким компаундом. Да и комплектацию купить - как минимум Industrial исполнения.

Тогда может быть и взлетит.

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Да и с точностью непонятно... Мошт там обычный пузырёк на длинной штанге подойдёт ))

AlexanderNO
Offline
Зарегистрирован: 08.11.2018

Из альтернативных: лазерный нивелир https://www.youtube.com/watch?v=3Caq8dM4_no

Можно с помощью зеркала и фонаря. Но чтобы предлагать нужно знать как всё расположено, можно ли что-нибуль закрепить на потолке и/или стенах и пр.

rst
Offline
Зарегистрирован: 25.06.2018

Во! Только хотел написать про удалённый лазерный уровнемер и опередили....

Ещё можно над УЗ-датчиком подумать - облучать им 3 точки в 3-х углах стола. А сам датчик - за пределами агрессивной зоны.

Яковлевич
Offline
Зарегистрирован: 18.01.2019

              Прошу прощения, у всех участников форума...Но, давайте поступим проще. Обсуждение затягивается и меняет тему.

  Есть в наличии платы. Прошу просто о помощи, как тупо соеденить это всё в единный блок и написать программу.

  Техническую часть буду решать после.  Пусть это расценивается как заказ, который будет оплачен.

   Если кто готов собрать это в кучу, готов обсудить любые предложения.

   E-mail:  A.Verbakh@yandex.ru

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Яковлевич, Вы пытаетесь решить задачу не с того конца.

Если надо просто "соединить детали", - скрутите их синей изолентой.

А если хотите добиться некоторой функциональности, то начинать нужно именно с ее подробного описания. Потом задать конкретные характеристики (диапазоны, допуски...) И только потом подбирать комплектующие.

Набор комплектующих не может служить отправной точкой в проекте (исключение - см. выше о синей изоленте).

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Тем более, что и код и схема даны в ответе #1

Яковлевич
Offline
Зарегистрирован: 18.01.2019

    Благодарю за мудрый совет, изоленту приобрету...

По поводу функциональности, почти четыре месяца проб и ошибок и проверено куча информации. Думаю, дальше двигаться в этом направлении, нет смысла.

Хотя, это и дало толчок, обратиться к специалистам. Но, увы...именно по рекомендации спецов, приобретал блоки и изучал матчасть. Жаль только одного, потеренного времени.

Извините за отнятое время...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Яковлевич пишет:

Хотя, это и дало толчок, обратиться к специалистам. Но, увы...именно по рекомендации спецов, приобретал блоки и изучал матчасть. Жаль только одного, потеренного времени.

Извините за отнятое время...

Что вам мешает воспользоваться приведённой выше ссылкой? 

Яковлевич
Offline
Зарегистрирован: 18.01.2019

          Благодарю за совет... буду пробовать.

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

sadman41 пишет:

Яковлевич пишет:

Хотя, это и дало толчок, обратиться к специалистам. Но, увы...именно по рекомендации спецов, приобретал блоки и изучал матчасть. Жаль только одного, потеренного времени.

Извините за отнятое время...

Что вам мешает воспользоваться приведённой выше ссылкой? 

А вы попробуйта сами загрузить программу из той ссылки и всё поймёте. 

Яковлевич
Offline
Зарегистрирован: 18.01.2019

        Ребят, не буду много говорить....

  У меня, на данный момент скорость интернета 45-80 кбит\с. Указанную ссылку, качаю без малого 48 минут.

 Других вариантов нет...

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Gas311 пишет:

А вы попробуйта сами загрузить программу из той ссылки и всё поймёте. 

Что я тут должен увидеть?
 
-------------------------
Sketch uses 10686 bytes (33%) of program storage space. Maximum is 32256 bytes.
Global variables use 778 bytes (37%) of dynamic memory, leaving 1270 bytes for local variables. Maximum is 2048 bytes.
-------------------------
 

 

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

sadman41 пишет:

Gas311 пишет:

А вы попробуйта сами загрузить программу из той ссылки и всё поймёте. 

Что я тут должен увидеть?
 
-------------------------
Sketch uses 10686 bytes (33%) of program storage space. Maximum is 32256 bytes.
Global variables use 778 bytes (37%) of dynamic memory, leaving 1270 bytes for local variables. Maximum is 2048 bytes.
-------------------------
 

 

Ну да, если смотреть на размер файла, то ничего. 

ua6em
ua6em аватар
Онлайн
Зарегистрирован: 17.08.2016

Яковлевич пишет:

        Ребят, не буду много говорить....

  У меня, на данный момент скорость интернета 45-80 кбит\с. Указанную ссылку, качаю без малого 48 минут.

 Других вариантов нет...



#include<LiquidCrystal.h>
LiquidCrystal lcd(8,9,10,11,12,13);
#include <Wire.h>
#include <MPU6050.h>

#define period 10000

MPU6050 mpu;

int count=0;
char okFlag=0;

byte degree[8] = {
  0b00000,
  0b00110,
  0b01111,
  0b00110,
  0b00000,
  0b00000,
  0b00000,
  0b00000
};

void setup() 
{
  lcd.begin(16,2);
  lcd.createChar(0, degree);
  Serial.begin(9600);
  Serial.println("Initialize MPU6050");
  while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
  {
    lcd.clear();
    lcd.print("Device not Found");
    Serial.println("Could not find a valid MPU6050 sensor, check wiring!");
    delay(500);
  }
  count=0;

  mpu.calibrateGyro();
  mpu.setThreshold(3);
  
  lcd.clear();
  lcd.print("MPU6050 Interface");
  lcd.setCursor(0,1);
  lcd.print(" Circuit Digest");
  delay(2000);
  lcd.clear();
}

void loop()
{
    lcd.clear();
    lcd.print("Temperature");
    long st=millis();
    Serial.println("Temperature");
    while(millis()<st+period)
    {
      lcd.setCursor(0,1);
      tempShow();
    }
    
    lcd.clear();
    lcd.print("Gyro");
    delay(2000);
    st=millis();
    Serial.println("Gyro");
    while(millis()<st+period)
    {
      lcd.setCursor(0,1);
      gyroShow();
    }

    lcd.clear();
    lcd.print("Accelerometer");
    delay(2000);
    st=millis();
    Serial.println("Accelerometer");
    while(millis()<st+period)
    {
      lcd.setCursor(0,1);
      accelShow();
    }
}

void tempShow()
{
    float temp = mpu.readTemperature();
    Serial.print(" Temp = ");
    Serial.print(temp);
    Serial.println(" *C");
    lcd.clear();
    lcd.print("Temperature");
    lcd.setCursor(0,1);
    lcd.print(temp);
    lcd.write((byte)0);
    lcd.print("C");
    delay(400);
}

void gyroShow()
{
  //lcd.setCursor(0,0);
  lcd.clear();
  lcd.print(" X     Y     Z");
  Vector rawGyro = mpu.readRawGyro();
  Vector normGyro = mpu.readNormalizeGyro();
  lcd.setCursor(0,1);
  lcd.print(normGyro.XAxis,1);
  lcd.setCursor(6,1);
  lcd.print(normGyro.YAxis,1);
  lcd.setCursor(12,1);
  lcd.print(normGyro.ZAxis,1);
  Serial.print(" Xnorm = ");
  Serial.print(normGyro.XAxis);
  Serial.print(" Ynorm = ");
  Serial.print(normGyro.YAxis);
  Serial.print(" Znorm = ");
  Serial.println(normGyro.ZAxis);
  delay(200);
}

void accelShow()
{
 // lcd.setCursor(0,0);
  lcd.clear();
  lcd.print(" X     Y     Z");
  Vector rawAccel = mpu.readRawAccel();
  Vector normAccel = mpu.readNormalizeAccel();
  lcd.setCursor(0,1);
  lcd.print(normAccel.XAxis,1);
  lcd.setCursor(6,1);
  lcd.print(normAccel.YAxis,1);
  lcd.setCursor(12,1);
  lcd.print(normAccel.ZAxis,1);
  Serial.print(" Xnorm = ");
  Serial.print(normAccel.XAxis);
  Serial.print(" Ynorm = ");
  Serial.print(normAccel.YAxis);
  Serial.print(" Znorm = ");
  Serial.println(normAccel.ZAxis);
  delay(200);
}

 

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Gas311 пишет:

Ну да, если смотреть на размер файла, то ничего. 

Ну, и? Не работает скетч, не выводит углы или что? 

Gas311
Gas311 аватар
Offline
Зарегистрирован: 06.12.2018

или что

sadman41
Онлайн
Зарегистрирован: 19.10.2016

Скиф, харош фигню пороть. Всё там ок.

rst
Offline
Зарегистрирован: 25.06.2018

Яковлевич пишет:
  У меня, на данный момент скорость интернета 45-80 кбит\с. Указанную ссылку, качаю без малого 48 минут.

Хех! Вангую: Cевер Иркутской области, глухой таёжный край, расплавляемый блин золота на сковородке никак не хочет растекаться равномерно....  ;)))

Поможем всем миром - скинемся по строчке кода скромному неимущему труженику золотого прииска!  ;)))

Яковлевич
Offline
Зарегистрирован: 18.01.2019

                 Участнику - rst

     Хватит ядом брызгать... Пусть у Вас будет всё хорошо, Бог Вам судья.

 Не важно, где и каким ты родился, главное, на что потратишь отпущенное тебе время.

Всем участникам данной темы, большое спасибо за участие, тема закрыта. 

В такой среде, не имеет смысла продолжать.