Курс arduino – микросхемы

Arduino для начинающих

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

Это наиболее простой и недорогой вариант для начинающих, любителей и профессионалов. Процесс программирования проходит на языке Processing/Wiring, который осваивается быстро и легко и в основе которого лежит язык C++, а благодаря программной среде Adruino IDE это сделать очень легко. Давайте рассмотрим, что такое Arduino, чем полезна для начинающих, её возможности и особенности.

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

Основой конструктора служит плата ввода-вывода (аппаратная часть), а также программная часть. Программное обеспечение конструктора на основе Ардуино представлено интегрированной средой разработки Arduino IDE.

Внешне сама среда выглядит так:

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

Большая часть плат Arduino имеют подключение через USB кабель. Подобное соединение позволяет обеспечить плату питанием и загрузить скетчи, т.е. мини-программы. Процесс программирования так же является предельно простым. Вначале пользователь использует редактор кода IDE для создания необходимой программы, затем она загружается при помощи одного клика в Ардуино.

Плата и многие детали Ардуино производится в Италии, поэтому оригинальные составляющие отличаются достаточно высокой стоимостью. Но существуют отдельные компоненты конструктора или наборы, так называемые кит-наборы, которые выпускается по итальянской аналогии, однако по более доступным ценам.

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

Но начинающим свое знакомство с Ардуино лучше свою первую плату заказать в российском интернет-магазине. Со временем можно перейти на покупку плат и деталей в Китае.

Срок доставки из этой страны составит от двух недель до месяца, а, например, стоимость большого кит-набора будет не более 60-70 долларов.

Стандартные наборы включают в себя как правило следующие детали:

  • макетная плата;
  • светодиоды;
  • резисторы;
  • батареи 9В;
  • регуляторы напряжения;
  • кнопки;
  • перемычки;
  • матричная клавиатура;
  • платы расширения;
  • конденсаторы.

Нужно ли знать программирование?

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

После того как программа составлена она загружается (прошивается) на плату. Ардуино в этом случае имеет неоспоримое преимущество – для программирования в большинстве случаев используется USB-кабель. Сразу после загрузки программа готова выполнять различные команды.

Начинающим работать с Arduino нужно знать две ключевые функции:

  • setup() – используется один раз при включении платы, применяется для инициализации настроек;
  • loop() – используется постоянно, является завершающим этапом настройки setup.

Пример записи функции setup():

