Питание Arduino Uno Rev3
Платы Arduino Uno R3 может получать питание через подключение USB или от внешнего источника питания. Источник питания выбирается автоматически.
Питать плату можно следующими способами:
- от внешнего адаптера – рекомендуемое напряжение от 7 до 12 В. При использовании напряжения выше 12 В регулятор напряжения может перегреться и повредить плату. При напряжении питания ниже 7 В, вывод 5V может выдавать менее 5 В, что приведёт к нестабильной работе платы;
- от USB-порта компьютера;
- подача 5 В напрямую на пин 5V. В этом случае обходится стороной входной стабилизатор и даже малейшее превышение напряжения может привести к поломке устройства.
Выводы питания:
- 5V – на этот пин ардуино подаёт 5 В, его можно использовать для питания внешних устройств;
- 3.3V – на этот пин от внутреннего стабилизатора подается напряжение 3.3 В;
- GND – вывод земли;
- VIN – пин для подачи внешнего напряжения;
- IREF – пин для информирования внешних устройств о рабочем напряжении платы.
Что из себя представляет контроллер?
Играя в уже, наверное, всем известный Euro Truck Simulator 2, используя в качестве руля мышку, мне пришла в голову мысль — а почему бы не собрать настоящий тренажёр как в автошколе! На полноценную кабину грузовика ни места в комнате, ни ресурсов не хватит, однако ведь можно сделать приборную панель грузовика, да чтоб с рулём, щитком приборов и всеми элементами управления (по возможности). Этот момент и стал рождением данного проекта, цель которого — недорого и с умом сделать интерактивную панель управления грузовика, которая синхронизированно работает с игрой Euro Truck Simulator 2.
Скетч (прошивка) для контроллера Arduino Mega
Скачать готовый скетч в файле можете по этой ссылке.
digitalInput = digitalRead(4); // зажигание // digitalInput = digitalRead(5); // //******************************************************************** digitalInput = digitalRead(53) + // digitalRead(51) * 2; // //******************************************************************** digitalInput = digitalRead(5) + // A14 левый поворот digitalRead(6) * 2; // A13 правый поворот //******************************************************************** digitalInput = digitalRead(8) + // A18 ближний digitalRead(9) * 2; // A17 дальний //******************************************************************** digitalInput = digitalRead(10) + // А16 птф передние digitalRead(11) * 2; // A15 птф задний //******************************************************************** digitalInput = digitalRead(23); // A23 чек digitalInput = !digitalRead(21); // B 9 — уровень тж digitalInput = !digitalRead(31); // A19 — ручник digitalInput = digitalRead(25); // B 3 износ колодок digitalInput = !digitalRead(45); // B10 — лампа топлива digitalInput = !digitalRead(51); // B12 — уровень ож digitalInput = !digitalRead(47); // А24 — давление масла digitalInput = digitalRead(27); // A20 лампа вентилятора digitalInput = !digitalRead(29); // A23 зарядка digitalInput = digitalRead(33); // A 5 абс digitalInput = digitalRead(35); // A20 srs digitalInput = digitalRead(37); // A 3 ремень digitalInput = digitalRead(39); // B 1 двери digitalInput = 0;//digitalRead(22); // B 2 p digitalInput = 0;//digitalRead(24); // А22 r digitalInput = 0;//digitalRead(26); // A 7 n digitalInput = 0;//digitalRead(28); // B 6 d digitalInput = 0;//digitalRead(30); // B 5 s digitalInput = digitalRead(41); // A 8 резерв digitalInput = 0;//digitalRead(32); // A 9 резерв digitalInput = digitalRead(43); // A10 резерв digitalInput = 0;//digitalRead(34); // A11 резерв digitalInput = digitalRead(49); // B 4 резерв
resultString = String(resultString + sp); resultString = String(resultString + «,»); resultString = String(resultString + th*10); resultString = String(resultString + «,»); for(i=0; i resultString = String(resultString + analogInput); resultString = String(resultString + «,»); > for(i=0; i resultString = String(resultString + digitalInput); > resultString = String(resultString + «:\n»); // Serial2.print (resultString); Serial.print (resultString); resultString = String(«»); tz = tz — 1; sz = sz — 1; if (tz == 0)
Описание пинов Ардуино
Пины Ардуино используются для подключения внешних устройств и могут работать как в режиме входа (INPUT), так и в режиме выхода (OUTPUT). К каждому входу может быть подключен встроенный резистор 20-50 кОм с помощью выполнения команды pinMode () в режиме INPUT_PULLUP. Допустимый ток на каждом из выходов – 20 мА, не более 40 мА в пике.
Для удобства работы некоторые пины совмещают в себе несколько функций:
- Пины 0 и 1 – контакты UART (RХ и TX соответственно) .
- Пины c 10 по 13 – контакты SPI (SS, MOSI, MISO и SCK соответственно)
- Пины A4 и A5 – контакты I2C (SDA и SCL соответственно).
Цифровые пины платы Uno
Пины с номерами от 0 до 13 являются цифровыми. Это означает, что вы можете считывать и подавать на них только два вида сигналов: HIGH и LOW. С помощью ШИМ также можно использовать цифровые порты для управления мощностью подключенных устройств.
Пин ардуино | Адресация в скетче | Специальное назначение | ШИМ |
Цифровой пин 0 | RX | ||
Цифровой пин 1 | 1 | TX | |
Цифровой пин 2 | 2 | Вход для прерываний | |
Цифровой пин 3 | 3 | Вход для прерываний | ШИМ |
Цифровой пин 4 | 4 | ||
Цифровой пин 5 | 5 | ШИМ | |
Цифровой пин 6 | 6 | ШИМ | |
Цифровой пин 7 | 7 | ||
Цифровой пин 8 | 8 | ||
Цифровой пин 9 | 9 | ШИМ | |
Цифровой пин 10 | 10 | SPI (SS) | ШИМ |
Цифровой пин 11 | 11 | SPI (MOSI) | ШИМ |
Цифровой пин 12 | 12 | SPI (MISO) | |
Цифровой пин 13 | 13 | SPI (SCK)
К выходу также подсоединен встроенный светодиод (есть в большинстве плат Arduino) |
Аналоговые пины Arduino Uno
Аналоговые пины Arduino Uno предназначены для подключения аналоговых устройств и являются входами для встроенного аналого-цифрового преобразователя (АЦП), который в ардуино уно десятиразрядный.
Пин | Адресация в скетче | Специальное назначение |
Аналоговый пин A0 | A0 или 14 | |
Аналоговый пин A1 | A1 или 15 | |
Аналоговый пин A2 | A2 или 16 | |
Аналоговый пин A3 | A3 или 17 | |
Аналоговый пин A4 | A4 или 18 | I2C (SCA) |
Аналоговый пин A5 | A5 или 19 | I2C (SCL) |
Дополнительные пины на плате
- AREF – выдает опорное напряжения для встроенного АЦП. Может управляться функцией analogReference().
- RESET – подача низкого сигнала на этом входе приведет к перезагрузке устройства.
Синхронизация с Euro Truck Simulator 2
Контроллер связан с игрой при помощи COM-порта. Ардуино эмулирует этот порт и подключается к компьютеру по USB. Благодаря разработчикам игры из SCS Software, которые любезно открыли исходный код, отвечающий за телеметрию, у нас есть возможность создавать данный проект. Со стороны игры есть класс, который упаковывает нужные данные в массив байт, который посылается этим же классом на последовательный порт. Вот часть кода класса-упаковщика, который отвечает за открытие порта:
bool ComController::openCom() { m_hComPort = CreateFile(m_comName, GENERIC_WRITE, NULL, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if (m_hComPort == INVALID_HANDLE_VALUE) { m_comState = false; return m_comState; } DCB serialParams = { }; serialParams.DCBlength = sizeof(serialParams); if (!GetCommState(m_hComPort, &serialParams)) { m_comState = false; return m_comState; } serialParams.BaudRate = CBR_115200; serialParams.ByteSize = 8; serialParams.Parity = NOPARITY; serialParams.StopBits = ONESTOPBIT; assert("Cannot set COM state" && SetCommState(m_hComPort, &serialParams)); if (!SetCommState(m_hComPort, &serialParams)) { m_comState = false; return m_comState; } m_packet = 126; m_comState = true; return m_comState; }
Со стороны Ардуино код распаковывает полученный массив байт и, в зависимости от полученных данных, подаёт нужные сигналы на свои порты, к которым подключены лампочки, сервоприводы, дисплей бортового ПК…
Приложение «Приборная панель для планшета»
Благодарим пользователя портала Drive2 за опубликованную версию приложения и описание метода установки приложения:
После установки приложение уже будет работать. Для того чтобы включить его автозагрузку необходимо сделать следующее:
После установки необходимо зайти в настройки Андроид, в раздел «Домашний экран», выбрать приложение приборной панели VenatorLite2. Очень важный момент! Выйти в настройки Андроида из приложения приборной панели для возврата стандартного Launcher-a нельзя. Перед тем как установить приложение вместо Launcher-a необходимо убедиться что в настройки можно зайти из статусбара. Иначе вернуть стандартный лаунчер будет проблематично.
ПРИМЕЧАНИЕ! Перед установкой автозагрузки желательно настроить и отладить работу приложения.
После запуска приложения нужно зайти в настройки (нажать на значок шестеренки справа вверху). Тут надо указать ip-адрес и порт (В нашем примере этими значениями являются: адрес 192.168.4.1 и порт 3333).
Осталось все подключить и протестировать. Если все сделали правильно, то при вкючении устройства и подаче на 4-ый пин ардуино «плюса» приборная панель включится.
А вот как выглядит приборная панель, установленная в ОКУ:
Желаем успеха в реализации данного проекта
Расширение возможности на Ардуино
Одной из возможностей умного дома является визуализация состояния автоматики и проходящих в системе процессов. Для этого рекомендуется применять отдельный сервер, обеспечивающий обработку состояний (может применяться программа Node.js).
Упомянутая программная технология применяется для решения интернет-задач, поэтому для визуализации «Умного дома» используется язык Java Script (именно с его помощью создается обработчик и сервер). Результаты можно увидеть на экране компьютера или ПК.
Для реализации задуманного подойдет ноутбук, обычный ПК или Raspberry Pi. Применение такой системы позволяет увеличить ее возможности. Так, если на плате Ардуино имеется небольшой объем памяти, на сервере такие ограничения отсутствуют. Программа пишется таким образом, чтобы обеспечить полное управление платформой.
При желании можно задать алгоритм, который будет фиксировать факт нахождения человека в доме, и собирать эту информацию. Если владелец ежедневно возвращается где-то к 17.30, за час может быть включен бойлер или отопительные устройства. По приходу домой человек попадает в теплое здание с горячей водой.
Программа может запомнить время, когда владелец ложится отдыхать и отключать нагрев воды. Таких нюансов, которые при необходимости вносятся в программу, множество. Именно наличие внешнего ПК дает большие возможности контроллеру на Ардуино.
Планшетники
Планшетники Планшетники
Лавина разнообразных планшетников — от баснословно дорогих до вызывающе дешевых — за последний год заполонила российский рынок. Конечно, лидирует здесь эппловский iPad, но с каждым днем лидера все больше теснят портативные компьютеры с операционной системой Google Android. В качестве представителя этой группы мы взяли более компактный, но едва ли не самый мощный тайваньский 7-дюймовый HTС Flyer (у iPad диагональ экрана 9,7 дюйма). Как использовать современную технику в машине, долго думать не пришлось. Способы применения подсказали технические характеристики аппарата: помимо мультимедийных возможностей здесь был чип для GPS-навигации и сим-карта для доступа в Интернет через сеть сотовой связи.
Подключение устройств
Подключение любых устройств к плате осуществляется путем присоединения к контактам, расположенным на плате контроллера: одному из цифровых или аналоговых пинов или пинам питания. Простой светодиод можно присоединить, используя два контакта: землю (GND) и сигнальный (или контакт питания).
Самый простой датчик потребует задействовать минимум три контакта: два для питания, один для сигнала.
При любом варианте подключения внешнего устройства следует помнить, что использование платы в качестве источника питания возможно только в том случае, если устройство не потребляет больше разрешенного предельного тока контроллера.
Видео с инструкциями:
Контроллер GRBL
После того как вы сгенерировали G-код с помощью Inkscape может возникнуть необходимость в проверке того, укладываются ли он в заданные ограничения (по возможности рисования).
Ограничения по рисованию определяются в следующих строчках кода нашей программы для Arduino:
В следующем окне GRBL контроллера можно проверить не выходит ли изображение на сгенерированном нами G-коде за пределы рисования, указанные в программе для Arduino. Если какая то часть изображения будет выходить за эти ограничения, то она не будет нарисована.
В нашем примере значения x и y изменяются в диапазоне от 0 до 40 мм. Но поскольку мы сконструировали плоттер с большей зоной рисования, то мы изменили максимальную границу с 40 до 60 мм.
Поэтому после того как вы нарисовали G-код в Inkscape желательно перед загрузкой его в плату Arduino проверять его с помощью программы GRBL не выходит ли он за пределы области рисования. Если выходит, то просто измените его размеры в Inkscape.
Подбираем комплектацию под проект на примере Arduino Mega 2560 R3
Для создания полноценной системы «Умный дом» и выполнения ею возложенных функций важно правильно подойти к комплектации и выбору оборудования
Что входит в комплект поставки?
Если ваша цель — «Умный дом» на базе Arduino, требуется подготовить следующее оборудование — саму плату Mega 2560 R3, модуль Ethernet (ENC28J60), датчик движения, а также другие датчики и контроллеры.
Кроме того, стоит подготовить кабель вида «витая пара», резистор, реле, переключатель и кабель для модуля Ethernet.
Необходимы и дополнительные инструменты — отвертки, паяльники и прочее.
Учтите, что покупать наборы для монтажа системы стоит в сертифицированных пунктах. Это объясняется тем, что при реализации проекта применяется электричество, а использование подделки может привести к снижению уровня безопасности.
Все программы для адаптации можно найти в сети на официальном сайте Arduino https://arduino.ru. При выборе датчиков стоит ориентироваться на задачи, которая должен решать «Умный дом».
Как правило, требуются датчики движения, температуры, открытия дверей и освещенности. Роль датчика открытия дверей может выполнять обычный геркон.
Прошивается плата с помощью специального софта, предназначенного для различных операционных систем, в том числе и кабеля USB. При этом в программаторах нет необходимости.
Что касается ПО, которое применяется в Ардуино, оно написано на языке Си. На число байт имеются определенные ограничения, но текущей памяти достаточно для реализации поставленной задачи.
Что такое GSM розетка для умного дома, устройство, принцип работы, инструкция по подключению, как сделать своими руками
Разработка проекта
На современном рынке представлено множество устройств Arduino, имеющих различную комплектацию. Но универсального решения «на все случаи жизни» не существует. В зависимости от поставленной задачи каждый комплект подбирается в индивидуальном порядке. Чтобы избежать ошибок, требуется разработка проекта.
Какие проекты можно создавать на Arduino?
Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:
- Сборка кубика Рубика (система справляется за 0,887 с);
- Контроль влажности в подвальном помещении;
- Создание уникальных картин;
- Отправка сообщений;
- Балансирующий робот на двух колесах;
- Анализатор спектра звука;
- Лампа оригами с емкостным сенсором;
- Рука-робот, управляемая с помощью Ардуино;
- Написание букв в воздухе;
- Управление фотовспышкой и многое другое.
Как подключить проходной выключатель: одноклавишный, двухклавишный, как обычный, схемы, критерии выбора
Составление проекта для умного дома
Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.
Такое здание состоит из пяти основных зон — прихожей, крыльца, кухни, санузла, а также комнаты для проживания.
При составлении проекта стоит учесть следующее:
- КРЫЛЬЦО. Включение света производится в двух случая — приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
- САНУЗЕЛ. В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
- ПРИХОЖАЯ. Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
- КОМНАТА. Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
- КУХНЯ. Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.
Отопительные устройства выполняют задачу поддержания необходимой температуры в помещении. Если в доме отсутствуют люди, нижний предел температуры падает до определенного уровня.
После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса — не более 10 минут в час.
Стоит обратить внимание, что если в доме планируется установка умных розеток, то для управления ими лучше использовать приложения на мобильных устройствах, WIFI или через SMS сообщения. Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта https://flprog.ru/
Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта https://flprog.ru/.
Написание программы управления плоттером для Arduino и тестирование проекта
Перед началом написания программы необходимо удостовериться в том, подключены ли шаговые двигатели и работают ли они корректно.
Поскольку в нашем проекте мы используем шилд драйвера двигателей L293D нам необходимо скачать библиотеку AFmotor Library. Затем добавьте ее в каталог библиотек Arduino IDE. Переименуйте его в AFMotor. Если у вас открыта Arduino IDE, то закройте ее и снова откройте (то есть перезапустите), кликните на пункт меню file -> examples -> Adafruit Motor Shield Library -> stepper. Убедитесь в том, что вы выбрали правильный COM порт и плату Arduino и затем загрузите код этого примера в вашу плату Arduino. После этого на шаговом двигателе 1 вы должны наблюдать некоторые движения.
Для того чтобы протестировать работу шагового двигателя 2 измените порт двигателя с 2 на 1 в следующем фрагменте кода и снова загрузите код примера в плату Arduino.
Arduino
#include <AFMotor.h>
// Connect a stepper motor with 48 steps per revolution (7.5 degree)
// to motor port #2 (M3 and M4)
AF_Stepper motor(48, 2);
1 |
#include <AFMotor.h> AF_Steppermotor(48,2); |
Код программы для Arduino
Теперь, когда вы убедились в том, что шаговые двигатели функционируют, скопируйте код Arduino для нашего плоттера (приведен в конце статьи, также его можно скачать по этой ссылке) и загрузите его в плату Arduino.
G-код (G-Code) для плоттера с ЧПУ
G-код представляет собой язык, на которым мы говорим машине с числовым программным управлением (ЧПУ) что она должна делать. В основном он содержит координаты X, Y и Z.
Пример этого кода:
Arduino
G17 G20 G90 G94 G54
G0 Z0.25X-0.5 Y0.
Z0.1
G01 Z0. F5.
G02 X0. Y0.5 I0.5 J0. F2.5
X0.5 Y0. I0. J-0.5
X0. Y-0.5 I-0.5 J0.
X-0.5 Y0. I0. J0.5
G01 Z0.1 F5.
G00 X0. Y0. Z0.25
1 |
G17G20G90G94G54 G0Z0.25X-0.5Y0. Z0.1 G01Z0.F5. G02X0.Y0.5I0.5J0.F2.5 X0.5Y0.I0.J-0.5 X0.Y-0.5I-0.5J0. X-0.5Y0.I0.J0.5 G01Z0.1F5. G00X0.Y0.Z0.25 |
Написание G-кода вручную даже для простых геометрических фигур достаточно утомительно, поэтому мы воспользуемся специальным программным обеспечением которое позволит нам генерировать G-код. В нашем проекте мы для этой цели использовали программное обеспечение Inkscape, которое можно скачать по этой ссылке. Также вы можете скачивать уже готовые G-коды в интернете.
Программная среда Processing IDE для загрузки G-кода в Arduino
Программная среда с открытым исходным кодом Processing IDE поможет нам в загрузке G-кодов в плату Arduino. Для этого вам сначала необходимо скачать GCTRL.PDE file. После скачивания откройте этот файл в Processing IDE.
После этого нажмите “run” (запуск программы). На экране появится окно со всеми необходимыми инструкциями. Нажмите “p” на клавиатуре. Система попросит вас выбрать порт. Выберите порт, к которому подключена ваша плата Arduino. В нашем случае это порт 6.
Теперь нажмите “g” на клавиатуре и выберите папку на компьютере, где у вас хранится ваш G-код. Выберите необходимый файл с G-кодом и нажмите enter. Если все соединения в схеме у вас сделаны правильно, то вы заметите как устройство (плоттер) начнет рисовать на бумаге.
Если вы хотите остановить процесс рисования, то просто нажмите “x” и плоттер остановит свою работу.
Шаг 5. Ардуино контроллер
Arduino UNO — это плата микроконтроллера с открытым исходным кодом, основой которой служит микроконтроллер Microchip ATmega328P и разработанная Arduino.cc.
Плата оснащена наборами цифровых и аналоговых пинов ввода/вывода (I/O), которые могут быть подключены к различным платам расширения (экранам) и другим цепям. Плата имеет 14 цифровых контактов, 6 аналоговых контактов и программируется с помощью Arduino IDE (интегрированная среда разработки) через USB-кабель типа B. Плата может питаться от USB-кабеля или от внешней 9-вольтовой батареи, хотя он принимает напряжение от 7 до 20 вольт, по аналогии с Arduino Nano и Leonardo.
Эталонный дизайн оборудования распространяется под лицензией Creative Commons Attribution Share-Alike 2.5 и доступен на веб-сайте Arduino. Макет и производственные файлы для некоторых версий оборудования также доступны. «Uno» означает один на итальянском языке и был выбран в честь выпуска Arduino Software (IDE) 1.0. Плата Uno и версия 1.0 программного обеспечения Arduino (IDE) были эталонными версиями Arduino, теперь разработанными для более новых выпусков.
Плата Uno является первой в серии плат Arduino c USB и эталонной моделью для последующих платформ. ATmega328 на Arduino Uno поставляется с предварительно запрограммированным загрузчиком, который позволяет загружать новый код без использования внешнего аппаратного программера с использованием оригинального протокола STK500. Uno также отличается от всех предыдущих плат тем, что не использует микросхему драйвера FTDI USB-to-serial. Вместо этого он использует Atmega16U2 (Atmega8U2 до версии R2), запрограммированный как преобразователь USB-to-serial.
Микроконтроллеры обычно программируются с использованием диалекта функций из языков программирования C и C++. В дополнение к использованию традиционных наборов инструментов компилятора проект Arduino предоставляет интегрированную среду разработки (IDE).
Где купить Arduino Uno
Минимальные цены на платы UNO можно найти в китайских электронных магазинах. Если у вас есть несколько недель на ожидание, вы можете существенно сэкономить, купив дешево (в районе 200-300 рублей) с бесплатной доставкой. Причем можно найти как самые простые варианты, так и официальные или “почти оригинальные” платы на базе оригинального микроконтроллера. Еще одна группа товаров – необычные платы со встроенными WiFi (на базе ESP8266 или ESP32), дополнительными разъемами для более удобного подключения периферии. Вот некоторые варианты, которые можно купить у проверенных поставщиков на Алиэкспрессе:
Если вы интересуетесь наборами Ардуино, то более подробный обзор доступных вариантов вы можете найти на нашем сайте.
Цифровая приборная панель на автомобиль своими руками
Для ее создания потребуются следующие комплектующие:
- Контроллер Arduino MEGA
- Планшет с операционной систем Androir
- Модуль Wi-Fi esp8266
- Преобразователь питания с 12 до 5 вольт (можно использовать любое автомобильное зарядное устройство для мобильных телефонов).
К контроллеру Arduino подключаются все датчики автомобиля. В нашем случае потребовалось еще установить датчик скорости в коробку передач вместо тросика привода спидометра. А так же завести провод в салон автомобиля от коммутатора зажигания, чтобы контроллер смог отображать обороты двигателя (это нужно было сделать, так как в ОКЕ не был установлен тахометр).
Программирование для платы Uno
Для написания программ (скетчей) для контроллер Ардуино вам нужно установить среду программирования. Самым простым вариантом будет установка бесплатной Arduino IDE, скачать ее можно с официального сайта.
После установки IDE вам нужно убедиться, что выбрана нужная плата. Для этого у Arduino IDE в меню “Инструменты” и подпункте “Плата” следует выбрать нашу плату (Arduino/Genuino Uno). После выбора платы автоматически изменятся параметры сборки проекта и итоговый скетч будет скомпилирован в формат, который поддерживает плата. Подключив контроллер к компьютеру через USB, вы сможете в одно касание заливать на него вашу программу,используя команду “Загрузить”.
Сам скетч чаще всего представляет собой бесконечный цикл, в котором регулярно опрашиваются пины с присоединенными датчиками и с помощью специальных команд формируется управляющее воздействие на внешние устройства (они включаются или выключаются). У программиста Ардуино есть возможность подключить готовые библиотеки, как встроенные в IDE, так и доступные на многочисленных сайтах и форумах.
Написанная и скомпилированная программа загружается через USB-соединение (UART- Serial). Со стороны контролера за этот процесс отвечает bootloader.
Более подробную информацию о том, как устроены программы для платы Ардуино можно найти в нашем разделе, посвященном программированию.
Как сгенерировать свой собственный G-код
В этом разделе статьи мы рассмотрим как с помощью программного обеспечения Inkscape сгенерировать G-код для надписи HELLO WORLD.
Примечание: Inkscape не умеет сохранять G-коды. Поэтому дополнительно установите вот этот MakerBot Unicorn plugin который позволяет экспортировать изображения в G-коды. Но новые версии Inkscape, возможно, уже умеют сохранять G-коды. Оригинал этой статьи был написан в 2017 году, возможно, с тех пор уже что то изменилось.
Если установка прошла успешно, откройте File menu в Inkscape кликните на Document Properties (свойства документа). Сначала измените размеры с px на миллиметры (mm). Также уменьшите ширину и высоту до 90 мм. Теперь закройте это окно. После этого в зоне рисования появится квадрат – именно в нем мы и будем писать наш текст.
Теперь слева в панели инструментов кликните на “create and edit text object tab”. Напишите текст HELLO WORLD и установите его необходимую позицию с помощью инструмента, показанного на следующем рисунке.
Кликните text и выберите необходимый вам шрифт. Кликните apply (применить) и закройте.
Теперь кликните на path и выберите object to path. Теперь ваш текст готов к сохранению в виде G-кода. Кликните на file -> save и напишите имя файла hello world.
Измените тип файла на MakerBot Unicon G-Code как показано на следующем рисунке (эта возможность будет вам доступна если вы успешно установили плагин MakerBot Unicorn). Теперь нажмите на save и кликните на ok в открывшемся окне.
Сохраненный G-код вы можете использовать для рисования на плоттере с помощью выше описанных операций.
Описание пинов Arduino Uno Rev3
Пины Ардуино используются для подключения внешних устройств и могут работать как в режиме входа, так и в режиме выхода. Каждый вывод имеет нагрузочный резистор (по умолчанию отключен) 20-50 кОм и может пропускать до 40 мА.
Некоторые выводы имеют особые функции:
- Пины 0 и 1 – контакты UART (RХ и TX соответственно) .
- Пины c 10 по 13 – контакты SPI (SS, MOSI, MISO и SCK соответственно)
- Пины A4 и A5 – контакты I2C (SDA и SCL соответственно).
Цифровые пины платы Uno
Пины с номерами от 0 до 13 являются цифровыми. Это означает, что вы можете считывать и подавать на них только два вида сигналов: HIGH и LOW. С помощью ШИМ также можно использовать цифровые порты для управления мощностью подключенных устройств.
Пин | Адресация | Специальное назначение | ШИМ |
---|---|---|---|
RX | |||
1 | 1 | TX | |
2 | 2 | Вход для прерываний | |
3 | 3 | Вход для прерываний | ШИМ |
4 | 4 | ||
5 | 5 | ШИМ | |
6 | 6 | ШИМ | |
7 | 7 | ||
8 | 8 | ||
9 | 9 | ШИМ | |
10 | 10 | SPI (SS) | ШИМ |
11 | 11 | SPI (MOSI) | ШИМ |
12 | 12 | SPI (MISO) | |
13 | 13 | SPI (SCK) К выходу также подсоединен встроенный светодиод (есть в большинстве плат Arduino) |
Аналоговые пины Arduino Uno
Аналоговые пины Arduino Uno Rev3 предназначены для подключения аналоговых устройств и являются входами для встроенного аналого-цифрового преобразователя (АЦП), который в ардуино уно десятиразрядный.
Пин | Адресация | Специальное назначение |
---|---|---|
A0 | A0 или 14 | |
A1 | A1 или 15 | |
A2 | A2 или 16 | |
A3 | A3 или 17 | |
A4 | A4 или 18 | I2C (SCA) |
A5 | A5 или 19 | I2C (SCL) |
Дополнительные пины на плате
- AREF – выдает опорное напряжения для встроенного АЦП. Может управляться функцией analogReference().
- RESET – Низкий уровень сигнала на выводе перезагружает микроконтроллер. Обычно применяется для подключения кнопки перезагрузки на плате расширения, закрывающей доступ к кнопке на самой плате Arduino.
