habrahabr

Arduino — всем. Продолжение истории

  • понедельник, 7 апреля 2014 г. в 03:10:14
http://habrahabr.ru/post/218377/

image

Со времени выхода моего первого поста о проекте FLProg прошло больше месяца. И вот вышла новая версия программы, и я хочу рассказать о новых возможностях, появившихся в последнем релизе. Так же параллельно расскажу о некоторых подводных камнях в программировании платформы Arduino найденных при разработке нового функционала.

Итак, по порядку.

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

FLProg видеоурок 1
Работа в FLPRog на LAD
Новое в версии FLProg1.
Моторы
Часы и дисплей
Видео уроки можно скачать на сайте проекта в разделе «Документация».

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

3. Добавлен функциональный блок масштабирования сигнала.

4. Добавлен встроенный монитор Com порта.

5. Добавлены блоки для работы с часами реального времени. У меня в наличии имелись часы реального времени на микросхеме DS1302.

image

Если честно сказать не лучший вариант для Arduino. Их рабочее напряжение 3.3В, соответственно логические уровни такие же. Для подключения к плате Arduino возможны два варианта. Правильный и костыльный. Правильный вариант – воспользоваться двунаправленными преобразователями уровней 3.3В <-> 5В. И запитать часы от пина 3.3V.
К сожалению, во время разработки блоков я находился очень далеко от цивилизации и не мог пойти по этому пути. Поэтому я пошёл по второму. В разрыв цепи GND между часами и платой Arduino включается постоянный резистор 10Ком. Часы работают нормально. Но еще раз повторяю, способ костыльный и каждый пользуется им на свой страх и риск.
Так же была реализована возможность начальной установки часов, и синхронизация их со временем в компьютере, с помощью специальной утилиты. Поподробнее можно посмотреть в видео уроке, посвященном часам реального времени.

6. Добавлены блоки для работы с сервомоторами и шаговыми двигателями. С сервомоторами проблем не возникло, все заработало сразу и без нареканий. С шаговыми двигателями оказалось сложнее. У меня в наличии был шаговый двигатель 28BYJ-48 с контроллером на микросхеме ULN2003AN.

image

При стандартном объявлении в скетче он отказался крутиться в обе стороны. На просторах интернета нашёл ответ. В библиотеке Stepper ошибка. Мотор надо объявлять так: stM=Stepper( in1, in3,in2,in4);, то есть поменять местами второй и третий параметры. В этом случае мотор работает как надо.

7. Добавлен блок для вывода информации на дисплей, реализованный на чипе HD44780.

image

Пришлось немного повозиться с вопросом обновления экрана. Если не вызывать функцию обновления дисплея, то при изменении длинны выводимой информации конец старых данных остается. Если вызывать при каждом проходе программы, на дисплее сплошное мельтешение и ничего не видно. Во всех примерах реализации вывода на дисплей используется функция delay, и данные на дисплее полностью обновляются каждые 1-2 сек. Меня такой вариант не устраивает, потому что кроме вывода на дисплей контроллер может выполнять и другие функции, и останавливать выполнение программы нельзя. Выход был найден такой. При каждом выводе на дисплей запоминается длинна выводимых данных, и если новые данные короче предыдущих в следующем цикле дисплей обновляется.

8. Добавлена возможность работы со строками, и созданы соответствующие функциональные блоки. Я отказался от работы со строками как массивами Char, и работаю с объектом String. Как оказалось с ним работать намного проще, особенно если длинна строки заранее неизвестна.

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

Проект продолжает развиваться. Следующий этап будет полностью посвящен разработке симулятора.

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

Появились первые реальные проекты, созданные в программе. Пользователь ALEX любезно предоставил свой проект для примера на сайт. Это сварочный контроллер для сварки арматуры. Посмотреть и скачать можно на сайте программы, в разделе «Документация» -> «Проекты пользователей».

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

UPD.

У нас с пользователемAriman продолжается спор который возник еще в первом посту.
Помогите нам его разрешить. Ответьте на вопрос опроса.
Обязан ли инженер электронщик знать языки программирования, или можно пользозоваться программами типа FLProg и оставаться проффесионалом

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

Проголосовало 214 человек. Воздержалось 45 человек.