void setup() {Serial.begin(9600); // Открываем serial соединениеpinMode(9, INPUT); // Назначаем 9 пин входомpinMode(13, OUTPUT); // Назначаем 13 пин выходом}

Функция setup() выполняется в самом начале и только 1 раз сразу после включения или перезагрузки вашего устройства.

Функция loop() выполняется после функции setup(). Loop переводится как петля, или цикл. Функция будет выполняться снова и снова. Так микроконтроллер ATmega328 (большинстве плат Arduino содержат именно его), будет выполнять функцию loop около 10 000 раз в секунду.

Также вы будете сталкиваться с дополнительными функциями:

  • pinMode – режим ввода и вывода информации;
  • analogRead – позволяет считывать возникающее аналоговое напряжение на выводе;
  • analogWrite – запись аналогового напряжения в выходной вывод;
  • digitalRead – позволяет считывать значение цифрового вывода;
  • digitalWrite – позволяет задавать значение цифрового вывода на низком или высоком уровне;
  • Serial.print – переводит данные о проекте в удобно читаемый текст.

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

  • чтение и запись в хранилище,
  • подключение к интернету,
  • чтение SD карт,
  • управление шаговыми двигателями,
  • отрисовка текста
  • и т. д.

Как настроить Ардуино?

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

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

Алгоритм классической настройки программы Arduino выглядит так:

  • установка IDE, которую можно загрузить ниже или здесь или с сайта производителя;
  • установка программного обеспечения на используемый ПК;
  • запуск файла Arduino;
  • вписывание в окно кода разработанную программу и перенос ее на плату (используется USB кабель);
  • в разделе IDE необходимо выбрать тип конструктора, который будет использоваться. Сделать это можно в окне «инструменты» – «платы»;
  • проверяете код и жмете «Дальше», после чего начнется загрузка в Arduino.

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

Самый простой проект, который вы можете сделать – заставить светодиод, который расположен на плате Ардуино напротив порта, мигал каждую секунду.

Для этого необходимо:

  • подключить конструктор к ПК,
  • открыть программу, в разделе «сервис» ищем блок «последовательный порт»
  • выбираем необходимый интервал
  • после чего необходимо добавить код, который есть в Arduino IDE в разделе “Примеры”.

Первыми проектами в Ардуино для начинающих могут стать:

  • мигающий светодиод;
  • подключение и управление датчиком температуры;
  • подключение и управление датчиком движения;
  • подключение фоторезистора;
  • управление сервоприводом.

Первый проект

Вот мы и дошли до нашего первого проекта. Давайте соединим Ардуино, светодиод и кнопку. Этот проект отлично подойдет начинающим.

Схема у нас будет такая:

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

Ардуино первый скетч

1234567891011121314151617181920212223242526272829303132 // пины подключенных устройствint switchPin = 8;int ledPin = 11;// переменные для хранения состояния кнопки и светодиодаboolean lastButton = LOW;boolean currentButton = LOW;boolean ledOn = false;void setup() {pinMode(switchPin, INPUT);pinMode(ledPin, OUTPUT);}// функция для подавления дребезгаboolean debounse(boolean last) {boolean current = digitalRead(switchPin);if(last != current) {delay(5);current = digitalRead(switchPin);}return current;}void loop() {currentButton = debounse(lastButton);if(lastButton == LOW && currentButton == HIGH) {ledOn = !ledOn;}lastButton = currentButton;digitalWrite(ledPin, ledOn);}

Вы могли заметить функцию debounse, о которой мы еще не писали. Она нужна для подавления дребезга контактов.

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

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

Источник: https://ArduinoPlus.ru/arduino-start/

Arduino без Arduino: работаем с микроконтроллерами напрямую — DRIVE2

Если вспомнить историю создания Arduino ( www.drive2.

ru/b/2520138/ ), то Arduino стало популярно благодаря трем вещам, составляющим ее основу: Среды программирования Arduino IDE ( на самом деле это среда языка Processing), Языка программирования Wiring (На самом деле такого языка не существует — то что мы видим это самый обычный С, дополненный большим числом библиотек) и Плат Arduino.
Я уже писал ранее, что без каждой из этих трех составляющих можно обойтись и приводил пример того, как можно обойтись без знания С — www.drive2.ru/b/2729013/. Как отказаться от Arduino IDE написано здесь — www.visualmicro.com/page/…what_is_visual_micro.html, а сегодня я хотел бы написать о том, как отказаться от “плат Arduino”.Итак, что же собой представляет плата, получившая такой коммерческий успех?

Как можно увидеть на плате находятся микроконтроллер AtMega 168 или 328, микросхема питания — DA1, контроллер виртуального com порта — DD1 и кварц 16 МГц — Q1.

В общем то на первый взгляд ничего лишнего, но это только на первый: Используемая микросхема питания позволяет питать плату от напряжения от 5 до 12В или кратковременно до 30В, т.е. для авто с его 14,5В не пригодна и нужно делать свой источник питания.

Контроллер СОМ порта используется в основном только для заливки программ и не является обязательным (в плате Arduino Pro Micro и ей подобных он отсутствует).

Кварц, несомненно, позволяет точно работать с временем, но если погрешность в несколько милисикунд для вас не критична, то можно вспомнить о том, что микроконтроллеры фирмы Atmel, к которым относится и Atmega168/328, содержат внутренний кварц и могут отсчитывать такты сами себе.

Так что же эта плата лишняя? В общем то да. В большинстве случаев без нее действительно можно обойтись и сейчас мы поговорим как.

Поддержка средой программированияНаходим где у вас установлена Arduino и открываем папочку hardware

По умолчанию это здесь — C:Program FilesArduinohardwarearduinoavr

В эту папку мы будем распаковывать архивы с библиотеками, которые будем качать отсюда:1) Для микроконтроллеров

