Arduino IDE: установка и настройка
Рассмотрим начало работы с Arduino IDE в операционной системе Windows на примере Uno. Для других плат разница минимальна — эти особенности перечислены на страницах описания конкретных плат.
1. Установка Arduino IDE под Windows
Установите на компьютер интегрированную среду разработки Arduino IDE.
Последняя стабильная версия всегда доступна на нашем сайте.
Шаг 1

Выберите версию среды в зависимости от операционной системы.
Шаг 2

Нажмите на кнопку «JUST DOWNLOAD» для бесплатной загрузки программы.
2. Запуск Arduino IDE

Запустите среду программирования.
Arduino IDE не запускается?
Вероятнее всего, на компьютере некорректно установлена JRE — Java Runtime Environment. Для решения проблемы переустановите программу.
3. Подключение платы Arduino к компьютеру
Соедините Arduino с компьютером по USB-кабелю. На плате загорится светодиод «ON» и начнёт мигать светодиод «L». Это значит, что на плату подано питание и микроконтроллер начал выполнять прошитую на заводе программу «Blink».

Для настройки Arduino IDE под конкретную модель узнайте, какой номер COM-порта присвоил компьютер вашей плате. Зайдите в «Диспетчер устройств» Windows и раскройте вкладку «Порты (COM и LPT)».
Операционная система распознала плату Arduino как COM-порт и назначила номер 2 . Если вы подключите к компьютеру другую плату, операционная система назначит ей другой номер. Если у вас несколько платформ, очень важно не запутаться в номерах COM-портов.
Что-то пошло не так?
После подключения Arduino к компьютеру в диспетчере устройств не появляются новые устройства? Это может быть следствием следующих причин:
Неисправный USB-кабель или порт.
Блокировка со стороны операционной системы.
Неисправная плата.
4. Настройка Arduino IDE
Для работы среды Arduino IDE с конкретной платформой необходимо выбрать название модели и номер присвоенного плате COM-порта.

Для выбора модели Arduino зайдите в меню: Инструменты Плата и укажите соответствующую плату.

Для выбора номера COM-порта перейдите в меню: Инструменты Порт и укажите нужный порт.
Поздравляем, среда Arduino IDE настроена для прошивки вашей платы.
Что-то пошло не так?
Список последовательных портов пуст? Значит, платформа некорректно подключена к компьютеру или не установлен драйвер. Вернитесь к настройке соединения между платой и ПК.
Arduino IDE тормозит при навигации по меню? Отключите в диспетчере устройств все внешние устройства типа «Bluetooth Serial». Например, виртуальное устройство для соединения с мобильным телефоном по Bluetooth может вызвать такое поведение.
5. Загрузка первого скетча
Среда настроена, плата подключена. Пора прошивать платформу.
Arduino IDE содержит большой список готовых примеров, в которых можно быстро подсмотреть решение какой-либо задачи.

Откройте распространенный пример — «Blink»: Файл Примеры 01.Basics Blink .

