Мини конвейер на ардуино

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Разливочная машина для бутылок на основе Arduino своими руками

Автоматические машины для розлива чаще всего используются в производстве напитков. Эти машины используют конвейерную ленту, которая является экономичным и быстрым способом наполнения бутылок. В основном ПЛК используются для автоматических разливочных машин, но вы можете сделать очень простой и универсальный наполнитель бутылок, используя Arduino. Вы можете запрограммировать Arduino на автоматическое обнаружение бутылки или другой емкости с помощью инфракрасного или ультразвукового датчика и позволить наполнить бутылку, остановив конвейерную ленту на некоторое время. Затем снова машина переместит ремень и остановится, когда будет обнаружена следующая бутылка.

Сегодня мы собираемся разработать прототип автоматической машины для розлива с использованием Arduino Uno, конвейерной ленты, электромагнитного клапана, инфракрасного датчика и шагового двигателя.

Ленточный конвейер приводится в движение шаговым двигателем с постоянной заданной скоростью. Шаговый двигатель будет продолжать движение ремня, пока ИК-датчик не обнаружит наличие бутылки на ремне. Мы использовали ИК-датчик в качестве внешнего триггера. Поэтому, когда ИК-датчик обнаруживает объект, он посылает в Arduino сигнал, чтобы остановить двигатель и включить электромагнитный клапан. Заданная необходимая задержка уже введена в код для заполнения бутылки. Arduino будет держать электромагнитный клапан включенным и шаговый двигатель выключенным до указанного времени. По истечении этого времени электромагнитный клапан отключает наполнение, и конвейер начинает двигаться, так что следующая бутылка может быть заполнена в дальнейшем.

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

В этой схеме электромагнитный клапан подключен к Arduino через модуль реле, а модуль драйвера A4988 используется для управления шаговым двигателем. Входной контакт модуля реле подключен к контакту 7 Arduino. Контакты направления и шага модуля A4988 подключены к 2 и 4 контактам Arduino. В этом проекте ИК-датчик используется в качестве источника внешнего прерывания для Arduino. В Arduino Uno цифровые контакты 2 и 3 являются контактами прерывания, поэтому подключите выходной вывод ИК-датчика к третьему контакту Arduino. Электромагнитный клапан питается от источника питания 24 В, а шаговый двигатель питается от источника питания 12 В. Вся структура проекта внешне может выглядеть следующим образом.

Код программы для Arduino довольно прост и представлен следующим образом:

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

Источник

Электрический наддув для авто на Arduino: миф или все возможно?

Начать свое повествование хочу с цитаты: «автомобиль — не роскошь, а средство передвижения». И действительно, на дорогах нашей страны с каждым годом автомобилей становится все больше, их поколения сменяются поколениями, модели моделями. В данном разнообразии очень легко запутаться, а вот выделиться из общего потока наоборот становится все сложнее и сложнее.

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

Итак, за время своего водительского стажа (порядка 8 лет) я успел испробовать на себе немалое число моделей автомобилей, находившихся либо в моей личной собственности, либо во владении родственников или друзей: ВАЗ 2109, 21099, 2112, Honda Accord, Honda Civic, Volkswagen Jetta, Mitsubishi Lancer X, Skoda Oktavia, BMW E34 и многие другие. Из всех авто, пожалуй, наиболее сильно мне запомнилась Honda Accord 1993 года выпуска, с замененным на неродной 200-сильный легендарный двигатель H22A, находящаяся в данной конфигурации в моем владении 2 долгих года. Что мне в ней нравилось — её характер, мотор с легкостью раскручивался до 7500 оборотов и обладал выраженным подхватом ровно с 4000 оборотов. Однако низов на нем не было, совсем!

Сегодня я езжу уже на другом автомобиле — Suzuki SX4, у него данная проблема носит еще более выраженный характер ввиду 1600 кубового всего 112 сильного двигателя и немалой массы в 1330 кг (вместе с водителем).

Отсутствие тяги на низких и средних оборотах — проблема практически всех современных малолитражных двигателей, в среднем до 3000 оборотов они не «едут» совсем — ускорения нет никакого, что несомненно неудобно ни в городе, ни на трассе.

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

Данная проблема кардинально решается несколькими методами:
— замена мотора на более объемный;
— установка небольшой турбины с ранним спулом (довольно популятный метод, дает эффект более объемного двигателя с 1500-2000 оборотов);
— установка объемного компрессора с приводом от коленчатого вала двигателя (дает эффект более объемного двигателя практически с холостых оборотов но занимает очень много места в подкапотном пространстве, метод практически не пользуется популярностью).

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

Данная идея относительно не нова — первые упоминания которые мне удалось найти о таких системах относятся к 2009 году — год разработки вспомогательного электрического наддува авто концерном Audi, в их системе электродвигатель вращает крыльчатку небольшого компрессора на оборотах до 3000 до включения основного турбокомпрессора, тем самым нивелируя эффект «турболага» — плохой отзывчивости мощного турбированного двигателя на низких оборотах. Система была продемонстрирована на модели Audi RS5 в 2012 году, но на конвейер так и не попала. Аналогичные системы планируются к разработке и другими авто производителями — ориентировочно такие системы увидят свет на серийных автомобилях в 2017-2019 годах.

А что если не ограничиться 3000 оборотами и крутить электродвигатель и дальше, до 4000 — 5000 оборотов? Таким образом можно перекрыть практически весь повседневный диапазон оборотов, использующийся при вождении автомобиля в 90% случаев.