ATmega8, ATmega8A,ATmega88, ATmega88A, ATmega88P, ATmega88PA, ATmega88PBATmega168, ATmega168A, ATmega168P, ATmega168PA, ATmega168PBATmega328, ATmega328P, ATmega328PB

ATmega48, ATmega48A, ATmega48P, ATmega48PA, ATmega48PB

качаем ATmega8 Series (8/48/88/168/328) отсюда — github.com/sleemanj/optib…ob/master/dists/README.md
См. отдельную статью О бедном AtMega замолвите словоДанные библиотеки позволяют запустить МК на 3 частотах: 1MHz, 8MHz или 16MHz (Для работы требуется внешний кварц 16МГц).

Тут необходимо понимать, что внешний кварц увеличивает быстродействие и стабильность работы (1 миллисекунда выполнения программы всегда будет равняться 1 миллисекунде реального времени), но увеличивает, пусть и ненамного, стоимость конструкции и снижает надежность за счет большего числа деталей. Лично мое мнение, что для большинства конструкций, проектируемых для автомобиля, можно смело обойтись и встроенным кварцем. Для схем зажигания, тахометра можно использовать внешний кварц, подключенный по схеме ниже, но дешевле взять готовую платку типа Arduino Pro Micro.

Достаточно ценное замечание от alexfrance
Был печальный опыт при использовании внутреннего генератора МК тини2313. На морозе при -20 контроллеры зависали, глючили. Установка внешнего кварца помогла. Поскольку внутренний генератор представляет из себя RC цепь, то он очень термозависим

2) Микроконтроллеры Attiny13 (А)
Библиотеки и файлы для поддержки “Тинек” можно скачать по ссылочке выше, а можно взять версию от разработчика — sourceforge.net/projects/ard-core13/files/
Скачанный файл также кладем в папку hardware

3) Для микроконтроллеров
ATtiny84, ATtiny44, ATtiny24,ATtiny85, ATtiny45, ATtiny25,

ATtiny2313, ATtiny4313

Источник: https://www.drive2.ru/b/2955382/

Основы программирования

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

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

Во-первых, нам придётся писать примеры на C++-подобном языке. Поэтому можете похвастаться перед знакомыми, что пишите программы на C++. Во-вторых, он очень упрощённый, и вам не нужно бояться его.

Если помните, мы запускали учебный пример Blink, но на самом деле мы пропустили самый первый учебный пример BareMinimum. Давайте его откроем: File→Examples→1.Basics→BareMinimum. Откроется окно с следующим кодом:

void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: }

Вам сейчас необходимо запомнить, что в программе должны быть две обязательные функции: setup() и loop(). После названия функции и круглых скобок идут фигурные скобки, внутри которых будет располагаться ваш код. Говорят, что между фигурными скобками располагается блок кода для функции или тело функции.

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

Функция loop() в бесконечном цикле последовательно раз за разом исполняет команды, которые описаны в её теле. Т.е. после завершения функции снова произойдет её вызов.

Рекомендую создать новый пустой скетч (так называют программы в Arduino) через File | New… (Файл | Создать) и вручную написать описанный код. Это поможет вам лучше запомнить две функции, а также увидеть, как работает среда разработки.

А теперь мы можем снова открыть пример Blink и изучить его шаг за шагом.

В функции setup() мы видим три строчки:

// the setup routine runs once when you press reset:
void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); }