Откроется окно с демонстрационным примером.
Немного модифицируйте код, чтобы увидеть разницу с заводским миганием светодиода. Замените строчки:
delay(1000);
delay(100);
Полная версия кода: blink.ino
void setup() { // initialize digital pin LED_BUILTIN as an output pinMode(LED_BUILTIN, OUTPUT); } void loop() { // turn the LED on (HIGH is the voltage level) digitalWrite(LED_BUILTIN, HIGH); // wait for a second delay(100); // turn the LED off by making the voltage LOW digitalWrite(LED_BUILTIN, LOW); // wait for a second delay(100); }

Нажмите на иконку «Компиляция» для проверки кода на ошибки.

Нажмите на иконку «Загрузка» для заливки на плату.
После прошивки платформы светодиод «L» начнёт загораться и гаснуть каждые 100 миллисекунд — в 10 раз быстрее исходной версии. Это значит, что ваш тестовый код успешно загрузился и заработал. Теперь смело переходите к экспериментам на Arduino.
Начало работы с Arduino IDE и платой Arduino
Что такое Arduino IDE? Как мы знаем, для успешной работы нам необходимы текстовый редактор для написания кода программы, компилятор для преобразования кода программы в машинный код/бинарный файл и программное обеспечение для загрузки этого кода в микроконтроллер. Когда все эти функции мы объединяем в одном программном продукте, добавляя в него ряд дополнительных функций (поддержка консоли, отладка программы и т.п.), мы получаем интегрированную среду разработки (в англ. Integrated Development Environment, IDE). Соответственно, Arduino IDE, как следует из ее названия, является интегрированной средой разработки для плат Arduino. Она состоит из продвинутого редактора кода программы, компилятора, программатора, последовательной консоли, последовательного плоттера и многих других полезных инструментов. И при этом она легка в освоении и использовании.

Arduino IDE является кроссплатформенным программным продуктом и может работать на операционных системах Linux и Windows. Ее можно даже использовать в операционной системе платы Raspberry Pi. (. ) Мы можем программировать платы с помощью Arduino IDE и языка Arduino (в некоторых источниках его называют Wiring), который является производным от языков программирования C/C++.
Данная статья посвящена началу работы с Arduino IDE. У нас на сайте уже есть достаточно популярная статья про начало работы с платой Arduino, но в ней основное внимание уделено именно работе с платой Arduino, вопросы работы с Arduino IDE в ней рассмотрены в меньшей степени, чем в данной статье. Также для начинающих рекомендуем прочитать статью про наиболее распространенные ошибки при работе с платой Arduino.
Альтернативами Arduino IDE, которые могут заместить практически все ее функции, являются Arduino Web Editor и PlatformIO.
Как установить Arduino IDE
Установка Arduino IDE отличается исключительной простотой. Вначале скачайте Arduino IDE с официального сайта. Доступны ее различные версии для операционных систем Windows, Mac и Linux. Также возможны ее два варианта – Arduino IDE 1.x и Arduino IDE 2.x. В большинстве своем различия между этими двумя вариантами обусловлены различным видом графического интерфейса пользователя (GUI). В данной статье мы будем использовать ее классический вариант 1.X.
Для установки Arduino IDE выполните следующую последовательность действий:
- по вышеприведенной ссылке скачайте установщик Arduino IDE для необходимой вам операционной системы;
- запустите на выполнение скачанный .exe файл;
- согласитесь с условиями лицензии, выберите должна ли Arduino IDE быть установлена для всех пользователей или нет и нажмите “Next” для продолжения;
- выберите путь для установки Arduino IDE или оставьте его по умолчанию (какой предлагает установщик) и нажмите на “Install”;
- подождите пока закончится процесс установки, затем нажмите на “Close”.
Установка драйвера для Arduino
Один из наиболее частых вопросов, который озадачивает начинающих – это установка драйвера для работы с платами Arduino. Но в настоящее время вам уже не стоит беспокоиться об этом вопросе потому что установщик самостоятельно скачивает все необходимые для работы Arduino IDE файлы и автоматически устанавливает необходимый драйвер при подключении платы Arduino к компьютеру.
Подключение платы Arduino к компьютеру
Для подключения платы Arduino к компьютеру просто подсоедините соответствующий кабель к плате Arduino, а другой его конец подсоедините к USB порту вашего компьютера. При этом на плате Arduino должен загореться светодиод, свидетельствующий о подаче на нее питания. После этого операционная система автоматически установит драйвер для работы с платой.

Основы работы с Arduino IDE
После завершения процесса установки Arduino IDE вы можете запустить ее при помощи ярлыка быстрого запуска на рабочем столе или из меню Start. На следующем рисунке показан интерфейс запущенной Arduino IDE.

Выбор платы Arduino
Прежде чем начать компиляцию программы в Arduino IDE очень важно выбрать в ней правильную плату Arduino, с которой вы работаете. Для этого выберите пункт меню “Tools” -> “Board” -> “Arduino AVR Boards” и в нем выберите вашу плату Arduino.

Выбор порта подключения платы Arduino
Также перед началом работы в Arduino IDE необходимо выбрать правильный последовательный (COM) порт, к которому подключена плата Arduino. Иначе вы не сможете загрузить код программы в плату. Для выбора номера порта откройте пункт меню “Tools” -> “Port” и в нем выберите правильный COM порт, к которому подключена плата. Если в этом пункте меню вы видите несколько COM портов и вы не знаете какой из них выбрать, отключите плату Arduino от USB порта и заново откройте этот пункт меню. COM порт, который при этом исчезнет из данного пункта меню, и будет правильным COM портом. Заново подключите плату к USB порту и выберите правильный COM порт.

Также, чтобы не отключать плату Arduino от USB порта, можно посмотреть COM порт, к которому она подключена, в диспетчере устройств операционной системы Windows.
Код программы мигания светодиодом
Самым простым способом проверить работу платы Arduino является загрузка в нее кода программы мигания светодиодом. Чтобы открыть код программы мигания светодиодом выберите в Arduino IDE пункт меню Files -> Examples -> Basics -> Blink.

После выбора этого пункта меню откроется новое окно с кодом программы мигания светодиода. В коде данной программы вы можете увидеть две функции: void setup() и void loop() . Функция void setup() – это самая первая функция, которая вызывается (исполняется) когда на плату Arduino подается питание. Обычно в теле данной функции производится объявление необходимых глобальных переменных, установка режимов работы используемых контактов и инициализация различных устройств, подключенных к плате Arduino. Тело функции void loop() исполняется в непрерывном бесконечном цикле, в него вы можете добавить все команды, которые необходимо исполнять непрерывно.

В коде нашей программы мигания светодиодом в функции void setup() присутствует команда:
Как посмотреть на Linux открытые порты — описание способов
Любой разбирающийся в персональных компьютерах человек рано или поздно сталкивается с задачей просмотра открытых портов. Сетевые порты представляют собой некие механизмы, которые используются операционной системой для определения того, какому именно приложению или игре передать часть сетевых пакетов. Знать эту информацию важно, так как использование одного и того же порта различными службами приведет к ошибке, а сетевая программа не сможет корректно работать, если ее порты будут закрыты в настройках ОС. Необходимо разобраться с тем, как посмотреть в Linux открытые порты, с помощью каких команд это можно сделать, а также для чего они нужны.
Как посмотреть открытые порты Linux через «nmap»
Если сетевой порт открыт, то это значит, что та или иная программа (служба или сервис) использует его для взаимодействия с другими приложениями или серверами разработчика посредством глобальной сети Интернет или локальной вычислительной сети. Для понимания сути портов обычно новичкам приводят в пример обычный дом, в который почтальон приносит посылку. Сотрудник почты доносит конверт или ящик до дома — это компьютер, а точнее его айпи-адрес. Далее жильцы дома должны посмотреть, кому именно доставлена посылка, и отнести ее в соответствующую комнату. Эта комната и будет портом.

В Linux порты можно проверить альтернативной командой «zenmap»
Обратите внимание! Способов произвести просмотр открытых портов Linux множество, так как в этой операционной системе существуют не одна команда и утилита, позволяющие это делать. Ниже описана команда «nmap», являющаяся наиболее популярной.
В операционной системе Linux список открытых портов можно узнать, набрав в терминале команду «nmap». Она вызывает утилиту с аналогичным названием, которая является многофункциональным сетевым сканером для поиска и тестирования удаленных узлов в Глобальной сети, но ее также можно использовать и локально.
«Nmap» дает возможность не только на ОС Linux проверить порт, но и просмотреть службы, которые их используют, а также выявить возможные уязвимости. Для начала работы утилиту следует инсталлировать с помощью простой команды «$ sudo apt install nmap». После загрузки и установки из стандартного репозитория ПО будет готово к работе. Для запуска сканирования набирают команду «$nmap localhost».
Простое сканирование возможно и без опций, но если требуется задать ряд параметров, то рекомендуется сперва изучить их значение. Кстати, для поиска открытых внешних портов используют команду «$ wget -O — -q eth0.me», а затем «$nmap 185.29.237.91».

«Nmap» может открывать данные обо всех портах, имеющихся в операционной системе
Статистика открытых сетевых соединений в Linux через команду «netstat»: описание ее атрибутов
Это базовая утилита линукс, которая не требует скачивания и установки, так как имеется практически во всех дистрибутивах операционной системы. Она позволяет быстро проверить доступность порта на Linux и показать открытие сетевые соединения.
Пользоваться командой можно и безо всяких атрибутов, но для максимально подробного отображения нужной информации без них не обойдись. Параметры у утилиты следующие:
- «-l / —listening» — проверка прослушиваемых соединений;
- «-p / —program» — отображение названия программы и ее PID’а;
- «-t / —tcp» — отображение TCP-соединений;
- «-u / —udp» — отображение UDP-соединений;
- «-n / —numeric» — показ IP-адресов в виде чисел.
Важно! Если соединение открытое и ожидает подключения, то оно обладает типом «listen» и рядом с ним будет указан айпи-адрес, используемый для выполнения этого подключения. Значение IP может быть любым (*/0.0.0.0) или конкретным (в этом случае оно будет указано).

Пример использования «netstat»
Узнать, кто слушает порт в Linux через «lsof»: описание атрибутов команды
Еще одна стандартная программа операционной системы, позволяющая определить прослушиваемые порты на Linux. Помимо этого, она выводит в консоль все открытие в ОС соединения, включая сетевые (для этого ее выполняют с атрибутом «—i»). Для просмотра именно соединений, а не сетевых служб «lsof» запускается с параметром «—P». Команда выглядит следующим образом: «$ sudo lsof -i —P». Если нужно узнать, какие процессы и службы пользуются, например, семидесятым (70) соединением, следует набрать строку «$sudo lsof -i -P | grep :80».
Обратите внимание! Если нужно найти именно TCP соединения, то прописывают «lsof -i tcp:$portNumber», а если UDP, то «lsof -i udp:$portNumber». В данном случае параметр «$portNumber» означает номер соединения.

Еще один способ взаимодействовать с портами — «lsof»
Статистика открытых портов в Linux через ss и описание ее атрибутов
Команда «ss» — это более функциональная и современная замена утилите «netstat». Последняя получает данные из специальной папки «/proc», а «ss» запрашивает информацию у подсистемы ядра линукс. Вследствие этого «ss» функционирует более быстро и точно. Она обладает аналогичными опциями и атрибутами. Запуск производится по команде «$sudo ss —tulpn». Она отображает тип соединения, его состояние, локальный адрес и т. д.
Если нужно проверить, какие именно процессы работают, к примеру, на 80-м соединении, необходимо прописать или скопировать фразу «$ sudo ss -tulpn | grep :80» и нажать на клавишу «Ввод».

Системная утилита «ss» является более современной альтернативой «netstat»
Просмотр открытых портов в Linux через «tcpdump» и описание атрибутов утилиты
Команда «tcpdump» — это один из самых важных инструментов для специалистов, работающих с информационной безопасностью компьютерных сетей, основанных на линуксе. Если пользователь хочет овладеть всеми тонкостями настройки протоколов TCP и IP, то он должен быть хорошо знаком с функциями «tcpdump».
Далее приведено несколько важных атрибутов этой утилиты, позволяющие проверять свободные портовые соединения и узнавать айпи-адреса служб, использующих их:
- «-nn» — отображение айпи-адресов и номеров портов вместо имени хоста и названия используемого протокола передачи данных;
- «-i any» — прослушивание всем интерфейсов для поиска скрытого тарифа, если таковой имеется;
- «-q» — показ минимальных данных о пакете трафика.
Также есть три выражения: «type», «dir» и «prito». Опции тоже три: хосты, сети и порты. Комбинации для выполнения директорий: «src» и «dst». Протоколы по запросу: TCP, UDP, ICMP, AH и т. д. К примеру, для показа интернет-трафика, который связан с тем или иным портом, необходимо выполнить команду «# tcpdump port 3389», а затем «tcpdump src port 1025». Показ трафика одного протокола выполняется так: «# tcpdump icmp».

Пример использования «tcpdump»
Как в Linux посмотреть занятые порты
Занятые порты — это те сетевые соединения, которые уже используются какими-либо программами или службами. Вообще портовые связи могут находиться в различных состояниях: открытом, закрытом, отфильтрованном и неотфильтрованном. Если сказано, что соединение открыто, то имеется в виду, что использующая его программа или служба на проверяемом персональном компьютере выполняет прослушивание входящих пакетов. Узнать, занят ли port на Linux, можно с помощью следующих способов.
В первом из них используется команда «netstat», которая уже была описана в этом материале. Она идеально подходит для сбора любой сетевой информации об операционной системе. Вывод всех портовых соединений осуществляется по команде «$ sudo netstat —ltup». Атрибут «l» указывает на то, что нужно вывести сокеты, «t» работает с TCP-соединениями, а «u» — с UDP. Последний параметр «p» выводит имена процессов, которые прослушивают порты в данный момент времени.
Второй способ заключается в использовании более функциональной утилиты «ss», обладающей аналогичными параметрами и методом вывода информации. Следующая строка покажет все соединения на протоколах TCP и UDP в формате чисел: «$ sudo ss -lntu».
Еще один быстрый способ получить данные обо всех открытых и закрытых портах заключается в использовании утилиты «nmap» — мощного и известного средства для сканирования сетей линукс, а также проверки сетевых соединений. По умолчанию этого софта нет в списке программ, поэтому его нужно будет установить. Для этого прописывают в командной строке запись и выполняют ее: «$ sudo apt install nmap» (подходит для стандартной линукс и Ubuntu).
Обратите внимание! Сканирование всех соединений с помощью этой утилиты выполняется путем ввода строки «$ sudo nmap -n -PN -sT -sU -p- localhost». Она позволяет определить все открытые, закрытые и прослушивающие порты.
Последняя программа — «lsof». Для вывода всех файлов глобальной или локальной сети вводят команду с использованием атрибута «—i». Он способен продемонстрировать не только имена служб, но и их числовые порты: «$ sudo lsof —i».

Использование команды «$ sudo lsof —i» в терминале
Таким образом, что в операционной системе линукс есть множество способов проверить, открыт тот или иной порт, а также проанализировать дополнительную информацию по нему.
Как выбрать порт в arduino ide
Способы чтения и управления портами ввода-вывода Arduino
Для взаимодействия с окружающим миром нужно настроить выводы микроконтроллера на приём или передачу сигнала. В результате каждый пин будет работать в режиме входа и выхода. На всеми любимой плате Arduino сделать это можно двумя способами, как именно вы узнаете из этой статьи.

Способ первый – стандартный язык для Arduino IDE
Всем известно, что Ардуино программируется на C++ с некоторой адаптацией и упрощениями для новичков. Он называется Wiring. Изначально все порты ардуино определяются как входы, и нет нужды задавать это в коде.
Порты обычно прописываются в функции инициализации переменных:
Для этого используется команда pinMode, у неё достаточно простой синтаксис, сначала указывается номер порта, затем его роль через запятую.
pinMode (nomer_porta, naznachenie)
С помощью этой команды внутренняя схема микроконтроллера конфигурируется определенным образом.
Есть три режима в которых может работать порт: INPUT – вход, в этом режиме происходит считывание данных с датчиков, состояния кнопок, аналогового и цифрового сигнала. Порт находится в т.н. высокоимпедансном состоянии, простыми словами – у входа высокое сопротивление. Устанавливается это значение, на примере 13 пина платы, при необходимости так:
pinMode (13, INPUT);
OUTPUT – выход, в зависимости от команды прописанной в коде порт принимает значение единицы или нуля. Выход становится своего рода управляемым источником питания и выдаёт максимальный ток (в нашем случае 20 мА и 40 мА в пике) в нагрузку к нему подключенную. Чтобы назначить порт как выход на Arduino нужно ввести:
pinMode (13, OUTPUT);
INPUT_PULLUP – порт работает как вход, но к нему подключается т.н. подтягивающий резистор в 20 кОм.
Условную внутреннюю схему порта в таком состоянии вы видите ниже. Особенностью этого входа является то, что входной сигнал воспринимается как проинвертированный («единица» на входе воспринимается микроконтроллером как «ноль»). В таком режиме вы можете не использовать внешние подтягивающие резисторы при работе с кнопками.
pinMode (13, INPUT_PULLUP);

Данные принимаются с портов и передают на них командами:
digitalWrite(пин, значение) – переводит выходной пин в логическую 1 или 0, соответственно на выходе появляется или исчезает напряжение 5В, например digitalWrite (13, HIGH) – подаёт 5 вольт (логическую единицу) на 13 пин, а digitalWrite (13, low) – переводит 13 пин в состояние логического ноля (0 вольт);
digitalRead(пин) – считывает значение со входа, пример digitalRead (10), считывает сигнал с 10 пина;
analogRead(пин) – считывает аналоговый сигнал с аналогового порта, вы получаете значение в диапазоне от 0 до 1023 (в пределах 10-битного АЦП), пример analogRead (3).
Способ два – управление портами через регистры Atmega и ускорение работы кода
Такое управление конечно простое, но в этом случае есть два недостатка – большее потребление памяти и низкое быстродействие при работе с портами. Но вспомните что такое Arduino независимо от варианта платы (uno, micro, nano)? В первую очередь, это микроконтроллер AVR семейства ATMEGA, в последнее время используется МК atmega328.
В Arduino IDE вы можете программировать на родном для этого семейства языке C AVR, так, как если бы вы работали с отдельным микроконтроллером. Но обо всем по порядку. Чтобы управлять портами Ардуино таким образом вам нужно сначала внимательно рассмотреть следующую иллюстрацию.

Возможно кому-то будет нагляднее изучать порты в таком виде (на рисунке тоже самое, но в другом оформлении):

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

У Atmega есть три регистра длиной в 8 бит, которые управляют состоянием портов, например, порта B разберемся в их назначении проведя аналогии со стандартными средствами wiring описанными в начале статьи:
PORTB – Управление состоянием вывода. Если пин находится в режиме «Выхода», то 1 и 0 определяют наличие этих же сигналов на выходе. Если же пин находится в режиме «Входа», то 1 подключает подтягивающий резистор (тоже что и INPUT_PULLUP рассмотренный выше), если 0 – высокоимпедансное состояние (аналог INPUT);
PINB – регистр чтения. Соответственно в нём находится информация о текущем состоянии выводов порта (логическая единица или ноль).
DDRB – регистр направления порта. С его помощью вы указываете микроконтроллеру чем является порт – входом или выходом, при этом «1» — выход, а «0» — вход.
Вместо буквы «В» может быть любая другая согласно названиям портов, например, PORTD или PORTC аналогично работают и другие команды.
Научитесь разрабатывать устройства на базе микроконтроллеров и станьте инженером умных устройств с нуля: Инженер умных устройств
Помигаем светодиодом, заменим стандартную функцию digitalWrite(). Для начала вспомним как выглядит исходный пример из библиотеки Arduino IDE.

Это код всем известного «blink», который демонстрирует мигание светодиодом, встроенным в плату.

В комментариях даны пояснения к коду. Логика такой работы заключается в следующем.
Команда PORTB B00100000 переводит PB5 в состояние логической единицы, смотрим, а те картинки и таблицу что расположены ниже и видим, что PB5 соответствует 13 пину Ардуины.
Буква «В» перед цифрами говорит о том, что мы в записываем значения в двоичном виде. Нумерация в двоичном коде идёт справа налево, т.е. здесь единица стоит в шестом с правого края бите, что говорит микроконтроллеру о взаимодействии с состоянием шестого бита регистра порта B (PB5). В таблице ниже изображена структура порта D, она аналогична и приведена для примера.

Вы можете задавать значение не в двоичном, а в шестнадцатеричном виде, например, для этого открываем калькулятор windows и в режиме «ВИД», выбираем вариант «Программист».

Вводим желаемое число:

И нажимаем на HEX:

В таком случае переносим это всё в Arduino IDE, но уже вместо приставки «В» будет «0х».

Но при таком вводе возникает проблема. Если у вас к другим пинам подключено что-либо, то внося команду типа B00010000 – вы все выводы кроме 13 (PB5) обнулите. Вы можете вносить данные на каждый пин по отдельности. Это будет выглядеть следующим образом:

Такая запись может показаться непонятной, давайте разберемся.

Это операция логического сложения, |= значит прибавить к содержимому порту что-либо.

А это значит, что нужно сложить слово из 8 бит в регистре с единицей, смещенной на 5 бит – в результате, если было 11000010 получается 11010010. На этом примере видно, что изменился только PB5, остальные биты этого регистра остались без изменений, как и остались неизменными состояния выводов микроконтроллера.
Но при логическом сложении возникает проблема – вы не можете превратить единицу в ноль, потому что:
Нам на помощь придёт логическое умножение и инвертирование:

&= значит умножить содержимое порта на определенное число.

А это число, на которое мы умножает. Знак «
» обозначает инвертирование. В нашем случае проинвертированная единица является нулем. То есть мы умножаем содержимое порта на ноль, сдвинутый на 5 бит. Например, было 10110001, стало 10100001. Остальные биты остались без изменений.

Тоже самое можно сделать с помощью операции инвертирования (^):
Чтение с портов, аналог digitalRead() выполняют с помощью регистра PIN, на практике это выглядит так:

Здесь мы проверяем равно ли выражение в скобках реальному состоянию портов, т.е. аналогично тому, если бы мы написали if (digitalRead(12) == 1).
Пошаговое обучение программированию и созданию устройств на микроконтроллерах AVR: Программирование микроконтроллеров для начинающих
Заключение
Для чего такие сложности с управлением портами, если можно использовать стандартные удобные функции? Всё дело в быстродействии и размерах кода. При использовании второго способа, рассмотренного в статье размер кода, значительно снижается, а быстродействие увеличивается на несколько порядков. Стандартный digitalWrite() выполнялся за 1800 мкс, а запись прямо в порт за 0,2 мкс, а digitalRead() за 1900 мкс, а стал также за 0,2 мкс. Этот способ управления был найден на просторах сети и часто встречается в коде готовых проектов.
Настройка плат Arduino при первом подключении к ПК

В этой инструкции, для примера, рассмотрим начало работы в операционной системе Windows. Для операционных систем Microsoft (Windows 2000/Vista) различия незначительны, они в основном относятся к названиям вкладок в Диспетчере устройств. В прочих операционных средах, таких как Linux, FreeBSD, Mac OS X и т.д, порядок настройки значительно отличается. При необходимости организовать работу с этим программным обеспечением, рекомендуем искать ответы на вопросы на основном сайте разработчика http://www.arduino.cc .
В качестве подключаемой платформы возьмём Arduino Uno. Разница с другими платами у неё минимальна.
Кабель для связи с ПК
Для передачи данных с персонального компьютера на Arduino, необходимо подыскать соответствующий кабель. С отдельными платами кабель не поставляется, только есть в стартовом наборе Arduino для практикующего конструктора-программиста.
Arduino Uno, Arduino Mega 2560 соединяются кабелем со штекерами USB тип А. Такой кабель часто применяется для подключения принтера или сканера.
Arduino Leonardo, Arduino Due для подключения имеют гнездо micro USB тип В.
Arduino Nano, Freeduino Nano подключаются через гнездо mini USB тип B.

Для подключения Freeduino MaxSerial потребуется кабель последовательного порта 9M-9F.

Установка Arduino IDE
Arduino IDE — интегрированная среда разработки софта для Arduino устройств, устанавливаемая на компьютер.
В зависимости от модели платы важно правильно выбрать подходящую версию Arduino IDE:
- Arduino IDE 1.6.4 — для многих плат, кроме Arduino Leonardo ETH и Arduino M0 (программное обеспечение от Arduino LLC).
- Arduino IDE 1.7.7 — для всех типов плат (программное обеспечение от Arduino SRL).
Частичная несовместимость ПО стала следствием разногласий между отцами-основателями Arduino итальянцами Массимо Банзи и Джанлука Мартино, которые не смогли договориться о дальнейшем курсе развития компании. Завод, на котором разрабатывают и производят оригинальные платформы Arduino, под управлением Джанлука Мартино откололся от головной компании Arduino LLC и стал самостоятельной компанией Arduino SRL (ранее Smart Projects Srl).
Запуск Arduino IDE
После запуска успешно установленной Arduino IDE, должна открыться графическая консоль, как на картинке внизу.

Возникла неполадка: Arduino IDE не запускается.
Способ устранения.
Скорее всего, на компьютере установлена неподходящая виртуальная среда JRE (Java Runtime Environment), необходимая для запуска графических приложений.
Возвратитесь к переустанавке Arduino IDE: на этот раз инсталлятор развернет работу по настройке JRE.
Подключение плат Arduino к компьютеру
После успешного запуска среды разработки Arduino IDE пришло время связать какую-то платформу Arduino с компьютером. Как вы уже знаете, подключение плат Arduino к ПК выполняется через USB-кабель.
Соединив консоль Arduino с ПК, на ней загорится один светодиод «ON», и начнёт мигать другой «L». Это означает, что через кабель подано питание и микроконтроллер начал выполнять предустановленную на заводе программу Blink (мигание).
Остается только узнать, какой номер COM-порта присвоил компьютер нашей плате Arduino, что важно для корректной работы программного обеспечения Arduino IDE с новым устройством.
Номер COM-порта можно узнать в «Диспетчере устройств», вкладка «Порты (COM и LPT)».
На системах Windows скорее всего нашей Arduino Uno с последовательным интерфейсом присвоится один из портов COM1 или COM2. Для Ардуино с USB-контроллером портом ввода будет COM4, COM5, COM6 или выше.
На системах Linux последовательным портом будет USB0 либо USB1.

Высветилось новое устройство Arduino в «Диспетчере устройств» — значит, операционная система распознала нашу плату, нашла для неё подходящий USB-драйвер и присвоила номер её интерфейсу. При совместном подключении ещё одной платы Arduino, ей присвоиться уже другой номер порта.
Возникла неполадка: при подключении платы Arduino к компьютеру, в Диспетчере устройств она не появляется.
Способы устранения:
- Не всунут до конца или поврежден USB-кабель или порт.
- Нет драйвера для этой платы Arduino. Если у вас китайская Arduino или от другого неизвестного производителя, попробуйте переустановить USB-драйвер вручную.
- Блокировка со стороны антивирусника.
- Неисправна плата Arduino.
Настройка Arduino IDE
В открытой Arduino IDE, заходим: Инструменты > Порт > выбираем номер порта COM — сообщаем программе номер порта, к которому подключена микропроцессорная платформа Arduino.

Чтобы у прошивающей программы Arduino IDE не осталось никаких сомнений, с чем ей предстоит работать, указываем тип нашей подключенной платы. Для этого переходим по меню: Инструменты > Плата > выбираем тип своей платы Arduino.

Возникла неполадка: во вкладке Порт нет ни одного COM-порта.
Способ устранения.
Очевидно, нарушено соединение устройства Arduino с компьютером. Верните устойчивое соединение с ПК.
Или нет драйвера. Скачать можно в конце статьи.
Как проверить подключение устройства Arduino
Все числовые данные, поступающее через COM-порт, выводятся в Монитор порта во всё той же удобной графической среде Arduino IDE. Следовательно, нажав соответствующую иконку «Монитор порта» в верхнем правом углу консоли или найдя соответствующий пункт в меню Сервис, по изменяющимся числам в открывшимся окошке можно убедиться, что через USB-кабель передаются данные, а значит, и плата Arduino надежно подключена.

Обратите внимание, что в нижней части окошка Монитора порта выводится информация о скорости работы с COM-портом «19200 baud» (19200 бит/сек). Такая скорость задана по умолчанию в предустановленном скетче на плате Arduino. В этом скетче есть строка Serial.begin(19200), в которой можно задать любую требуемую скорость передачи, но это возможно только при работе через USB-кабель. Ежели передача данных идет через радиоканал Bluetooth, то скорость обмена с COM-портом должна быть задана заранее, точно такой же, какую мы выбираем при отладке Bluetooth-модуля.
Возникла неполадка: невероятно тормозит Arduino IDE при навигации по меню.
Способ устранения.
В Диспетчере устройств, во вкладке Bluetooth Serial отключите Bluetooth-соединение с мобильным телефоном. Все внешние подключения через Bluetooth значительно пожирают объем виртуальной памяти.
Загрузка первого скетча
Соединение установлено, среда разработки настроена — теперь в ваших руках отлаженный инструмент для прошивки любых микроконтроллеров AVR серии: ATtiny, ATmega, AT90S, AT90CAN, AT90PWM.
В среде разработки Arduino IDE есть много готовых образцов для различных задач, но для проверки отзывчивости платы на перепрошивку достаточно внести небольшие изменения в предустановленную программу Blink (мигание светодиода «L» на плате).

Достаточно в открытом эскизе Blink внести свои изменения в строчке delay(1000), нажать «Вгрузить» и засечь изменения в работе платы Arduino.

Установив delay(500) — светодиод «L» будет мигать в два раза чаще, с задержкой в пол секунды.
Задав delay(100) — светодиод «L» будет загораться и гаснуть в 10 раз быстрее, чем по заводской настройке, то есть каждые 100 миллисекунд.
Возникла неполадка: при загрузке скетча всплыла ошибка вида «not in sync».
Способ устранения.
Значит, подключенная платформа Arduino не была распознана операционной системой. Вернитесь к пунктам установки правильного номера COM-порта и модели платы в меню Инструменты Arduino IDE.
Да и напоследок, если вы купили плату Arduino на каком-нибудь онлайн китайском рынке, то очень часто возникают проблемы при подключении платы – просто она не определяется. Чтобы решить эту проблему умельцами был создан драйвер . СКАЧАТЬ
Автор: Виталий Петрович.






BlogComment – В современном мире
подтянутая стройная фигура приравнивается к состоятельностью и здоровьем.
Западные селебрити демонстрируют отличный внешность
и ни капли избыточного веса.
Иногда обычный человек, значительно отличающийся
от таких эталонов, впадает в депрессию
и изводится недовольством собой.
Однако, желая найти решение проблемы самостоятельно, не всегда реально предпочесть правильную дорогу, так как способов избавления от лишним массой имеется масса.
И лишь единицы из списка действительно эффективны
и безопасны. Но универсальное препарат найдено – это капли
для похудения fire fit!
Доказанная результативность капель подтверждают огромные продажи его по
всему странам. Слим Фаер
Фит полностью безвредно и сертифицировано.
В чудесной упаковке таится естественный механизм, оперативно и безопасно истребляющий
избыточных килограммов.
У худеющих с fire fit за считанные дни наблюдается эффект уменьшения веса без усиления физической активности.
Жиросжигающее воздействие начинается сразу.
Не требуется суровое лимитирование по
калорийности принимаемой еды.
В формуле препарата экстракт гуараны, которые содержат богатый набор витаминов и минералов,
и они ускоряют превращение жировых клеток
в энергию, тормозят аппетит,
улучшают иммунитет. Кактус –
естественный антиоксидант, который
дает мощное жиросжигающее
действие, подавляет аппетит и концентрацию
холестерина в крови, устраняет из организма шлаки и излишки воды, безупречно снимая жировую нагрузку на организме.
А экстракт лимона в формуле fire fit стимулирует метаболический процесс, нормализует работу
ЖКТ, защищает сердечно-сосудистую систему, поддерживает
иммунную систему, повышает активность
всего организма.
Этот препарат получил сертификат качества.
Его компоненты давно и результативно используются
в диетологии и спорте. Натуральный состав комплекса обеспечивает быстрое
и безвредное всасывание слизистой желудка.
Действующие компоненты средства
обеспечивают плавное сжигание липидов нормальным для организма образом.
Форма выпуска – капли на водной базе – позволяют употреблять Фаер Фит,
не меняя сложившийся уклад жизни.
Достаточно просто влить немного жидкости в воду, и процесс сброса веса пошел.
Важным эффектом является падение аппетита и стабилизация работы пищеварительной системы.
Ни один состав растительного происхождения
не сравнится с Fire Fit! Готовы подвергнуться чудесное действие средства?
Кликните на форму для заявки
на официальном веб-сайте, и в
самое скорое время наш менеджер перезвонит вам.
Среда разработки Arduino IDE
Язык программирования Arduino является стандартным C++ (используется компилятор AVR-GCC) с некоторыми особенностями, облегчающие написание программ новичкам в этом деле.
Преимущества Arduino IDE
Установка Arduino IDE
Выберите операционную систему, которая стоит на Вашем ПК и нажмите кнопку «Just download». Установка Arduino IDE с помощью инсталлятора избавит вас от большинства потенциальных проблем с драйверами и программным окружением. Если у Вас стоит Windows 7, то проделайте следующие шаги:


Запуск Arduino IDE

Подключение Arduino к компьютеру
Соедините Arduino Uno с компьютером через USB-кабель. Вы увидите, как на плате загорится светодиод «ON», и начнёт мигать светодиод «L». Это означает, что на плату подано питание, и микроконтроллер Arduino Uno начал выполнять прошитую на заводе программу «Blink» (мигание светодиодом).
Чтобы настроить Arduino IDE на работу с Arduino Uno, нам необходимо узнать, какой номер COM-порта присвоил компьютер Arduino Uno. Для этого нужно зайти в «Диспетчер устройств» Windows и раскрыть вкладку «Порты (COM и LPT)». Мы должны увидеть примерно следующую картину:

Если Ваша плата на CH340G, то необходимо скачать соответствующие драйвера:
Настройка Arduino IDE на работу с Arduino Uno
Для этого переходим в меню «Сервис» → «Последовательный порт» и выбираем порт «COM7». Теперь Arduino IDE знает — что-то находится на порту «COM7». И с этим «чем-то» ей вскоре предстоит общаться.


Загрузка первого скетча
Arduino IDE содержит очень много готовых примеров, в которых можно быстро подсмотреть решение какой-либо задачи. Есть в ней и простой пример «Blink» – выберем его.
Выпуск 4, господа Arduino IDE — установка, настройка и интерфейс. Проверка соединения с платой Arduino.
Это четвертое видео-статья из серии «основы Arduino для начинающих» и с этого момента мы наконец-то переходим от теории к практике использования Arduino. Сегодня мы установим необходимые компоненты для работы с платформой, а так же впервые взглянем на программную среду Arduino IDE и попробуем с ее помощью загрузить тестовую программу в микроконтроллер.
Для начала работы с Arduino нам нужно установить на свой компьютер непосредственно среду разработки Arduino IDE, в которой мы и будем писать программы. Переходим на сайт Arduino и скачиваем свежую версию Arduino IDE, сейчас это версия 1.6.12.
После скачивания открываем файл установки и следуем стандартным инструкциям, в принципе тут не должно возникнуть каких-либо трудностей. Единственное, практически в конце установки необходимо согласиться с установкой USB-драйверов.
Как только среда установится, пробуем ее запустить, если этого не происходит, то, вероятно, на вашем компьютере некорректно установлена Java Runtime Environment и вам необходимо вновь запустить файл установки Arduino IDE, который исправит ошибки, либо скачать Java с официального сайта.
Следующий шаг необходимо проделать тем, у кого оказалась плата Arduino более старой версии, использующая для связи микроконтроллера с компьютером не Atmega16u2, а чип CH341, он выглядит следующим образом.

В этом случае необходимо установить драйвер CH340G для работы с этим чипом.
Итак, кажется, все готово, что бы начать работу с Arduino. Давайте сперва познакомимся со средой Arduino IDE. Эта программа позволяет компьютеру взаимодействовать с Arduino как для передачи данных, так и для прошивки кода в микроконтроллер.
Интерфейс среды содержит следующие основные элементы: текстовый редактор для написания кода [1], область для вывода сообщений [2], текстовая консоль [3], панель инструментов с традиционными кнопками [4] и главное меню [5].

Разберем их всех по порядку.
Программы, создаваемые в среде разработки Arduino, иногда еще называют скетчами. Скетчи пишутся в текстовом редакторе и сохраняются в файлах с расширением .ino. Встроенный текстовый редактор имеет стандартные инструменты копирования, вставки, поиска, замены текста и т.д.
Область сообщений в окне программы является, своего рода, обратной связью для пользователя и информирует его о событиях (в том числе и об ошибках), возникающих в процессе записи или экспорта написанного кода.
Консоль отображает в виде текста поток выходных данных среды Ардуино, указывает на размер созданного нами файла, выводит сообщения об ошибках и прочую генерируемую ею информацию.
В нижнем правом углу окна программы показывается модель текущей платы и последовательный порт, к которому она подключена. Немного позже мы посмотрим, как это настраивать.

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

Теперь кратко пройдемся по главному меню. Вкладка Файл имеет стандартные пункты меню и здесь особо интересным для нас является пункт «Примеры», содержащий в себе различные примеры проектов для Arduino. Давайте сразу же перейдем в пункт Basics и выберем пример Blink, который представляет собой простую программу мигания стандартным светодиодом на плате Arduino. Немного позднее мы загрузим этот код в микроконтроллер.

Вкладка «Правка» является стандартной, поэтому не будем на ней останавливаться и перейдем к вкладке «Скетч». В ней уже есть знакомые нам команды загрузки и проверки, а так же имеется возможность просмотра папки скетча, то есть его месторасположения на вашем компьютере и подключения различных библиотек, представляющих собой файлы для упрощенной работы с какими-либо датчиками, модулями и прочими компонентами. Более подробно о библиотеках мы поговорим в одном из следующих выпусков.

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

Теперь снова откроем вкладку «Инструменты» и перейдем к пункту «Порт», как видите, он сейчас неактивен, потому что мы еще не подключили плату Arduino к компьютеру. Давайте сделаем это.
При подключении Arduino загорится светодиод питания платы и, если производитель тестировал плату, запустится программа мигания светодиодом. Теперь, при удачном подключении, пункт «Порт» должен стать активным и у нас появится возможность выбрать COM-порт компьютера, к которому подключена плата.

Бывают такие случаи, когда в писке появляется несколько COM-портов и понять к какому именно порту подключена Arduino достаточно сложно. Определить нужный COM-порт поможет диспетчер устройств, в котором необходимо выбрать пункт «Порты (COM и LPT)» и найти нашу Arduino, в скобках будет указан COM-порт который мы и выберем в среде разработки.

Если так получилось, что плата Arduino не определяется в диспетчере устройств или вместо Arduino Uno у вас появляется Atmega16u2, то прошу перейти по этой ссылке, где содержится информация по устранению этой проблемы.
Ну что же, кажется все готово, чтобы произвести первую тестовую загрузку нашего примера в микроконтроллер. Перед загрузкой убедитесь, что вы выбрали правильное название платы и COM-порт, если вдруг COM-порт окажется ошибочным, то Arduino сообщит вам об этом и предложит выбрать другой.
Давайте теперь нажмем на кнопку «Загрузка» и посмотрим, что будет происходить. Строка сообщений уведомляет нас о начале компиляции, то есть переводе нашей программы на язык, понятный микроконтроллеру и затем происходит загрузка этого кода на плату Arduino.

Помните, в прошлом выпуске мы говорили о линиях Rx и Tx? Как раз сейчас они активно используются и судить об этом можно по очень быстрому миганию соответствующих светодиодов. Как только программа загрузится, наш светодиод должен начать мигать с задержкой в одну секунду. Это и будет свидетельством того, что у нас с вами все готово для дальнейшей работы с платой и создания новых проектов.
Кстати, в качестве домашнего задания, попробуйте найти в программном коде места, отвечающие за задержку включения и выключения светодиода каждую секунду или тысячу миллисекунд, поменяйте эти значения на какие-нибудь другие и посмотрите, что из этого получится. Следующий выпуск мы как раз начнем с подробного анализа этой программы и дополнительно поработаем с кнопкой. Если вы еще не заказали необходимые компоненты, то самое время это сделать самостоятельно, либо из моей небольшой подборки.
Ну а на этом все, не бойтесь экспериментировать, всем добра и до встречи в новом выпуске!

Arduino & Pi
1.1K постов 18.8K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте — используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
В целях предвидения вопросов, касающихся полезности и информативности поста, хочу заметить — я понимаю что данной информации навалом в сети, но не могу не предоставить её выпуская цикл уроков
Писать проще в notepad++, а в IDE включить «Настройки>>Использовать внешний редактор»
господи спасибо тебе за драйвер!
я еще не дочитала , а решила проблему с полным отсутствием видимости COM портов!
НИ ОДИН паблик не помог, везде куча умных слов и решений «замени провод, все сгорело нах, перезагрузи».
здоровья тебе, радости, семью и много любви!
п.с. очень счастливая девушка
Ребят, не в тему, конечно. Просто пост посвежее выбрал. Есть такой семисегментник с общим катодом. На ардуине залит скетч для перебора цифр от 0000 до 9999. Но в статье с этим скетчем использовался индикатор с отдельным питанием и с общим анодом. Как этот к ардуине подключить? В электро-радиотехнике профан, только начинаю, так что можете минусить если что.
UPD: И как пины на нем считать (где какой)?


Может, я не прав, но разве среда разработки уже не содержит в себе JRE? Так что, установка Джавы в систему никак не должна влиять на работоспособность.
И какая же она всё-таки отстойная, эта IDE:(

Соберем ШестиНог’а Часть -1.
Статья вступление, здесь не будет количества деталей (легкое описание), подробного описания подхода к сборке, а только «как все начиналось».
Побудило к написанию отсутствие адекватных описаний «на пальцах» как это все создается .
Коллега на работе захотел что-либо построить для изучения arduino, к тому времени у меня накопилось много идей и некоторые я научился воплощать. Не желая погружаться в проблему целиком решил дать ему «..одно маленькое, но очень отвессвенное поручение..»

задание с которым справится только желающий этим заниматься, я дал ему FreeCAD, показал как рисовать и сказал искать платформу и перерисовывать «под себя»!
Надо сказать он справился с этой задачей! Мы взяли платформу, он ее немного уменьшил, подогнал под, тогда уже накупленные 6 сервоприводов, отверстия чертеж (на фото не мое, но похоже).

Остов и ноги мы вырезали на лазерном станке из фанеры 4мм, крепления и ответные втулки вращения корневых серв напечатали на 3D Принтере. К тому моменту я докупил еще приводов до полного комплекта чтобы подстегнуть «подмастерье». Сервы были выбраны не самые лучшие, но самые недорогие и прочные. Это китайские подделки копии (по механике и габаритам) TowerPRO MG946 (MG995). 12 кг усилие по паспорту. Опробовав разные версии этих серв пришел к выводу что годными являются те у которых латунный выход на крепление, а не металлического оттенка

(у оригинала латунный).

Внутри может быть не как у оригинала, но они мне понравились. Не питайте мокрых надежд, конечно они не цифровые (если куплены по минимальной цене) скорость отклика и работы ниже, но жажда творчества это для меня окупает.
Платформу мы взяли arduino nano (full china) добавим плату расширения на 16 каналов или запилим вторую arduino nano по I2C (может оба варианта покажем)
Платформа на 70% готова, основные движения отдельных ног отработаны. В следующей статье будет описание геометрии (тригонометрии), количества требуемых деталей, даже уже вес (взвешенного вживую робота).
П.С. хотел назвать свою статью : -по стопам «Пробная платформа с шестью ножками..» но это не так, хотя приятно увидеть что кто то тоже хочет разобраться во всем с нуля!
П.П.С. Поражает обилие конструкций в сети и либо никакого описания процесса, либо выкладывают совершенно дикие способы ( по мне так доставание гланд через *) с кучей библиотек в кокой нибудь системе 3-х мерного проектирования которую написал «акимото» и т.д.
П.П.П.С. Это не очередной рассказ о том как наша галактика прекрасна и в ней много красивых роботов, взгляните на моего! Все чертежи, скетчи и прочее необходимое для повторение будет выкладываться.

Arduino для начинающих — Передача и прием данных. Библиотека Serial и коды ASCII
Это 10-й выпуск курса «Arduino для начинающих», сегодня мы поговорим о том, как пользоваться последовательным монитором порта – получать, отправлять различные данные, в общем, общаться со своим устройством и управлять им.
Список остальных выпусков:
Всем, как обычно, удачных компиляций!
P.S.: Если вы еще не состоите в сообществе «Arduino & Pi», милости просим: http://pikabu.ru/community/arduino

Машинка на ардуино управляемая с телефона
Делать было нечего, дело было вечером.
Решил я начать осваивать микроконтроллеры, взял для этого Arduino UNO китайскую. Поигравшись с датчиками и модулями посетила мысль: «Было бы круто сделать машинку которая управляется с телефона и которую можно заряжать от обычного microUSB».
Мужик сказал — мужик сделал.
Все комплектующие были куплены на Ali, за исключением металлического конструктора, на котором всё закреплено.
Роль аккумуляторов выполняют две батареи Nokia BN-02 на 2000 мАч каждая.
Зарядка происходит через два параллельно соединенных модуля TP4056.
Переключение между режимом работы и зарядки производится переключателями.

В качестве драйвера двигателей выступает TB6612FNG.
Драйвер двигателя и модули зарядки распаяны на одной плате для удобства, так же на плате выведены контакты для двигателей, батарей, питания +7,4 и +5, вывод измерения напряжения на батареях, входа управления с ардуино.

Ардуинка и телефон общаются между собой через Bluetooth модуль HM-10, а точнее китайский аналог CC2541. Связь на расстоянии 100 метров стабильная, но приторможенная, с близкого расстояния всё норм.

Используемая мобилка Xiaomi redmi 3 pro с установленной программой Remote XY (не реклама). На экране отображается управление: вперёд — назад, влево — вправо; уровень заряда АКБ; Бипка — включает сигнал на зуммере. Кнопки открыть и закрыть для клешни, которую снял для доработки.


общий вид полученной машинки и видео дрифтинга

Извиняюсь за шакалистые фото и несвязное изложение)
Если есть вопросы — отвечу.
Спасибо за внимание!

Библиотеки — как с ними работать и создать свою собственную. Драйвер двигателей L298N и ШИМ-сигнал
Привет, друзья ардуинщики!
Это выпуск #9 из серии видео «Arduino для начинающих» и в нем мы затронем тему создания библиотек, а также немного разберемся с тем, что такое ШИМ-сигнал и заставим двигаться колеса робота благодаря драйверу двигателей L298N.
Список остальных выпусков:
Удачных компиляций и с праздником вас!
P.S.: Если вы еще не состоите в сообществе «Arduino & Pi», милости просим: http://pikabu.ru/community/arduino

Выпуск 7. Логические операции И, ИЛИ, НЕ. Основы Arduino для начинающих
И снова здравствуйте!
Это седьмая видео-статья из цикла «Основы Arduino для начинающих» и сегодня мы поговорим о таком важном понятии, как логические операции, без которых не обойтись при решении практически любой задачи.
Предыдущие выпуски вы найдете здесь: 0,1,2,3,4,5,6
Начнем с определения в википедии – логическая операция в программировании, это операция над выражениями логического (булевского) типа, соответствующая некоторой операции над высказываниями в алгебре логики. На первый взгляд – ничего не понятно, давайте подробнее разберемся, что такое логический или булевский тип, а так же алгебра логики.
Фраза логический (он же булевский) тип выражения означает, что это выражение может принимать только два значения – ложь или истина, 0 или 1. Если мы укажем переменной, что она имеет тип bool (boolean), то, как ни крути, значения, которые она сможет в себе нести, будут либо 0, либо 1. Помните, в предыдущих выпусках мы составляли условия, в зависимости от истинности или ложности которых происходили какие-либо действия – как раз тогда мы уже работали с булевыми выражениями.
Итак, кажется, теперь становится более понятной первая строчка определения – логическая операция, это операция над выражениями логического (булевского) типа. Теперь со второй частью об операциях алгебры логики.
Каждый из вас помнит уроки математики в школе, где мы работали с числами в привычной для нас, десятичной системе счисления – то есть с цифрами от 0 до 9. Но мир логики, если так можно сказать, отличается от нашего, ведь там все значения имеют только два состояния — 0 или 1, отсюда и возникает потребность в специальной математике для работы с логическими выражениями. Эта математика носит название «алгебра логики».
В этой алгебре есть три основных операции – сложение, умножение и отрицание, позволяющих реализовать любые логические функции. Давайте разберемся на примерах для микроконтроллера, где нам может понадобиться каждая из этих операций.
Операция сложения, она же операция дизъюнкции либо логическое ИЛИ. Многие из вас помнят, что в прошлом выпуске, при изучении циклов и условий, мы брали примеры с автобусами и остановкой, давайте снова разберем такой пример – наверное, вы замечали, что в относительно новых автобусах по салону распределены кнопки требования остановки. При нажатии на такую кнопку у водителя на приборной панели загорается лампочка и звучит сигнал требования остановки.

Давайте попробуем реализовать такую же систему на Arduino – возьмем, например, три кнопки и подключим их к микроконтроллеру, а так же добавим в схему светодиод и, при наличии, пьезо-извещатель.

Алгоритм работы такой системы достаточно прост и схож с тем, что мы писали для одной кнопки и светодиода, но, в данном случае возникает одна проблема — у нас не одна кнопка, для которой можно написать условие, а целых три. И при нажатии любой из кнопок у нас должен звучать сигнал и гореть светодиод. Что же делать? Можно, конечно, написать три отдельных условия для контроля каждой из кнопок, но код в таком случае выглядит нагроможденным и при увеличении количества кнопок становится жутко не удобным.

Здесь нам на помощь и приходят логические операции, позволяющие составлять не одиночные условия, как мы это делали раньше, а достаточно гибкие и удобные совмещенные.
В нашей задаче необходимо включить оповещение при срабатывании первой или второй или третьей кнопки и, если вы помните, операция сложения так и называлась – логическое ИЛИ.
Давайте создадим три переменных типа boolean, в которые будем сохранять считанный сигнал от каждой из кнопок, и объединим эти переменные в одном условии, поставив между ними логическое ИЛИ. Эта операция записывается в виде двух вертикальных черточек и, что бы понять логику ее работы, давайте взглянем на так называемую таблицу истинности, где указываются операнды, над которыми совершается операция.

Два первых столбца это возможные значения на входах — например, если бы у нас было две кнопки и между ними мы производили дизъюнкцию. Как видите, при комбинации 00 итогом логического сложения так же будет 0. А вот следующая комбинация — 0 или 1 уже дает на выходе логическую единицу, так же, как и оставшиеся комбинации. Нижняя строка 11 так же выдаст единицу, поскольку мы производим сравнение двух положительных значений.
В итоге мы можем сделать вывод, что логическая операция ИЛИ выдаст единичный результат, если на любом из ее входов появится хоть одна единица. Для нашей системы мы можем составить таблицу из трех колонок и перебрать все возможные нажатия кнопок, логика останется прежней – если существует хоть одна единица – ответ будет равен одному.

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

Надеюсь, цикл for, находящийся в теле условия, после прошлого выпуска теперь не вызывает у вас трудностей в понимании. Как видите, при нажатии на любую кнопку условие становится истинным и выполняется цикл for, написанный в теле условия.
Переходим к следующей логической операции – это конъюнкция или логическое И, иначе говоря – умножение. Если предыдущая операция делала условие истинным при любой нажатой кнопке, то операция умножения потребует нажатия сразу всех кнопок и только тогда выдаст нам логическую единицу.
Более наглядно это можно увидеть по таблице истинности. Как можно заметить, если в комбинации присутствует хотя бы один ноль, то вся функция становится равной нулю.

Эта операция записывается в виде двойного амперсанда (&&), и, такой символ — &, по сути, заменяет слово И (от английского and). Таким образом, если вам понадобится сделать условие истинным при одновременно нескольких истинных событиях, то этот оператор то, что нужно.
Это можно увидеть, если заменить в предыдущем коде ИЛИ на И.

Загрузив код, мы увидим, что нажатие одной кнопки никак не влияет на истинность условия и теперь от нас требуется нажать сразу все кнопки.
Также мы можем комбинировать операции сложения и умножения в одной функции. Например, нам необходимо включать оповещение только при одновременном наличии сигнала с 1-й и 2-й кнопки, или со 2-й и 3-й. Тогда условие примет вот такой вид:

Скобками осуществляется разграничение между отдельными условиями и, по сути, сейчас у нас два условия в одном: первое – нажатие 1-й и 2-й кнопки, второе – нажатие 2-й и 3-й кнопки, что бы учесть выполнение одного из этих двух условий мы ставим между ними логическое ИЛИ.
И, наконец, нам осталось разобраться с третьей логической операцией, пожалуй, самой простой из всех – это логическое отрицание или логическое НЕ. Единственная его задача — менять значение переменной или функции на противоположное.
Обозначается операция восклицательным знаком, который ставится впереди переменной или функции. Например, первая переменная кнопки при считывании значения с порта микроконтроллера стала равна нулю, но, добавив впереди нее восклицательный знак, это значение становится обратным – то есть теперь эта связка равна единице.

Когда может понадобиться отрицание? Например, когда в условии нужно проверить не истинность какой-либо функции или переменной, а, наоборот, ее ложность. Но, как вы помните, например, оператор if разрешит нам попасть в тело условия, только если условие в его круглых скобках будет истинно, а не ложно, для ложного значения мы использовали else.
Так вот, что бы условие выполнилось при нормально-ложном значении чего-либо и пригодится отрицание. Допустим, мы хотим выполнить тело условия только если кнопка отпущена, то есть в переменной находится ноль, поэтому к переменной, указанной в условии, мы добавляем восклицательный знак. Теперь при отпущенной кнопке связка переменной и отрицания равна единице и условие выполняется.

Модернизировать наш прошлый алгоритм можно добавив условие, что, одна из кнопок должна быть обязательно отпущена. Иначе условие срабатывает при, например, нажатых первой и второй кнопках, но при этом не учитывает в каком положении находится третья. Указав, что третья кнопка должна быть равна нулю, мы задаем более точное условие срабатывания алгоритма.

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

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

Так же, для тех, кто не состоит в нашем сообществе Вконтакте, сообщаю, что теперь после каждого выпуска с задержкой в один-два дня будет выкладываться небольшой тест, в котором вы сможете проверить свои остаточные знания по изученному материалу и восполнить возможные пробелы. Тест к предыдущему выпуску можно найти здесь.
Ну а на этом про логические операции, пожалуй, все, не забывайте оценивать материал и писать свои пожелания и замечания, надеюсь, что вам было интересно Всем добра!

Выпуск 6. Условные операторы и циклы. Основы Arduino для начинающих
Привет начинающим ардуинщикам!
Прошу прощения за возникшую задержку в выпусках — болело горло и не мог записывать видео. Сегодня мы разберемся с такими понятиями как условные операторы и циклы, поговорим о том, как ими пользоваться и разберем несколько примеров их применения.
Предыдущие выпуски вы найдете здесь: 0,1,2,3,4,5
Предлагаю начать наш разговор с условных операторов, или, как их еще называют, операторов выбора. Данные операторы всегда имеют какое-то условие, и это условие в процессе работы проверяется на истину или ложь.

Если условие верно, то есть истинно, то выполняется специально указанный для этого случая фрагмент кода. Если же условие не верно, то есть ложно, то выполняется либо другая специально указанная часть кода, либо не выполняется ничего и работа микроконтроллера продолжается дальше по коду.
Если взять за пример человека, то мы с вами каждый день выполняем огромное множество подобных условий на подсознательном уровне, не замечая этого. Допустим, вы решили попить чаю и пришли на кухню что бы поставить чайник. Перед тем, как его включить или зажечь газ, вы проверяете, есть ли в чайнике вода. Если воды достаточно, то можно включать чайник, если нет, то необходимо её долить. Как раз условием в данном случае и является проверка вашего чайника на достаточное количество воды. И при истинности либо ложности этого условия вы выполняете определенные действия. Тоже самое делает и микроконтроллер, если вы задаете ему какое-то условие. Например, в прошлом выпуске мы рассматривали условие нажатия кнопки и зажигали в зависимости от этого светодиод.
Такой условный оператор носит название if, что в переводе означает «если». И частично его конструкция вам уже должна быть знакома – это непосредственное указание оператора, затем необходимое условие в круглых скобках и какой-либо код, выполняющийся при истинности этого условия. Но, в случаях, когда важно учитывать не только истинность, но и ложность, то есть не выполнение заданного вами условия, после фигурных скобок пишется слово else, что в переводе означает «иначе», и ставятся такие же фигурные скобки, только уже код в них будет выполняться при ложности заданного условия.

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

Так как микроконтроллер работает с числами и различными значениями, то в условии мы можем проверять не только абсолютное равенство двух значений, но так же делать различные выводы о том, больше ли это значение чем заданное, больше или равно, меньше, меньше или равно либо просто не равно.

Согласитесь, оператор if очень прост и удобен в использовании, но здесь стоит оговориться, ведь удобно с ним работать, только если нам необходимо проверить какое-либо одно условие. А что если их будет несколько? Представьте, что вам дали задание, например, разложить научные статьи по году их публикации, и вы, проверяя год каждой статьи, кладете их в соответствующую папку.
Но как этот процесс будет выглядеть с точки зрения алгоритма для микроконтроллера и оператора if? Давайте запишем. Очевидно, что вам потребуется сделать такое количество алгоритмов, какое количество годов будет у ваших статей. Ведь каждый раз мы должны проверить год на соответствие и в случае совпадения, положить документ в папку, либо же отправить его на проверку другому алгоритму.

Такой каскад из условий со стороны микроконтроллера не создаст для него никаких проблем, но с точки зрения восприятия человеком такого большого количества однотипных условных операторов – это крайне неудобно.
И здесь нам на помощь приходит еще один оператор выбора, имеющий название switch, что в переводе означает коммутатор или переключатель. Его удобство заключается в том, что нам не нужно теперь создавать каждый раз новое условие, чтобы проверить одно и тоже значение, а всего лишь необходимо указать в круглых скобках оператора переменную, которая будет принимать это значение, а сам оператор осуществит поиск из возможных вариантов нужного нам значения, и выполнит соответствующий ему код.

Что бы стало понятно, вернемся к нашей задаче распределения статей. В качестве постоянно изменяющейся переменной мы можем указать оператору значение года публикации статьи, а в возможных вариантах существующие года публикации. И, таким образом, получив очередное значение года, оператор выберет необходимый год из вариантов и выполнит действия, указанные в пределах от оператора case до оператора break, а затем выйдет из оператора switch. Break в нашем случае переводится как выход, а case — это возможный случай или вариант. Если же необходимый год в списке не найдется, то в конце оператора возможно указание значения ключевого слова default, то есть по умолчанию, и в таком случае мы не просто выйдем из оператора, а сначала выполним код, указанный после default.

Объясняя принцип работы этого оператора, я упомянул такое слово как переменная, которой присваивалось какое-то значение года публикации. Переменной называется область памяти микроконтроллера, имеющая определенное имя. В переменные можно сохранять какие-либо значения и использовать эти значения в дальнейшем. В зависимости от типа переменной, она может хранить числа или символы, а так же быть или не быть знаковой, то есть отрицательной. Чтобы не затягивать статью, я советую вам изучить какие бывают переменные и их типы по этой ссылке или любой другой из поиска.
В дальнейшем, научившись сообщать микроконтроллеру различные данные и значения, мы обязательно опробуем оператор switch в действии, ну а пока вам важно изучить и понять логику его работы.
Итак, подводя итог, можно сказать, что существует два условных оператора, или оператора выбора – это if и switch. Оператор if больше подходит для одиночных проверок условия, а switch подойдет для случаев с большим количеством возможных вариантов и одним проверяемым значением.
Идем дальше. Теперь у нас на очереди операторы циклов. Любой цикл представляет собой повторяющееся несколько раз действие. Операторы циклов бывают трех видов: for, while и do while — давайте остановимся поподробнее на каждом из них.
Оператор цикла while.
Представим себе простую ситуацию: вы стоите на остановке и ждете автобус под номером 25. В данный момент вы задаетесь условием проверки каждого номера автобуса на совпадение с цифрой 25. Если номер не подходит, то вы продолжаете стоять и ждать нужный — именно так и действует цикл while, который проверяет условие, указанное в его круглых скобках.
Цикл while переводится как «пока» и до тех пор, пока его условие выполняется, он бесконечно долго выполняет код, указанный в его фигурных скобках. Например, на каком-либо этапе работы микроконтроллера, нам важно получить сигнал с какого-нибудь пина Arduino, и, пока сигнала нет, программа не должна ничего выполнять. Как раз в этом случае нам и поможет while, если в условии мы укажем считывание пина и его проверку на равенство нулю.

Важно еще раз отметить, что while будет выполняться до тех пор, пока условие будет истинным, и как только оно станет ложным, при очередной проверке условия произойдет выход из цикла.
Оператор цикла do while.
Оператор цикла do while называется оператором цикла с постусловием и работает практически по тому же принципу, но с одной лишь разницей: сперва происходит выполнение тела цикла, а уже затем проверка условия. Этот цикл используется, когда необходимо хотя-бы один раз выполнить код, указанный в фигурных скобках независимо от истинности или ложности условия, указанного ниже. В случае с обычным циклом while при изначально ложном условии микроконтроллер переходит сразу же к выполнению кода, написанного после фигурных скобок цикла и, таким образом, минует код, указанный в теле цикла.

Прошу обратить ваше внимание на синтаксис оператора do while – возможно, кто-то уже заметил, что после условия в круглых скобках ставится точка с запятой, поскольку тело цикла уже было описано в фигурных скобках выше.
Оператор цикла for.
И, наконец, нам осталось познакомиться с еще одним, не менее важным оператором цикла под названием for. Давайте вернемся к нашей остановке и автобусу. Допустим, что мы дождались нужный нам автобус, зашли внутрь и теперь нам необходимо заплатить за проезд. Билет стоит 22 рубля, рассчитываться мы будем наличными, поэтому достаем кошелек и начинаем отсчитывать монетки, пока не достигнем нужной нам суммы. Как только нужная сумма будет набрана — можно расплачиваться за проезд. Как вы могли догадаться, цикл for действует по тому же принципу: в условии мы указываем действие, которое выполнится в начале цикла, затем само условие работы и действие, выполняемое в конце каждого прохода цикла.

Давайте возьмем конкретный пример для микроконтроллера и посмотрим, как работает этот цикл. Не за горами наступление нового года, поэтому предлагаю сделать с помощью нашей Arduino упрощенную гирлянду. Подключим со 2-го по 11-й пин 10 светодиодов и напишем цикл их включения.

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

Теперь опишем это с помощью программы.

Сперва укажем имя оператора – for. Затем, в открывающейся скобке, указываем действие в начале цикла — в нашем случае это инициализация переменной pin и присваивание ей значения 2, так как ко второму пину подключен первый светодиод. Кстати, если мы не укажем чему изначально равна переменная pin, то компилятор по умолчанию присвоит ей нулевое значение. Затем ставим точку с запятой и указываем условие, при котором цикл должен выполняться — в нашем случае это работа цикла пока переменная pin меньше или равна 11. После чего мы снова ставим точку с запятой и указываем шаг увеличения или уменьшения значения pin. Запись pin++ означает увеличение переменной pin на единицу, такая операция носит название инкремент и равносильна записи pin = pin+1. А запись pin—наоборот, уменьшит значение pin на один, эта операция называется декрементом.
После указания циклу, что ему делать перед каждым новым проходом, ставится закрывающая скобка – обратите внимание, точка с запятой здесь не нужна. Затем по традиции мы открываем фигурные скобки и пишем знакомые нам строки: digitalWrite(pin, HIGH); и delay(100);
Прошу не забывать, что функция задержки рассматривается нами как простейшая, и через несколько выпусков мы поговорим о том, как ее можно заменить, чтобы не замораживать работу микроконтроллера. Данный пример ориентирован на понимание работы алгоритма, поэтому на этапе обучения мы можем себе позволить такие допущения.
На этом наш код готов. Как он работает? Опишем по пунктам:
1. Объявление переменной pin и присваивание ей значения 2
2. Проверка условия, что 2 меньше или равно 11
3. Выполнение тела цикла: зажигаем светодиод на 2-м пине и ждем 100 мс.
4. Инкремент переменной pin, теперь она будет содержать в себе цифру 3, то есть 3-й пин
5. Снова проверяем условие, что 3 меньше или равно 11
6. И выполняем подачу высокого потенциала на пин 3 с задержкой
Аналогично зажигаются остальные светодиоды. Когда значение pin будет равно 12, условие 12 меньше или равно 11 не выполнится, и будет осуществлен выход из цикла. Таким образом, мы зажжем последовательно все 10 светодиодов.
Загрузив наш код в микроконтроллер, мы увидим, что нам придется постоянно нажимать кнопку сброса, что бы погасить все светодиоды и зажечь их вновь. Если мы можем сделать цикл, который будет последовательно зажигать светодиоды, то, что нам мешает сделать такой же цикл, который будет эти светодиоды последовательно гасить? Давайте добавим еще один цикл в наш код, только теперь в теле цикла мы будем не подавать высокий потенциал на выход, а наоборот, снимать его. Исправляем HIGH на LOW, снова компилируем код и загружаем его..

После загрузки наши светодиоды будут постоянно включаться и выключаться, что выглядит гораздо интереснее Код примера, а так же схему подключения, вы найдете здесь — это ссылка на проект в симуляторе circuits, в нем можно сразу же посмотреть на работу кода.
В качестве домашнего задания попробуйте настроить циклы таким образом, что бы светодиоды загорались не со 2-го по 11-й, а, наоборот, с 11-го по 2-й. Подумайте, как можно включать светодиоды не подряд, а через один, или через два, а так же запускать работу кода по нажатию кнопки, как мы это делали в прошлом видео. Обязательно напишите о своих успехах и возникших вопросах в комментарии.
Ну а на этом я прощаюсь с вами до следующего выпуска, в котором мы поговорим о логических операциях и их применении. Надеюсь, что сегодня вы узнали для себя что-то новое, спасибо, что дочитали до конца, успехов и добра вам!

Сircuits от Autodesk — бесплатный online-конструктор
Очень давно я слышал про Arduino, что есть такая заморская вещица, что можно с её помощью делать всякие-интересные электронные штуковины типа подсветки, «волшебные» фонарики, самоходные машинки и прочее. Но как-то не интересовало меня всё это… Пару-тройку недель назад на Пикабу я увидел пост, о том, как сделать Ambilight-подсветку для монитора своими руками на базе Arduino и тут меня зацепило! Я не мог ни есть, ни пить, ни спать, все думал о Arduino и о том, что можно сделать с ним. Начал читать форумы, искать сайты с обучающими материалами и наткнулся на Progmk.ru. Стал смотреть основы Ардуино для начинающих. В четвертом выпуске Виктор сказал, что пора приобретать устройство, послушавшись его я приобрел на всем известном сайте у братского народа Arduino и детали к нему. Тут меня постигли грустные мысли… Видео смотрю, книги про микроконтроллеры листаю…
Но что делать пока Arduino идет в посылке ко мне?
Посмотрел на форумах о программном обеспечении, наткнулся на Fritzing. Программа хороша, и макетку можно рядом с Arduino положить, и проводами контакты соединить, и код прописать… Но плоды своего труда не посмотреть… Нет эмуляции. Пришлось копать интернет дальше. На одном из форумов шло обсуждение VBB, что мол может она эмулировать, но платная. В комментариях предложили воспользоваться бесплатным online- конструктором circuits.io от Autodesk. Для меня это было открытием!
Circuits.io – электроника от новичка до профессионала!
После прохождения регистрации и согласия со всем, что предлагает сделать с моей душой автодеск в лицензионном соглашении, моему взору предстала страница с предложением начать

В правом верхнем углу жму + New и выбираю New Elecronic Labs, открывается страница ради которой все и писалось! Перед собой я вижу макетную плату!

Добавив Arduino Uno R3 с помощью кнопки Components +,

я перешел в редактор кода, скрытый под кнопкой Code Editor. После ввода кода для мигания встроенным светодиодом, жму Upload & Run и наслаждаюсь магией! СВЕТОДИОД МИГАЕТ! ЭМУЛЯЦИЯ РАБОТАЕТ!

Для программы из пятого выпуска мне понадобились:
Добавив все компоненты, соединив все проводами и переписав код, я получил вторую магию: кнопка жмется, светодиод светится!

Также cirquit.io позволяет строить схему и печатную плату, но для меня это пока не нужно.


Итог: Приложение добротное, внимания заслуживает, думаю, будет интересно всем, от начинающих и ожидающих посылку (как я ), до профессионалов. Построить макет, запустить, посмотреть на свои труды (хоть и виртуальные).
Кстати, забыл упомянуть, в приложении есть множество модулей, для построения и тестирования электронных схем.
Спасибо всем, кто дочитал до конца!

Fritzing — электроника доступна всем! Часть вторая.
Будем надеяться что проект будет расти и развиваться.
Так же хочу добавить что Fritzing это простая в работе программа для рисования наглядных электрических схем, заточенная под Arduino-проекты.
Но хватит истории и описаний, попробую показать как с ней работать.
Первое: в программе есть примеры как с кодом, так и без. Лежат они здесь:

Выбираем пример, я взял два светодиода и кнопку.

Левый клик выбирает элемент и в окне инспектора появляются его свойства, а в нижней части повернуть и отразить. Там же сообщение от трассировщика.


Правый клик — выпадающее меню, все как всегда))
Для тех кто не знает распиновку элемента или где анод и катод у светодиода:
Наводим указатель на пин делали и все написано