Да, на это потребуется довольно большая мощность — по моим расчетам при частоте вращения коленчатого вала 4000 оборотов для ДВС объемом 1600 куб см и необходимого наддува в 0,4 бара (максимальный уровень наддува, поддерживаемый большинством штатных ЭБУ автомобилей без перепрошивки и внедрения в электронику авто) — отбираемая мощность на привод крыльчатки компрессора составит около 4,5 кВт (с учетом среднестатистического КПД центробежного компрессора в 50%).

В свободной продаже сейчас есть довольно мощные и в тоже время небольшие по габаритам авто\авиамодельные бесколлекторные электродвигатели, развивают мощность в максимуме до 10-15 кВт и имеющие напряжение питания 50-70 вольт:

Недолго думая был куплен диагностический адаптер — ELM 327 bluetooth mini:

И на его основе сделан считыватель данных об оборотах и положении дроссельной заслонки двигателя. На фото по порядку: диагностический адаптер, arduino uno, простенький бесколлекторный двигатель и регулятор к нему.

Написан небольшой скетч для ардуино:

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

Теперь осталось дело за «малым» — собрать прототип устройства, которое будет нагнетать воздух в двигатель исходя из данных текущего положения дроссельной заслонки и оборотов двигателя.

Источник

Создаём конвейер автоматизированных сборок для проекта на Arduino. Часть 1/2

Важная часть профессионального программирования — это конвейеры автоматизации сборок. Вы, конечно, можете считать несерьезным свое увлечение проектами на Arduino. Но давайте представим, что вы создаёте библиотеку Arduino для других пользователей. Может быть, это даже целый проект с открытым кодом, который рано или поздно станет полезным целому сообществу.

Конвейер автоматизации сборок выступает как непрерывная интеграция. Так вы гарантируете определенный уровень качества своего проекта. Открою два ответа на вопрос о том, как именно вам поможет непрерывная интеграция:

  • Ваш код в итоге компилируется на всех необходимых платформах.
  • В проекте устанавливается красивый стиль программирования.

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

  • Выполнять автоматизированные юнит-тесты.
  • Автоматически обновлять документацию.

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

Настройка проекта

Проект Arduino

Ваш проект на Arduino — это всего лишь папка со скетчем Arduino внутри:

Если вам достаточно малого, то непрерывная интеграция и не нужна. Тем не менее от экспериментов с ней хуже не будет. Если вы хотите перейти на продвинутый уровень, подумайте над настройкой проекта на PlatformIO.

Проект в PlatformIO

Среда PlatformIO хорошо интегрируется с Visual Studio Code и стала отличной альтернативой окружению Arduino IDE. В неё встроена поддержка многих микроконтроллеров и вы даже сможете выйти за границы экосистемы Arduino, но это уже отдельная тема. Стандартный проект в PlatformIO состоит из двух частей:

Тем не менее вы не ограничены этими файлами, это только начальная точка. По мере продвижения проект может вырасти во что-то большее, чем только два файла. И это уже определённо вариант для применения непрерывной интеграции.

Библиотека Arduino

Может быть, вы работаете не только над личным проектом, а над целой библиотекой Arduino, чтобы потом поделиться результатами в сообществе. В таком случае непрерывная интеграция — отличный вариант. Стандартная библиотека в Arduino, скорее всего, будет выглядеть так:

У вас есть минимум: один заглавный файл, один файл имплементации, а также один или больше скетчей Arduino.

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

GitHub и контроль версий

Дальше я буду предполагать, что ваш проект хранится в системе контроля версий git и опубликован на GitHub. Если вы еще не публиковали там ничего, я очень рекомендую этот сервис для всех ваших проектов в программировании.

В нашем случае GitHub подходит потому, что мы собираемся пользоваться его рабочими процессами, которые позволяют создавать конвейерные сборки без дополнительных внешних сервисов. Похожим образом можно работать и на других платформах, например GitLab, или используя инструменты непрерывной интеграции, такие как Travis или CircleCI. Я советую вам посмотреть все возможности, чтобы найти те, которые вам подойдут. Я остановился на GitHub.

Базовый рабочий процесс в GitHub

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

Виртуальная машина работает на серверах GitHub. Всё, что нам нужно сделать, — создать конфигурационный файл внутри директории проекта .github/workflows . Давайте назовем его build.yml :

У файла будет такое содержимое:

В нём есть параметр имени name — он может быть любым от самого короткого build и до изощренного My awesome automated build . Я возьму вариант попроще. Команда on: [pull_request, push] говорит GitHub выполнять этот процесс всякий раз, когда происходит добавление обновлений в репозиторий или создается новый запрос на добавление изменений. Есть и другие события, а также сложносоставные триггеры, но это другой разговор.

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

Автоматизированные сборки Arduino

После проверки добавим еще один шаг в build.yml :

Этот шаг называется Build on Arduino CLI , и он запускает скрипт оболочки ci/build-arduino.sh . А теперь мы создадим такой файл в папке проекта:

Этот скрипт установит Arduino CLI на нашу виртуальную машину и скомпилирует код для нескольких плат Arduino. Если компиляция падает, автоматизированный конвейер сборок тоже ломается. А если компиляция проходит успешно, это значит, что код корректен для всех протестированных платформ Arduino.

Для установки Arduino CLI мы будем следовать гайду:

Добавляем ядро Arduino AVR:

До компиляции кода осталось немного. Если ваш проект — это библиотека, вам надо сначала подключить ее к директории библиотек Arduino. Иначе компилятор не сможет найти ваш код.

А теперь компилируем скетчи для ядра AVR. Компиляция для Uno:

Вот и всё. С этой установкой можно создать конвейер сборок, который автоматически компилирует все Arduino Sketches для Arduino Uno по каждому пакету изменений или запросу на их проверку в репозитории на GitHub.

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

Источник

Adblock
detector