Сначала идёт комментарий к коду, который начинается с двойного слеша (//). Всё, что идёт после двойного слеша и до конца строки считается комментарием.

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

Поверьте, очень многие новички, возвращаясь к своему коду, не могут вспомнить, что они запрограммировали.

Приблизительный перевод комментариев, которые используется в функции setup() можно перевести как:

// инициализируем цифровой порт как вывод

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

pinMode(led, OUTPUT);

В старых версиях код был немного другим:

pinMode(13, OUTPUT);

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

// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;

Комментарий можно перевести как:

// Порт 13 в большинстве плат Arduino соединен со светодиодом

Нам встретилась новая функция pinMode(), которая устанавливает режим для портов. Функция состоит из двух параметров. В первом параметре указывается порт, с которым мы собираемся работать.

Во втором параметре мы сообщаем, как должен работать указанный порт: работать на выход (OUTPUT) или вход (INPUT).

В нашем примере, вывод под номером 13 должен выводить информацию (посылать сигнал), то есть давать указание мигать светодиоду.

Мы определили в функции setup() необходимые данные для начала работы и теперь можем приступить к непосредственной реализации задачи в функции loop().

// the loop routine runs over and over again forever:
void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second
}

Здесь мы видим уже четыре строчки кода. Первая строчка включает светодиод при помощи функции digitalWrite(). В первом параметре мы указываем номер порта, с которым собираемся работать, а во второй указываем константу HIGH.

Забегая вперед, могу сказать что константа HIGH равна 1, и можно было написать digitalWrite(13, 1). Но такая запись не очень удобна, так мельтешение цифр в большом проекте затрудняет чтение кода.

А здесь вы сразу видите, что на порту под номером 13 включается светодиод.

Далее идет команда, отвечающая за паузу – delay(), которая имеет один параметр – количество времени в миллисекундах. В нашем примере мы сделали паузу в одну секунду (1000 миллисекунд = 1 сек).

Следом идёт уже знакомая нам функция digitalWrite(), но уже с параметром LOW, который выключает светодиод (значение константы LOW равно 0).

И последняя строчка снова делает паузу в одну секунду.

Посмотрим, как работает программа.

Когда мы загружаем программу в микроконтроллер, то Arduino активирует порт 13 в режиме выхода (функция setup()), а затем начинает последовательно выполнять четыре строчки из функции loop(): включает диод-пауза-выключает диод-пауза. Когда эти четыре строчки будут выполнены, то они снова будут вызваны и будут повторяться до тех пор, пока мы не выдернем кабель.

Что мы можем изменить в данной программе? По большому счету ничего – мы можем установить только собственные значения пауз. Поэкспериментируйте с этим. Другие изменения результата не принесут – нет смысла, например, сейчас использовать другой порт или использовать режим INPUT.

Если вы хотите что-то исправить в готовой программе из примеров, то лучше это делать в новом проекте. Создайте свой скетч и скопируйте код из примера Blink.

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

Один конец вставляем в порт под номером 7, а второй в порт с надписью GND.

Задумка следующая. Порт может не только принимать сигнал (работать на выход), но и посылать сигнал. Фактически порт пускает через себя ток. В этом случае режим устанавливается как INPUT или INPUT_PULLUP. Если через порт идёт ток, то заставим светодиод мигать быстро-быстро. Если движение тока прервано, то мигание будет редким.

int ledPin = 13;
int switchPin = 7; void setup()
{ pinMode(ledPin, OUTPUT); pinMode(switchPin, INPUT_PULLUP);
} void loop()
{ if(digitalRead(switchPin) == LOW) { flashLed(100); } else { flashLed(500); }
} void flashLed(int delayPeriod)
{ digitalWrite(ledPin, HIGH); delay(delayPeriod); digitalWrite(ledPin, LOW); delay(delayPeriod);
}