Также можно посмотреть пины Ардуины и других микросхем из библиотеки.

Во вкладке принципиальная схема есть полезная функция «Автотрассировка»

Но иногда создает излишние перегибы:

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

Вот в общем то и все. Программа достаточно проста, для самостоятельного изучения.
Во вкладке Code — смотрим код из примера или записываем свой. Можно залить в Ардуину, но я предпочитаю Arduino IE.
Р.S. Про «Печатную плату» рассказывать не буду )) ИМХО тот кто соберется травить плату сам, вполне разберется с этой программой.

Fritzing — электроника доступна для всем!
Для тех кто занимается созданием проектов или только начинает мигать светодиодом на Arduino нужен карандаш, бумага и куча datasheet-ов со схемами подключения, а также гугл со стандартным вопросом ххх-подключение к Arduino. По крайне мере так было со мной когда я первый раз взял Arduino в руки.
Побродив по просторам интернета я случайно наткнулся на программу Fritzing. Причем «старички» постят скриншоты из нее и не признаются как они их сделали)))
Итак коротко о Fritzing
Fritzing изначально разрабатывался как инструмент автоматизации прототипирования для не-инженеров и является очередной попыткой сделать электронику доступной для всех. Причем эта попытка настолько удачна, что заслуживает внимательного рассмотрения. Предоставляется система разработки, сайт поддержки сообщества, стартер-кит — причем с открытым исходным кодом и открытой аппаратурой. Пользователи могут документировать свои разработки, предоставлять их в общее пользование, осваивать электронику в учебном классе, разрабатывать печатные платы для своих поделок и даже изготавливать эти печатные платы на заводском оборудовании.
Приятно, что Fritzing является изначально переносимой (portable), т. е. для неё не существует какого-то инсталлятора — просто нужно скачать пакет архива, распаковать его в любую папку на диске, и система сразу готова к работе. Кроме того, система автоматически определяет язык операционной системы, и сама переключается на русифицированный интерфейс меню.
После первого запуска Fritzing сразу бросаются в глаза 5 главных рабочих закладок: Welcome, Макетная плата, Принципиальная схема, Печатная плата и Code. Изначально активна первая закладка Welcome, на ней просто представлены совет дня (Tip of the Day), ссылка на блог разработчиков (где представлены статьи, реклама новых стартер-китов и прочее), ссылка на фабрику печатных плат и на магазин, и справа браузер готовых компонентов и инспектор их свойств.
Похожие публикации:
- Как записать два условия в if pascal
- Как запустить node js на windows
- Как создать сайт комикс путеводитель по html css и wordpress нейт купер ким джи
- Как сохранить css файл