Ничего не найдено :(
    В гостях у Самоделкина! » Электроника » Arduino » Электронные мозги для моего проекта

    Электронные мозги для моего проекта

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


     В промышленных образцах они дюже умные и дорогущие, привязаны к сложным контроллерам, а потому и не каждому доступные.


    На первый взгляд, сложного ничего вроде бы и нет, подумаешь диво, вот на одном колесе с педалями, катаются люди. Ну да, учиться нужно, а кто говорит, что это легко. В итоге, чтобы не рухнуть, наездник постоянно наваливает на педали выравнивая вертикальное положение.


    Другое дело на электрическом моноцикле, педали есть, но на них стоят, а вот за вертикальное положение райдера отвечают электронные мозги.


    Как они работают? Если по-простому, мозжечком конструкции, я думаю, является гироскоп. Он следит и контролирует (отслеживает) положение моноколёсника. Контроллер обрабатывает полученную информацию с гироскопа и управляет полумостами, разгоняя или притормаживая электрический двигатель.


    А почему бы, пусть и отдаленно, не повторить то, что управляет моноколесом? В радио лавке приобрел GY-521  MPU-6050 3х осевой гироскоп и arduino uno.


    Скетч, который хотелось по первоначальной задумке не нашелся, пришлось импровизировать. Скачал программу для управления сервоприводом. Подкупило то, что был быстрый отклик серводвигателя на манипуляции гироскопа после установки программы в плату arduino.


    // MPU6050 & Servo
    
    // https://www.giuseppecaccavale.it/
    
    // Giuseppe Caccavale
    
    #include <SPI.h>
    
    #include <Wire.h>
    
    #include <Servo.h>
    
    #define MPU 0x68  // I2C address of the MPU-6050
    
    Servo ServoX, ServoY;
    
    double AcX, AcY, AcZ;
    
    int Pitch, Roll;
    
    void setup() {
    
      Serial.begin(9600);
    
      ServoX.attach(8);
    
    ServoY.attach(9);
    
      init_MPU(); // Inizializzazione MPU6050
    
    }
    
    void loop()
    
    {
    
      FunctionsMPU(); // Acquisisco assi AcX, AcY, AcZ.
    
    Roll = FunctionsPitchRoll(AcX, AcY, AcZ);    //Calcolo angolo Roll
    
      Pitch = FunctionsPitchRoll(AcY, AcX, AcZ);  //Calcolo angolo Pitch
    
     int ServoRoll = map(Roll, -90, 90, 0, 179);
    
      int ServoPitch = map(Pitch, -90, 90, 179, 0);
    
     ServoX.write(ServoRoll);
    
      ServoY.write(ServoPitch);
    
    Serial.print("Pitch: "); Serial.print(Pitch);
    
      Serial.print("\t");
    
      Serial.print("Roll: "); Serial.print(Roll);
    
      Serial.print("\n");
    
    }
    
    void init_MPU() {
    
      Wire.begin();
    
      Wire.beginTransmission(MPU);
    
      Wire.write(0x6B);  // PWR_MGMT_1 register
    
      Wire.write(0);     // set to zero (wakes up the MPU-6050)
    
      Wire.endTransmission(true);
    
      delay(1000);
    
    }
    
    //Funzione per il calcolo degli angoli Pitch e Roll
    
    double FunctionsPitchRoll(double A, double B, double C) {
    
      double DatoA, DatoB, Value;
    
      DatoA = A;
    
      DatoB = (B * B) + (C * C);
    
      DatoB = sqrt(DatoB);
    
    Value = atan2(DatoA, DatoB);
    
      Value = Value * 180 / 3.14;
    
     return (int)Value;
    
    }
    
    //Funzione per l'acquisizione degli assi X,Y,Z del MPU6050
    
    void FunctionsMPU() {
    
      Wire.beginTransmission(MPU);
    
      Wire.write(0x3B);  // starting with register 0x3B (ACCEL_XOUT_H)
    
      Wire.endTransmission(false);
    
      Wire.requestFrom(MPU, 6, true); // request a total of 14 registers
    
      AcX = Wire.read() << 8 | Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L)
    
      AcY = Wire.read() << 8 | Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
    
      AcZ = Wire.read() << 8 | Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L)
    
    }

     

    И так, реакцию серводвигателя на движение я получил.


     Показалось, что мечты сбываются. Закрепи переменный резистор на валу «серво» и мозги моноколеса в «банке». Но нет, от этого варианта пришлось отказаться, что бы резистор провернулся полностью на всю, райдер должен был бы сделать сальто. Решил пойти другим путем, как В. И. Ленин. ШИМ спаял на НЕ555.


    Но вот проблема как эту приблуду объединить с гироскопом, немного поэкспериментировав, я нашел вариант, замены механического резистора. Просто собрал последовательно один построечный и четыре постоянных резистора.


     В итоге моя версия с ШИМ получилась с электрическим резистором. Переключение оборотов двигателя происходит не плавно, а ступенчато. А это практически исключит дребезг гироскопа. То есть, первая ступень подключения начинает вращение двигателя, следующие ступени разгоняют до максимума.

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


     которое, если подавать на нужное сопротивление, на выходе ШИМ выдаст нужное напряжение.


    Из ПВХ согнул колодочку под радиус вращения магнитов сервы и на ее приклеил датчики Холла.


    Центральный датчик, должен отключать питание при вертикальном положении гироскопа. Остальные, включаясь магнитным полем, если задействовать светодиоды, зажигают их по очереди.


     Подключив мультиметр, я настроил выходное напряжение с ШИМ на четыре режима: 1-4v, 2-6v, 3-9v, 4-12v. Холлы с левой стороны и правой подключены синхронно, то есть в режиме реверс, электрический резистор один.


    А еще получил приятный бонус: при накладывании сигналов с датчиков, рабочее напряжение  устанавливается по последнему включенному датчику Холла. Если проще, датчик Холла включил 6v и он еще не отключился, следующий датчик Холла выдал команду на новое включение. Напряжение на выходе ШИМ перейдет на 9v.

    Все проверил, все настроил. Сборку реверса пока отложил, на определился на каком двигателе остановиться. К выходу ШИМ пристроил мосфет и коллекторный двигатель от шуруповерта, захотелось наглядно увидеть, не слишком ли жестко происходит переключение режимов скорости вращения.

    Вертикальное положение - двигатель не запустился.


     Наклон примерно два градуса – двигатель запустился сразу на четверть мощности и чем глубже проваливаю наклон, тем резвее крутит двигатель. Самый максимум: примерно двадцать - двадцать три градуса.


    По сути, получилась педаль газа для транспортного средства. Скорее всего сначала я испробую на колесе с коллекторным двигателем. Так как трех фазный двигатель надо перебрать на двадцать четыре магнита, сейчас в нем шестналцать и провод в катушках перемотать шиной из двадцати проводков по 0.5 мм, а сейчас всего восемь. С проводом мне подфартило, на попе нашел, среди прочего, не полную катушку, два +, килограмма, советского провода 0.5 мм, кто-то очень давно ее прикопал, завернув в рубероид.

    Становитесь автором сайта, публикуйте собственные статьи, описания самоделок с оплатой за текст. Подробнее здесь.

    Кухонный таймер на ардуино

    10
    Идея
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    10
    Описание
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    10
    Исполнение
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    Итоговая оценка: 10 из 10 (голосов: 4 / История оценок)

    Добавить комментарий

    41 комментарий
    Гость степан #97104

    Я ,конечно, не специалист в области электропривода, но думаю, что кроме собственно гироскопа в системе, есть ещё энкодер.гироскоп мерит углы отклонения, скорость отклонения и угловое ускорение. А энкодер как раз в системе регулирования оборотов двигателя, те мозги выбирают алгоритм управления, энкодер следит за точностью управления двигателем( например добавляет регулирующий импульс при разряде батарей),а гироскоп выдает сигнал, насколько алгоритм привел к достигнутому результату. Энкодер в простейшем варианте - датчик оборотов

    Те существует два контура управления:

    Мозги- двигатель, и мозги-агрегат в целом.

    sergeyp #97103
    Цитата: yzhik
    я бы сказал: -я так вижу. Но увы, я так понимаю проблему и это мой выход по имеющимся знаниям

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

    Зачем ты вывел на серву? Чтобы просто посмотреть? Посмотрел? Пиши скетч для двигателя, сразу и с ШИМом и с реверсом, и не мучайся с этими механическими заменами частей алгоритма, которые должны находиться в скетче...

    Ёж, у тебя есть алгоритм работы такого устройства? Или тоже ещё не совсем окончательный? Так проще его было бы доводить в скетче а не заниматься рукобделием...    Конечно, ты можешь нас не слушать, но мы пытаемся подсказать тебе оптимальный путь, или тебе вообще проооцесс нравится?   xaxa 

    Валерий #97050

    Вот точно так-же я не люблю, например, машины крутить! Умею!...Хорошо умею... Крутил раньше исключительно сам.... Надо было. Дорого было к автослесарям обращаться, во-первых. А во-вторых, тогда автослесари тоже были в основном, такие, что я сам лучше знал этот процесс. ...

    А сейчас... Когда в автосервисах работают люди, которые на это учились... Когда доход позволяет... Я лучше заплачу!... Даже масла-фильтры уже больше 10-ти лет сам не менял... Разве что лампочки)))

    Але нови ностра алис!
    Валерий #97049
    Цитата: Олег-СтройМАГ
    Наверное, старость подкрадывается)))


    А при чём тут старость? Ну не интересна мне тема электроники... Не хочется таким заниматься, не доставляет удовольствия...

    И в молодости так-же было, и в юности... В юности немного (чтобы по вершкам освоить) попаял приёмников и остыл... В молодости (ну... наверное, около сорока - это ж ещё молодость?))), как только появилось Ардуино, ради интереса купиол.. На Дил-Экстриме. (Тогда Али-Экспресса ещё не было, а ДинЭкстрим, ДиноДирект и ТайнаДил не брали банковские карты. Только ПэлПэй)))).  И, даже, написал её управление датчиками влажности для насоса... Который никогда так не использовал, и не собирался...))) Писал и собирал, тоже, чтобы "немного понять эту тему, и знать о чём там..."... Но, хоть и сумею, если надо будет, но лучше заплачу кому-то... Вот, не моё это всё!.))))

    Але нови ностра алис!
    Олег-СтройМАГ #97046
    Цитата: Валерий

    Всё, что навеяла статья...

    П.С. Ну не по этим я дела-а-ам!!! smiles 


    Наверное, старость подкрадывается)))

    В великих делах достаточно даже и того, чтобы желать их сделать
    Валерий #97042
    Цитата: ino53
    И на этом фото чего-то не хватает... Вернее, маловато...  


    Да не-е-е... Это просто майка белая, вот и кажется, что нету... А ты ж посмотри, где центр тяжести у неё находится?!! Сразу видно, что выгнулась она так, чтобы центр тяжести не выходил за площадь опоры, иначе, будет опрокидывание конструкции!!... Так что, есть там этот мощный противовес! Просто с фоном сливается и потому не видно....

    Але нови ностра алис!
    ino53 #97041
    Валерий, ничего тут нет страшного, правда, описание, прям как у классиков:

    Эта… — сказал он старику. — Объясни, мон шер, товарищам, что тут у тебя к чему.

        Старичок словно взорвался.

        — Высочайшие достижения нейтронной мегалоплазмы! — провозгласил он. — Ротор поля наподобие дивергенции градуирует себя вдоль спина и там, внутре, обращает материю вопроса в спиритуальные электрические вихри, из коих и возникает синекдоха отвечания…

    И на этом фото чего-то не хватает... Вернее, маловато... pardon 



    поуль рамже #97039

    Очень познавательная статья, ok  все подробно описано. good Но вот чья такая хабарная жопа? scratch 

    " С проводом мне подфартило, на попе нашел, среди прочего, не полную катушку" xaxa 

    Валерий #97034

    Всё, что навеяла статья...

    П.С. Ну не по этим я дела-а-ам!!! smiles 

    Але нови ностра алис!
    yzhik #97027 Автор
    Цитата: Голь
    но как то сложно


    Как художник художнику, я бы сказал: -я так вижу. xaxa Но увы, я так понимаю проблему и это мой выход по имеющимся знаниям meeting 

    Голь #97025

    Интересно, но как то сложно))) scratch 

    Привет, Гость!


    Зарегистрируйтесь

    Или войдите на сайт, если уже зарегистрированы...

    Войти

    Добавьте самоделку

    Добавьте тему

    Онлайн чат

    Последние комментарии

    Все комментарии