Часть кода нам уже знакома. Смотрим на новый код. Для опытов мы используем порт 7, поэтому завели новую переменную switchPin. В функции setup() мы устанавливаем для него режим на вход в особом режиме INPUT_PULLUP (подтягивающий резистор). Его особенность состоит в том, что при соединении с землёй он будет выдавать значение LOW, а при разрыве – HIGH

В функции loop() мы реализуем условие с проверкой. Считываем значение с порта 7. Если ток идёт, то значение будет LOW светодиод будет мигать часто. В противном случае светодиод будет мигать редко.

Код для мигания светодиодом вынесен в отдельную функцию flashLed(). Это сэкономит нам количество кода. Кроме того, такая функция удобна, что мы можем в её параметре задавать разные значение паузы, не повторяя остальной код.

Запустив проект, убедимся, что светодиод мигает часто. Вытащим один конец провода и увидим, что светодиод стал мигать медленно. Опять вставляем провод на место и снова светодиод будет мигать часто. Чудеса!

Когда мы подключаем плату Arduino к компьютеру через USB-порт, то можем обмениваться между ними информацией с помощью сообщений, которые отображаются в Serial Monitor.

О Serial Monitor мы поговорим позже в других статьях, пока поверхностно познакомимся с ним. Допустим, у нас сгорел светодиод и он не сможет нам показать своим миганием, есть ли соединение или нет.

Уберём из кода строки, относящиеся к светодиоду, и напишем код для обмена сообщениями.

