1. Уважаемый Гость! При написании вопросов в раздел форума [ArduCopter] Вопросы, проблемы и решения обязательно придерживаться шаблона сообщения, оговоренного в правилах раздела! Если сообщение не будет оформлено должным образом, то и ответ на вопрос будет с наименьшим приоритетом. Старайтесь дать максимально полную информацию по вашей проблеме, чтобы можно было более детально рассматривать вопрос!
    Скрыть объявление
  2. Уважаемый Гость! Хотите получать кэшбэк с покупок в online-магазинах? Сервис "Zozi.ru" дает такую возможность!
    Скрыть объявление
  3. Друзья! Для нашего ресурса необходим дополнительный объем пространства в облаке Dropbox. Подробнее.
    Скрыть объявление

Arduino и AVR (Atmel) микроконтроллеры

Тема в разделе "Наши другие увлечения", создана пользователем raefa, 9 мар 2016.

Реклама. Купить это место.
  1. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    Последнее редактирование: 19 окт 2017
  2. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    А как калибровать регулятор под сигнал выдаваемый ардуинкой?
     
  3. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
    Я вообще не калибровал :) Но если очень хочется, то стандартно:
    1. На ESC питание не даёте, подключаете только тестер.
    2. На тестере выставляете 2000, нажимаете и держите RUN.
    3. Подаёте питание на ESC. Ждёте, пока он пиликнет.
    4. Не отпуская RUN понижаете на тестере PWM до 1000. ESC должен пиликнуть еще раз.
    5. Всё, ESC откалиброван.
     
  4. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    В общем сижу разбираюсь в том что выше наговорили.
    static float real_gr = (units * 0.9) + (scale.get_units(1) / 10); не работает, показания веса не изменяются, если убрать static то начинает показывать вес. Чего я снова не правильно сделал?
     
  5. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
    А я разве так писал? :)
    Я писал вот так
    static float real_w = (real_w * 0.9) + (scale.get_units(1) / 10);
    Ну и проще всего объявить переменную real_w в самом начале (до сетап) - тогда она автоматически станет статической. В setup её желательно обнулить.
    Ну и в самом loop пишем:
    real_w = (real_w * 0.9) + (scale.get_units(1) / 10);
     
  6. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    Тогда я не понимаю от куда берутся данные? scale.get_units - это и есть данные поступающие с тензодатчика???
    Тогда для тока и напряжения будет так?

    uint16_t inI = analogRead(7);
    uint16_t inU = analogRead(6);

    real_u = (real_u * 0.9) + (inU / 10);
    real_i = (real_i * 0.9) + (inI / 10);
     
  7. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    Ну вот и провел я первое тестирование своего мотора. Есче бы графики автоматом бы все строились для наглядности, былоб прям ваще ляпота.
    У меня странная штуковина происходит, при отпущенной кнопке RUN мотор вращается на низких оборотах. Нажимаю кнопку и он останавливается. Это из за чего?

    кстати вот что показал мой мотор.
    4114 тест.jpg
     
  8. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
    Можно, но лень :)
    Скорее всего откалибровали при нижнем значении 900. При отпущенной кнопке он всегда выдаёт 1000.
    --- Сообщения объединены, 26 сен 2017 ---
    Да.
    Можно и так, тогда надо будет потом делать пересчёт. Либо сперва делать пересчёт в амперы и вольты и потом уже вводить в фильтрующую функцию.
     
  9. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    Может все таки переборите лень? давайте доведем до логического конца вашу разработку, я согласен быть бета тестером :)
     
  10. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
    Не, счас вообще этим заниматься нету времени. А там придётся всё экспортить в excel через com, потом еще там графики создавать.
    А на черта эти графики? И так же всё понятно.
     
  11. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    По графикам нагляднее.
    В саму программу надо добавить мониторинг оборотов,двух канальный.
    Прикрутить какую нить автоматическую калибровку регулей, Потому что мотор стоит только при 900 значении.
    Добавить кнопку запуска которая будет стоять рядом с RUN, очень не удобно держать правой рукой RUN и левой тыкать мышку на запуск теста.
     
  12. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
    Я же говорю - откалибровали неправильно. Нижнюю точку калибровки надо задавать при 1000.
    А мне то это зачем? :)
    Я тут для вибростенда делал датчик оборотов и знаю - насколько отвратительно нестабильно всё это работает. Ну его на фих :)
    Добавляйте :) Все исходники выложены :) Мне вот удобно - я левой рукой держу кнопку, а правой давлю мышку.

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

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    Очень легко перескочить при калибровке до 900.

    Ясно, вам это не интересно:( , спасибо и на этом.:thumbsup:

    Пообщавшись с вами понял что мне чтоб достичь хотя бы начального уровня программирования (чтоб самому с ноля написать программу) в той же аруинки надо будет есче лет 10 потратить.:( я прям как дурак смотрю на строчки и вижу фигу.
     
  14. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
    Ну скажем так - данный проект я делал под себя и выложил в сеть исходники по принципу - мало ли кому-то пригодятся для собственной разработки. Заниматься сейчас серьёзной доделкой - у меня совершенно нет времени. Я свой большой коптер собираю уже почти год и до сих пор я его поднимал только в помещении на пару метров - просто нет времени на доводку.
    Да нет, не так всё страшно, базовый си вообще очень простой язык. Если плотно заняться то за месяц-полтора можно уже что-то делать (разумеется регулярно выкладывая свои творения для критики).
    Другой вопрос, что всё это будет зверски неоптимально просто потому, что нет опыта алгоритмизации. Но это не столь критически важно.
     
  15. Marksheider

    Marksheider Научный сотрудник

    Регистрация:
    1 дек 2016
    Сообщения:
    332
    Город:
    Прокопьевск
    Имя:
    Артем
    А что за коптер собираете? На него можно где то посмотреть?
    Расскажите по комплектации и параметрам его, Очень интересно. И на сколько он тяжелый?

    По поводу С++ буду стараться регулярно собирать какие нить проектики разные для тренировки и освоения. (времени тоже на все не хватает)
     
  16. An_private

    An_private Старший научный сотрудник

    Регистрация:
    6 июн 2016
    Сообщения:
    595
    Город:
    Санкт-Петербург
    Имя:
    Андрей Коробейников
  17. vekler

    vekler Абитуриент

    Регистрация:
    23 сен 2017
    Сообщения:
    11
    Город:
    Пермь
    Имя:
    Александр
    заказал в Китае программатор USBasp, вчера он ко мне приехал, но вот незадача, на плате контроллера не нашёл разъёма для подключения программатора. Есть дырки для запайки штырей с подписанными буквенными обозначениями контактов. Штыри я могу запаять, вот только сомневаюсь, что на них можно насадить разъём от шнура программатора. Некоторые буквы не совпадают. Я вроде как понимаю, что можно и проводками временно подпаяться, но, может быть, существует более "интеллигентное" решение? Картинка сравнения двух разъёмов -
    Сравнение разъёмов.jpg
    Помогите, чем сможете :)
     

    Вложения:

    Последнее редактирование модератором: 19 окт 2017
  18. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    Если нет проводов под штыри, можно раздербанить провода от передней панели старого ПК. И по одному втыкать в соответствующие пины.
     
    Revenger нравится это.
  19. vekler

    vekler Абитуриент

    Регистрация:
    23 сен 2017
    Сообщения:
    11
    Город:
    Пермь
    Имя:
    Александр
    Можно, конечно. Вопрос - какие контакты программатора соответствуют контактам контроллера?
    MOSI-MOSI понятно
    MISO-MISO тоже понятно
    SCK-SCK ясно
    А RST программатора с каким контактом соединять?
    Надо ли соединять 5 V? Землю или общий провод надо ли?
    NC программатора куда втыкать?
    VCC нужно с чем-то соединять?
     
  20. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    upload_2017-10-19_21-43-16.png

    К плате подвеса питание не подключать. Питание придет от программатора. Моторы на момент прошивки отключить, гироаксель (мелкая плата на проводках) тоже на всякий...
    Not Connected. Никуда.
     
  21. raefa

    raefa Главнокомандующий Команда форума

    Регистрация:
    3 янв 2015
    Сообщения:
    4.324
    Город:
    Zhigulevsk
    Имя:
    Александр
    Разъем ISP - In-System Programming (внутрисхемное программирование, Википедия).
    Приведу еще разновидность разъема. На подвесах еще бывает делают в одну линию 6 пинов и подписи. Если подписей нет, то смотреть datasheet на atmega328.
    Подключение осуществлять "один к одному", если к прошиваемой плате подключено что-то еще, то лучше это отключить.

    avr_isp_connector.jpg

    Ну и добавлю на всякий случай обозначения контактов:
    Vcc - питание программируемой микросхемы. Обычно берется с программатора и составляет .
    Gnd - минусовой провод питания.
    Reset - сброс. Нужен для старта процесса прошивки.
    Mosi, Miso - по ним передаются данные.​
     
    Последнее редактирование: 19 окт 2017
Реклама. Купить это место.