Создание сортировщика-распаковщика на базе Arduino
Arduino как торговая марка аппаратно-программных средств для непрофессиональных пользователей. Загрузка программы в микроконтроллер. Создание полуавтоматической машины для распаковывания упаковок с пищей и распределения на заданное количество человек.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 11.01.2020 |
Размер файла | 299,8 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
1
Создание сортировщика-распаковщика на базе Arduino
Введение
arduino программа полуавтоматический распаковывание
Arduino
Arduino -- торговая марка аппаратно-программных средств для построения простых систем автоматики и робототехники, ориентированная на непрофессиональных пользователей. Программная часть состоит из бесплатной программной оболочки (IDE) для написания программ, их компиляции и программирования аппаратуры. Аппаратная часть представляет собой набор смонтированных печатных плат, продающихся как официальным производителем, так и сторонними производителями. Полностью открытая архитектура системы позволяет свободно копировать или дополнять линейку продукции Arduino.
Микроконтроллеры для Arduino отличаются наличием предварительно прошитого в них загрузчика(bootloader). С помощью этого загрузчика пользователь загружает свою программу в микроконтроллер без использования традиционных отдельных аппаратных программаторов. Загрузчик соединяется с компьютером через интерфейс USB (если он есть на плате) или с помощью отдельного переходника UART-USB. Поддержка загрузчика встроена в Arduino IDE и выполняется в один щелчок мыши.
Язык программирования
Программирование ведется целиком через собственную программную оболочку (IDE), бесплатно доступную на сайте Arduino.
Язык программирования Arduino является стандартным C++ с некоторыми особенностями, облегчающими новичкам написание первой работающей программы.
- Программы, написанные программистом Arduino, называются наброски (или иногда скетчи и сохраняются в файлах с расширением ino. Эти файлы перед компиляцией обрабатываются препроцессором Ардуино. Также существует возможность создавать и подключать к проекту стандартные файлы C++.
- Обязательную в C++ функцию main() препроцессор Arduino создает сам, вставляя туда необходимые «черновые» действия.
- Программист должен написать две обязательные для Arduino функции setup() и loop(). Первая вызывается однократно при старте, вторая выполняется в бесконечном цикле.
- В текст своей программы (скетча) программист не обязан вставлять заголовочные файлы используемых стандартных библиотек. Эти заголовочные файлы добавит препроцессор Arduino в соответствии с конфигурацией проекта. Однако пользовательские библиотеки нужно указывать.
- Менеджер проекта Arduino IDE имеет нестандартный механизм добавления библиотек. Библиотеки в виде исходных текстов на стандартном C++ добавляются в специальную папку в рабочем каталоге IDE. При этом название библиотеки добавляется в список библиотек в меню IDE. Программист отмечает нужные библиотеки и они вносятся в список компиляции.
Arduino IDE не предлагает никаких настроек компилятора и минимизирует другие настройки, что упрощает начало работы для новичков и уменьшает риск возникновения проблем.
Простейшая Arduino-программа состоит из двух функций:
setup(): функция вызывается однократно при старте микроконтроллера.
loop(): функция вызывается после setup () в бесконечном цикле все время работы микроконтроллера.
Загрузка программы в микроконтроллер
Закачка программы в микроконтроллер Arduino происходит через предварительно запрограммированный специальный загрузчик (все микроконтроллеры от Ардуино продаются с этим загрузчиком). Загрузчик может работать через интерфейсы RS-232, USB или Ethernet в зависимости от состава периферии конкретной процессорной платы. В некоторых вариантах, таких как Arduino Mini или неофициальной Boarduino, для программирования требуется отдельный переходник.
Пользователь может самостоятельно запрограммировать загрузчик в чистый микроконтроллер. Для этого в IDE интегрирована поддержка программатора на основе проекта AVRDude. Поддерживается несколько типов популярных дешёвых программаторов.
Актуальность
К идее проекта подтолкнула проблема вскрытия упаковок со съедобным содержимым, связанная с отсутствием шероховатостей.
Данный проект был интересен с точки зрения реализации (желание опробовать оборудование в “ФабЛаб Политех” и научиться работе с микроконтроллерами).
Поставленные цели
Создать полуавтоматическую машину, которая будет открывать упаковки с пищей и делить поровну на заданное количество человек.
Гипотеза
Разрезание упаковки является эффективным методом её вскрытия.
1.Ход работы
| 23.03.18
-Ознакомление с Arduino
-На данном этапе проблем не возникло
-Были разобраны материалы и видеоуроки по работе с Arduino, позволяющие приобрести необходимые для решения проблемы знания.
| 01.04.18
-Сборка основы конструкции - Arduino UNO c модулями
-Путём изменения кода программы была решена проблема с “залипанием” кнопки; При попытке подключении двигателя стала очевидной необходимость использования подключения двигателя через транзистор и резистор;
Нехватка портов подключения привела к покупке BreadBoard-а
-Собран "скелет" конструкции, основанный на Arduino UNO, и написана прошивка
| 30.04.18
-Работа с 3D принтером
-На данном этапе проблем не возникло
-С помощью Fusion 360 были смоделированы и распечатаны на принтере две заготовки(шестерни)
| 07.05.18
-Сборка механического каркаса
-Выяснилось, что мощности имеющегося двигателя не хватает для того, чтобы вращать шестеренки с натянутой лентой, а сама лента оказалась чрезмерно сопротивляющейся нагрузке на изгиб.
-Решено отказаться от использования двигателя постоянного тока (в связи с дороговизной более мощного)
| 14.05.18 - 28.05.18
-Сборка корпуса со всеми составляющими
-Вместо автоматического "открытия" упаковки было решено использовать механическое
-Корпус был собран
2. Использованное оборудование
-Arduino UNO
-Сервопривод SG90
-Датчик препятствий
-BreadBoard
-Кнопка, транзистор, резистор, комплект проводов
3. Arduino прошивка
Нам необходимо подключение библиотеки для работы с сервоприводом:
#include <Servo.h> // Библиотека для сервопривода
Объявим необходимые переменные. Переменная servo1 объявляется особым типом переменных специфичным для работы с сервоприводом (Servo).
Servo servo1; // Объявление переменных
int timestep;
int timestep1;
boolean flag = 0;
boolean flag1 = 0;
boolean battle;
byte i;
byte j;
byte v;
byte c;
Функция setup() выполняется единожды при подключении Arduino к источнику питания. Настраиваем пины на вход и выход, сервопривод ставим в положение 0 градусов.
void setup() {
servo1.attach(4); // Задание пинов на вход и выход
pinMode(3,INPUT_PULLUP);
pinMode(2,INPUT);
pinMode(9,OUTPUT);
Serial.begin(9600); // Открытие com-порта со скоростью передачи данных 9600 бит/с
servo1.write(0);
// digitalWrite(9,LOW);
}
Функция loop() выполняется многократно.
void loop() {
v = !digitalRead(2);
battle = !digitalRead(3);
Отрабатываем нажатие кнопки. Устранено “залипание” кнопки. Встроенная функция millis() возвращает время с начала работы программы.
if (battle==1 && flag==0 && (millis()-timestep)>300){ // Отрабатываем нажатие кнопки..
flag = 1;
i++;
Serial.println(i); // Вывод в порт (использовалось для отладки программы)
timestep = millis();
}
Отжатие кнопки
if (battle==0 && flag==1){ // ..и отжатие
flag = 0;
}
Через 2.5 секунды после последнего нажатия кнопки запускается дальнейший скрипт.
if ((millis()-timestep)>2500 && i>1){
j = i;
}
4. Моделирование в Fusion 360
Fusion 360TM - это первый инструмент 3D CAD, CAM и CAE в своем роде. Он объединяет весь процесс разработки продукта в единой облачной платформе, которая работает как на Mac, так и на ПК.
Комплекс представляет собой полноценный CAD/CAE/CAM инструмент. Применяется в сфере промышленного дизайна и производства, позволяет спроектировать практически всё, что бывает необходимо.
В ходе проекта велась работа в Fusion 360 с целью моделирования шестерней для вала двигателя постоянного тока, способных передавать вращающий момент на ленту с помощью зубчатого закрепления
Выводы по проекту
Наблюдается выполнение основных функций установкой. Для большего эффекта требуется увеличить количество тестирований с целью выявления мест конструкции, требующих усовершенствований. Например, более рациональным и зрелищным способом вскрытия упаковки может оказаться её сдавливание и дальнейшее расхождение по швам, вероятность которого возможно увеличить путём расчёта места приложения усилия. Проблем, связанных с написанным скетчем к Arduino не обнаружено, сама программа не занимает много места в памяти Arduino UNO и обрабатывается быстро. Таким образом, использование микроконтроллера Arduino отлично подходит для реализации проекта такого рода. В итоге часть работ, отведённая Барсукову С.С., по написанию прошивки для платы Arduino и по сборке установки была выполнена, что позволило привести установку к конечному виду и добиться её работоспособности.
Список использованной литературы
1. Видеоуроки по Arduino // [Официальный сайт YouTube канала AlexGyver] / Copyright AlexGyver Technologies 2015-2018 - URL: http://alexgyver.ru/arduino_lessons/ . - (дата обращения: 23.03.2018).
2. Лекции по Arduino // [Информационный портал BOTEON] / "BOTEON" 2012-2013 высокие технологии, робототехника, энергосбережение, интернет технологии- URL: http://boteon.com/blogs/obuchayuschie-lekcii-po-arduino . - (дата обращения: 23.03.2018).
3. Интернет-класс обучения работы с Arduino // [Информационный портал robotclass] /- URL: http://robotclass.ru . - (дата обращения: 23.03.2018).
4. Р. Лафоре Объектно-ориентированное программирование в С++ - Издательство “Питер” - 4 издание; Санкт-Петербург: “Питер”, 2004. - С.168 - 217.
Размещено на Allbest.ru
...Подобные документы
Анализ GPS-навигаторов для животных. Использование плат и среды программирования Arduino для разработки ошейника с GPS-навигатором для отслеживания маршрута, проделанного животным, и уведомления об этом пользователя. Выбор модели микроконтроллера.
курсовая работа [2,4 M], добавлен 18.10.2015Представление о системе Arduino. Структура платформы Android. Выбор средств разработки. Разработка структур данных и алгоритмов. Характеристика Bluetooth модуля, блок реле, резисторов, диодов. Графический интерфейс приложения. Написание кода программы.
дипломная работа [4,0 M], добавлен 19.01.2017Возможности платформы Arduino. Загрузка микроконтроллера прерываниями. Подтягивающие (нагрузочные) резисторы. Аналого-цифровой преобразователь, цоколевка. Прерывание по таймеру, память. Библиотеки Servo, SPI, Stepper. Комбинация фазы синхронизации.
курсовая работа [53,4 K], добавлен 23.12.2014Создание и использование динамически загружаемых библиотек в Delphi. Преимущества использования, создание простейшей DLL. Статическая и динамическая загрузка DLL, обмен данными с ней. Создание программы, работающей с базой данных клиентов кардиоцентра.
курсовая работа [425,2 K], добавлен 07.07.2012Применение современных микроконтроллеров как одного из перспективных аппаратно-программных средств информационных систем. Общие принципы построения микроконтроллеров, их типовая структура. Разработка программы расчета задержек на языке ассемблер.
курсовая работа [719,2 K], добавлен 22.04.2019Выбор инструментальных и программных средств для создания сайта. Структура программного продукта. Создание сайта при помощи программы WordPress. Тестирование разработанной программы. Разработка структуры и дизайна сайта. Наполнение сайта контентом.
курсовая работа [1,0 M], добавлен 09.01.2014Выбор программных и аппаратных средств для создания базы данных. Описание структуры программы. Описание разработки приложения. Подключение к базе данных, выполняемое с помощью компонента ADOConnectio. Создание средств защиты информации в программе.
курсовая работа [2,1 M], добавлен 16.02.2015Создание программы, предназначенной для автоматизации операций, связанных с регистрацией, поиском и обработкой данных о школьниках, преподавателях. Описание пользователей системы, требований к программному и аппаратному обеспечению, интерфейса программы.
курсовая работа [734,3 K], добавлен 12.03.2013Количественная оценка стойкости пароля. Создание программы на базе разработанного алгоритма. Экспериментальная проверка количественных оценок стойкости пароля. Понятие и назначение интерфейса. Методы защиты от несанкционированного доступа к информации.
курсовая работа [22,8 K], добавлен 13.11.2009Создание обучающей презентации о создании сайта в программе для конструирования сайтов "Joomla". Установка локального сервера "Denwer" и программы "Joomla". Создание меню, загрузка изображений. Смена шаблона, работа с текстом в программе MS PowerPoint.
дипломная работа [3,8 M], добавлен 04.03.2013Характеристика этапов разработки программных средств. Спецификация, алгоритм, кодирование, отладка и тестирование. Создание справочной системы и установочного диска. Назначение программы, язык программирования. Технические требования к программе.
курсовая работа [1006,4 K], добавлен 19.12.2013История создания WordPress. Выбор домена и хостинга для сайта. Минимальные требования для установки системы. Загрузка Wordpress для самостоятельной установки. Создание базы данных mysql. Установка прав доступа к директориям. Повышение производительности.
курсовая работа [1,7 M], добавлен 18.12.2013Организация корпоративного файлового сервера, выполняющего функции прокси-сервера на базе ОС Linux. Процесс его реализации. Выбор оптимальной аппаратно-программной платформы. Расчёт сметы затрат на выполнение объёма работ по созданию FTP-сервера.
дипломная работа [2,0 M], добавлен 06.07.2012Средства программирования, описание языка С++. Назначение программы, требования к документации. Стадии разработки, виды испытаний. Используемые технические, программные средства. Вызов и загрузка, входные и выходные данные. Программа и методика испытаний.
контрольная работа [205,3 K], добавлен 23.07.2013Создание аппаратно-программных средств для системы сбора данных и управления с использованием локальной сети. Предметная область системы, ее структурная схема. Описание рабочих алгоритмов, выбор аппаратной платформы. Тестирование разработанной системы.
дипломная работа [2,0 M], добавлен 29.05.2015Описание пакета прикладной программы Net Beans 8.1. Разработка пользовательского интерфейса апплета. Создание рамочных окон на базе фреймов библиотеки java.swing. Изменение цвета текстовых данных. Проектирование и создание инфологической модели апплета.
контрольная работа [1,8 M], добавлен 11.07.2016Обоснование выбора средств разработки. Алгоритм загрузки изображения на сервер. Модуль авторизации в административной панели сайта. Хранение данных в базе данных. Работа с локальными и удалёнными файлами. Тестирование работы программного средства.
курсовая работа [1,3 M], добавлен 18.04.2018Создание программы для вычисления стоимости мороженного, по выбранному сорту мороженного и введенному количеству. Создание репозитария, находящегося в главном компьютере сети. Осуществление аутентификации разных пользователей в разработанной программе.
контрольная работа [1,5 M], добавлен 27.06.2022Описание технических средств. Описание программного обеспечения. Порядок создания документа. Способы получения справочной информации. Создание нового документа. Загрузка рабочего документа. Рабочая книга, ячейки.
контрольная работа [44,8 K], добавлен 09.04.2004Создание инструмента проектирования и прототипирования графических пользовательских интерфейсов сложных информационных систем. Интерфейс пользователя и командной строки. Средства прототипирования и их характеристики. Создание интерактивных прототипов.
дипломная работа [2,4 M], добавлен 04.07.2011