//int ledPin = 13;
int switchPin = 7; void setup()
{ //pinMode(ledPin, OUTPUT); pinMode(switchPin, INPUT_PULLUP); Serial.begin(9600);
} void loop()
{ if(digitalRead(switchPin) == LOW) { //flashLed(100); Serial.println(“Connected”); } else { //flashLed(500); Serial.println(“Not connected”); }
}

Лишний код закомментирован, а функция flashLed() даже удалена. Как пользоваться программой? Запустите скетч снова, затем в Arduino IDE нажмите на значок Serial Monitor.

Откроется новое окно, в котором будут быстро мелькать строки Connected с новой строки. Выдерните провод и в окне сообщения сменятся на Not connected.

Таким образом, плата посылает информацию компьютеру.

На следующих занятиях мы подключим свой светодиод и заставим его не только мигать, но и затухать. Оставайтесь с нами!

Реклама

Источник: http://developer.alexanderklimov.ru/arduino/arduino-minimum.php

Здравствуй, дорогой друг!
Мы будем расти вместе и вместе же открывать для себя удивительный мир программирования микросхемы Arduino. Шаг за шагом, начиная со знакомства с общими базовыми принципами до настоящих стоящих проектов.

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

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

В этом разделе будут представлены уроки по Ардуино или просто “Ардуроки”. Приступим…

Если вы, так же как и мы, только начали свою карьеру в DIY (DIY – Do It Yourself — «сделай это сам») электронике, крайне важно, чтобы вы понимали основную разницу между микроконтроллером и микропроцессором. Давайте приступим к самым основам! 

подробнее

Ардурок 2. Терминология микроконтроллера

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

 Перед началом изучения Arduino или любого другого микроконтроллера, изучите следующие основные термины. Этот перечень не является исчерпывающим, но он сможет подготовить вас к началу обучения с нуля платформе ​​Arduino.

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

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

подробнее

Ардурок 3. Программная и аппаратная части Arduino

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

подробнее

Ардурок 4. Микросхема Arduino – что это?

Микросхема Arduino, или просто  Arduino, включает в себя 8-битный чип  Atmel AVR или 32-битный Atmel ARM вместе с другими сопутствующими компонентами, смонтированными на одной печатной плате (PCB).

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

подробнее

Ардурок 5. Arduino IDE, Что это такое?

Легкость, с которой плату Arduino можно запрограммировать, привела к огромной и постоянно растущей популярности. В основе программирования Arduino лежит очень простая, но мощная интегрированная среда разработки (IDE). 

подробнее

Ардурок 6. Arduino IDE против языка программирования C

Языки программирования C/C++ произвели революцию в компьютерной индустрии. Но что насчет  программировании микроконтроллера Arduino? Есть ли у нее специальный язык программирования или она программируется на языке C/C++?

подробнее

Ардурок 7: Установка Arduino IDE

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

подробнее

Источник: http://solint.ru/arduino

Разрабатываем Arduino-проекты во Fritzing | РОБОТОША

Сегодня я хочу рассказать об очень удобной среде разработки проектов для Arduino — Fritzing.

Fritzing является превосходным инструментом разработчика с открытым исходным кодом для обучения, прототипирования и обменом проектами на базе Arduino.  Он работает на Windows, Mac OS и Linux.

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

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

В отличие от других систем проектирования, у Fritzing простой интерфейс, который делает разработку электронных схем интуитивно понятной.

Так выглядит схема соединений

Я активно использую Fritzing при разработке проектов на Arduino и хочу поделиться опытом в этом деле. Я буду рассматривать последнюю на текущий момент версию 0.8.7 для Mac OS. Под Windows, скорее всего, отличий практически нет (за исключением, может быть, внешнего вида интерфейса).

Загружаем и устанавливаем Fritzing

Для установки перейдите на страницу загрузки Fritzing и выберите вашу операционную систему. Чтобы установить на свой компьютер, следуйте инструкциям на странице. Каких то особенностей в установке нет, поэтому я не буду останавливаться на этом подробнее.

Fritzing «из коробки» уже идет с большим количеством библиотек различных элементов. Есть как основные компоненты, такие как провода, кнопки, резисторы, так и различные специализированные компоненты, такие как платы Arduino и датчики.

Если вам нужно добавить новую библиотеку, или же свой компонент в библиотеку — не проблема. Как это сделать, я расскажу в отдельной статье.

Начинаем работать во Fritzing

Когда вы первый раз открываете проект во Fritzing, перед вами появится такое окошко

Приветственное окно Fritzing

Переключившись на вкладку мы увидим следующий экран

Вкладка «Макетная плата»

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

Меню компонентов

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

Выбираем элемент

Перетащите резистор на макетную плату так, чтобы каждый вывод попал на отдельный столбец на плате. Когда компонент подключется к той или иной колонке, весь столбец становится светло-зеленый, как показано ниже. Зеленая линия указывает на электрическое соединение между отверстиями.

Вертикальные столбцы макетной платы соединены между собой

Настраиваем параметры компонентов

Для выделенного элемента мы можем настроить его параметры в нижней части панели инструментов для изменения значения его сопротивления,  допуска (tolerance) и расстояние между выводами. Замечу, что расстояние между выводами задается в милах (mil). 1 mil — это 1/1000 дюйма.

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

 → 

Поворачиваем компонент

Далее, поместим в цепь светодиод. Выберем светодиод в панели инструментов и перетащим его в правую часть нашей макетной платы.

Выбираем светодиод

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

Размещаем светодиод

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

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

Соединительные провода

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

Выбираем элемент питания

Расположите провода питания, как показано ниже — положительный вывод батареи на верхней линии и отрицательный вывод на нижней линии с контактами.

Расстояние между выводами на выходе батареи не соответствует расстоянию между верхними шинами питания макетной платы.

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

Добавляем батарею питания

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

 →→ и выбираем желаемый формат.

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

Принципиальная схема на Fritzing

Разводка печатной платы Arduino-проекта во Fritzing

Дорабатываем дизайн печатной платы во Fritzing

Fritzing — экспортируем макет печатной платы

Библиотека компонентов Fritzing

Создаем свой компонент Fritzing — часть 1

Создаем свой элемент Fritzing — часть 2

 

Источник: http://robotosha.ru/arduino/fritzing-intro.html

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}