Уроки ардуино: контролируем платы через бумагу

Урок 49. Обмен данными между платами Ардуино через интерфейс UART

Создадим из 2 плат Ардуино простую распределенную систему сбора и отображения информации. Разработаем центральный контроллер и свяжем его с локальным контроллером из предыдущего урока.

Предыдущий урок     Список уроков     Следующий урок

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

Обмен данными будет происходить через интерфейс UART по протоколу, описанному в предыдущем уроке.

Разработка схемы центрального контроллера.

Что должен делать центральный контроллер?

  • Обеспечивать обмен данными с локальным контроллером.
  • Отображать данные, полученные от локального контроллера:
    • температуру;
    • напряжение;
    • состояние кнопки.
  • Передавать данные на локальный контроллер, в нашем случае управлять светодиодом локального контроллера.
  • Контролировать состояние обмена. Мы проверяем работу сети и программы, поэтому необходимо фиксировать каждую ошибку обмена.

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

Схема центрального контроллера выглядит так.

В качестве ЖК дисплея я использовал WH2004A. У индикатора 4 строки по 20 символов.  Подключил я его в 4 битном режиме. Схема аналогична схеме из урока 23. В этом же уроке можете посмотреть информацию о LCD индикаторах, подключении их к микроконтроллерам и о программировании дисплеев такого типа.

Собранная система из двух контроллеров у меня выглядит так.

Центральный контроллер я собрал на базе платы Arduino UNO R3. Запитал его стандартным кабелем от USB порта компьютера. Для питания  локального контроллера использовал сигнал 5V платы Arduino UNO R3. В рабочем варианте можно отключить плату от компьютера, подав питание каким-либо другим способом.

Разработка резидентной программы центрального контроллера.

Опять обязательное условие – управление обменом данными с локальным контроллером должно происходить параллельным процессом.

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

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

Определим интерфейс между основной программой и модулем обмена данными по сети. Достаточно трех компонентов:

byte dataFromLC[10]; // буфер данных для приема из локального контроллера
byte dataToLC; // данные для передачи в локальный контроллер (светодиод)
byte stateCommun; // состояние обмена
// (0 – успешно закончено, 1 – пуск, 2 – продолжается, 3 – ошибка)

Последовательность работы следующая:

  • В переменную dataToLC мы кладем данное для передачи на локальный контроллер. У нас имеет значение только младший бит – состояние светодиода локального контроллера.
  • В переменную stateCommun загружаем число 1, что инициирует процесс обмена данными.
  • Ждем когда stateCommun примет значения 0 или 3. 0 означает, что обмен данными закончился успешно, 3 – сообщает об ошибке обмена.
  • Используем полученные из локального контроллера данные, которые оказываются в массиве dataFromLC[].

Я сразу приведу скетч программы управления обменом через интерфейс UART.

#include<\p>

#define TIME_OUT 25 // время тайм-аута ответа (мс)

byte dataFromLC[10]; // буфер данных для приема из локального контроллера
byte dataToLC; // данные для передачи в локальный контроллер (светодиод)
byte stateCommun; // состояние обмена
// (0 – успешно закончено, 1 – пуск, 2 – продолжается, 3 – ошибка)

byte timeOutCount; // счетчик времени тайм-аута обмена

void setup() {
MsTimer2::set(1, timerInterrupt); // прерывание по таймеру 1 мс
MsTimer2::start(); // разрешаем прерывание
Serial.begin(9600); // 9600 бод
}

void loop() {
}

//————————————– обработчик прерывания 1 мс
void timerInterrupt() {

//——————– обмен данными
timeOutCount++; // счетчик тайм-аута ответа

if ((stateCommun == 0) || (stateCommun == 3)) {
// обмен закончен без ошибкой или с ошибкой
// ожидание следующего пуска
timeOutCount= 0;
}

else if (stateCommun == 1) {
// пуск обмена, посылка команды
Serial.write(0x10); // код операции
Serial.write(dataToLC); // данные (светодиод)
Serial.write(0x10 ^ dataToLC ^ 0xe5); // контрольный код
stateCommun= 2; // переход на ожидание ответа
}

else if (stateCommun == 2) {
// ожидание ответа от локального контроллера
if (Serial.available() == 12) {
// принято 12 байтов
// чтение данных в буфер, проверка контрольной суммы
byte buf[10];
unsigned int sum= 0; // контрольная сумма
for (int i=0; i

Источник: http://mypractic.ru/urok-49-obmen-dannymi-mezhdu-platami-arduino-cherez-interfejs-uart.html

Делаем сами Arduino Uno Mini

Часть № 1. Предисловие

Идея и направление проекта

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

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

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

Часть № 2. Разработка и проектирование проекта

Способом изготовления печатных плат является в нашем случае ЛУТ (лазерно-утюжная технология изготовления печатных плат). Тем самым необходимо составить список того, чего необходимо :

1) Стеклотекстолит (100×200 мм на все случаи жизни);
2) Флюс для пайки с тонкой кисточкой;
3) Хлорное железо (250 г.

);
4) Жидкое олово (100 мл или больше, неважно , его намного хватает);
5) Лазерный принтер (желательно с новым картриджем);
6) Обычная бумага тонкая A4;
7) Сверло для сверления отверстий в плату;
8) Паяльник мощностью 25 – 30 Вт;
9) Утюг, лучше всего, советский.

В целом, все эти компоненты, не считая конечно принтер, будут стоить вам  около двухсот рублей, но этих компонентов хватит на 15-20 небольших плат, если , конечно, экономить.

Теперь же необходимо обсудить детали насчет деталей для сборки самого микроконтроллера: 1) – ATmega328P PU; 2) – Светодиоды, кнопки, штырьки на плату (все дешевые) и прочее (для удобства);

3) – Программатор.

Все эти компоненты тоже будут теоретически стоить около 200 – 300 рублей. В итоге, можно сказать, что, чтобы собрать собственный arduino микроконтроллер, надо потратиться примерно в сумме 300-400 рублей (конечно же считая сколько  химических компонентов необходимо для изготовления одного микроконтроллера).

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

  1. Подготовка всех компонентов на своём рабочем столе;
  2. Изготовление шаблона  печатной платы и очистка стеклотекстолита очистителем или растворителем;
  3. Распечатка шаблона печатной платы на стеклотекстолите при помощи лазерного принтера;
  4. Обработка и травление, собственно, печатной платы;
  5. Снова же очистка и обработка печатной платы очистителем или растворителем (я использую уайт-спирит);
  6. Обработка печатной платы в растворе солей олова(лужение дорожек печатной платы необходимо для того, чтобы схема оставалась рабочей на долгое время);
  7. Сверление отверстий сверлом;
  8. Установка в отверстия печатной  платы  электронных компонентов;
  9. Обработка отверстий флюсом и разогревание паяльника;
  10. Пайка компонентов;
  11. И, наконец, подготовка к работе компьютера и микроконтроллера и прошивка arduino ide.

Впрочем, весь процесс может проходить в течении 2-3 часов, смотря на то, какие у кого навыки в изготовлении собственных печатных плат и к пайке электронных компонентов. Итак, пришло время сказать вот такое выражение: ” В теории всё понятно, а как на деле”. А то мы, радиолюбители и профессионалы, не только ради теорий и знаний занимаемся электроникой.

Часть № 3. Реализация проекта

Все этапы работы  я покажу по фото и опишу их с помощью комментариев.

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

Кнопка потребуется для сброса системы,светодиод присоединен к выводам 13-ый пин ATmega328P PU и земля для индикации состояния микроконтроллера, кварцевый резонатор нужен именно 16 МГц, так как при меньшей частоте микроконтроллер либо  будет работать медленно и даже очень, либо вовсе работать не будет. Пять проводов находящихся на верхней стороне схемы необходимы для программирования через программатор или arduino uno. Питаться схема может по двум проводам либо на дне печатной платы , на двух штырьках, либо два крайних штырька на её поверхности.

Теперь начну подробнее описывать аспекты каждого из этапов.

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

2) Уайт-спирит наливаем в контейнер объемом, как крышка,  выливаем на  тряпку, не ждём, пока она засохнет, и переходим к следующему действию.

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

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

3) По моему мнению, схема получилась довольно таки красивая. Все аккуратно и четко стоит на своём месте.

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

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

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

Читайте также:  Генератор частоты на ардуино: сборка, настройка, код

4) На этом этапе меньше всего будет хлопот. Потребуется только лишь ваше терпение и время. Опустите  печатную плату в пластиковую ёмкость с раствором хлорного железа. Растворить в ёмкости хлорное железо в воде  надо в соотношении 12, то есть 100 мл воды теплой и 50 г. хлорного железа.Вылить в плоскую пластмассовую миску. Этим раствором можно будет пользоваться достаточно много.

В течение 30-60 минут необходимо ждать, опустив печатную плату в раствор хлорного железа, пока плата  протравиться, то есть лишняя медь уйдет с стеклотекстолита. Контролируйте ход травления плату. Вынимать следует при помощи пластмассового пинцета. Если процесс травления идёт долго то можно увеличить температуру раствора до 50-70 градусов, или добавить в раствор ещё хлорного железа.

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

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

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

Деталь надо предварительно зачистить и обезжирить, и при этом толщина  покрытия составит 1 мкм. В одном литре раствора можно залудить до 50 км дм поверхности  возможно многократное использование. Не рекомендуется  совместное хранение свежего и отработанного раствора.

Срок годности состава без ухудшения свойств до двух лет.

7) Отверстия следует делать очень тонким сверлом чтобы умело и точно можно было бы припаивать электронные компоненты. Желательно чаще пользоваться флюсом или канифолью (сосновой) , так как с помощью них можно отлично паять. 

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

9) Этот пункт нет смысла описывать, так как в нём всё ясно

10) Паяйте  как можно аккуратнее, если хотите получить отличный мини аналог Arduino Uno. 

11) После всех предыдущих этапов я надеюсь у вас уже есть стоящий прототип и теперь можно приступать к настройке компьютера и программирования микроконтроллера.

Необходимо подключить  провода  именно так:

Мини аналог   RST   RX   TX   +5V   GND   (считая слева направо на правой картинке.)
  |    |    |    |    |
Arduino Uno    RST   RX   TX    +5V  GND

И после этого можно  легко программировать  микроконтроллер прямо с Arduino IDE  ка Arduino Uno.

Часть № 4. Заключение

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

Тут представлен стабилизатор напряжения на lm7805ct (5 вольт). Если он будет перегреваться, всё тепло будет идти на стеклотекстолит.

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

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

Скачать список элементов (PDF)

Прикрепленные файлы:

  • ATmega328P PU.lay (12 Кб)
  • sketch_blink.ino (1 Кб)

Источник: http://cxem.net/arduino/arduino124.php

Записки программиста

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

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

Учитывая, что помимо ATmega328P в Arduino Uno не так уж много компонентов, интересно, удастся ли нам собрать свою Arduino прямо на макетке?<\p>

Fun fact! Аналогичную заметку про STM32 ищите здесь — Используем STM32 безо всяких отладочных плат.

Использование запрограммированного ATmega328P

Зальем в микроконтроллер программу Blink и извлечем его описанным выше способом. Только запомните, как стоял микроконтроллер в вашей Arduino на случай, если захотите потом вставить его обратно. На моей Arduino Uno микроконтроллер стоит головой вниз от USB разъема и кнопки Reset. Хотя интуитивно я бы вставлял его с точностью до наоборот.

В сети не сложно найти объяснение, какие пины ATmega328P каким входам и выходам Arduino соответствуют:

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

Итак, пошаговая инструкция по сборке Arduino на макетной плате:

  1. Подключаем конденсатор на 100 мкФ в качестве сглаживающего фильтра. Если вы можете использовать от 7.5 до 9 В, вместо него лучше использовать стабилизатор напряжения LM7805. Как он подключается ранее рассказывалось в посте Интегральные схемы: чипы стандартной логики 74xx. Также можно добавить светодиод для индикации, что напряжение подано. В общем, обычная подготовка.
  2. Пин 1 — это Reset. Его подключаем через резистор на 10 кОм к плюсу, а через кнопку — к минусу. Если же кнопка Reset вам не нужна, можно подключить напрямую к плюсу.
  3. Пин 7 (VCC) подключаем к плюсу, пины 8 и 22 (GND) — к земле. Пины 20 (AVCC) и 21 (AREF) подключаем к плюсу.
  4. Между пинами 9 и 10 ставится кварцевый резонатор на 16 МГц. Подобно резистору, его все равно, как подключать. Затем сами пины подключаются к земле через конденсаторы на 22 пФ.
  5. Опционально: так как в микроконтроллер сейчас залита программа Blink, к пину 19 (в Arduino это цифровой пин 13) можно подключить светодиод, который через резистор на 220 Ом идет к земле.

Если все было сделано правильно, после включения цепи вы увидите, как микроконтроллер мигает светодиодом. Но это только пол дела. Сейчас, чтобы запрограммировать чип, нам придется вставлять его обратно в Arduino, запрограммировать, затем извлечь и вставить обратно в макетку. Спрашивается, а нельзя ли как-то поудобнее?

Программирование микроконтроллера без Arduino

Оказывается, что можно. Для этого нам понадобится преобразователь USB-UART на базе чипа FT232. Они бывают разные. Для нас главное, чтобы устройство имело выходы VCC, GND, TXD и RXD, остальные не потребуются.

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

Ему далее будет посвящен отдельный параграф.

Примечание: Существуют аналогичные преобразователи на базе чипов CP2102, PL2303 и CH340.

Итак, питание для цепи можно подавать прямо от USB — надеюсь, что такое VCC и GND к этому моменту вы уже знаете. На моем FT232 есть перемычка, позволяющая выбирать напряжение — 3.3 В или 5 В.

Проверьте, что у вас выбрано нужное вам напряжение. Затем пин 2 (RX) микроконтроллера подключаете к пину TX вашего FT232, а пин 3 (TX) — соответственно к пину RX преобразователя.

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

avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00

Чтобы все заработало, нужно нажатием соответствующей кнопки сделать микроконтроллеру Reset и в течение одной секунды нажать Ctr+U в Arduino IDE, выполнить make upload или как вы там вызываете avrdude.

Связано это с тем, что сразу после перезапуска ATmega328P управление получает специальная программа-бутлоадер, которая ждет данных по UART. Если они поступают в течение одной секунды, то во flash-память микроконтроллера заливается новая прошивка.

Если нет, то управление передается той прошивке, что уже есть.

Окончательный вид самопальной Arduino:

К сожалению, описанные выше шаги не будут работать, если вы просто купите ATmega328P без Arduino. Дело в том, что в нем почти наверняка не будет записано никакого бутлоадера. Его можно записать прямо в Arduino IDE, но для этого нужно специальное устройство, программатор. Что делать, если его нет?

Загрузка бутлоадера

Как ни странно, но можно воспользоваться Arduino. Отсоединяем FT232, а затем подсоединяем Arduino к микроконтроллеру таким образом:

Здесь подключено питание, цифровой пин 10 идет на пин 1 (Reset) ATmega328P, цифровые пины 11, 12 и 13 идут на те же самые пины микроконтроллера, физически это пины 17, 18 и 19.

В Arduino IDE жмем File → Examples → 11. ArduinoISP → ArduinoISP, жмем Upload. Только что вы превратили вашу Arduino в программатор.

Затем выбираем Tools → Programmer → Arduino as ISP и, наконец, говорим Tools → Burn Bootloader.

Arduino IDE может показать вам такую ошибку:

avrdude: WARNING: invalid value for unused bits in fuse “efuse”,   should be set to 1 according to datasheet This behaviour is deprecated and will result in an error in   future version You probably want to use 0xfd instead of 0x05 (double check

  with your datasheet first)

Читайте также:  Как писать web-приложения на c++ - arduino+

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

Как обойтись без FT232

Выше я обещал рассказать, как можно обойтись без FT232. Оказывается, что на самой Arduino уже есть все необходимое, а именно — еще один микроконтроллер ATmega16U2, с прошивкой, делающей из него USB-AURT преобразователь.

Пример использования Arduino в качестве преобразователя USB-UART:

Микроконтроллер из платы следует извлечь. Питание подключается как обычно. Выходы Reset, RX и TX подключаются к соответствующим пинам ATmega328P (номер 1, 2 и 3 соответственно). Заметьте, что здесь RX подключается к RX, а TX — к TX, а не наоборот, как при использовании FT232. Итак, подключаем к USB и используем, как обычную Arduino.

Заключение

Фактически, теперь мы знаем, как впаять микроконтроллер в плату. Что не менее важно, теперь не нужно возиться с этими громоздкими Arduino и их постоянно отваливающимися проводами. Вместо этого все можно делать прямо на макетной плате. Удобно!

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

Для этого нам понадобится программатор (который фактически у нас уже есть), понимание, что такое fuse bits и как использовать микроконтроллер без бутлоадера, а также умение пользоваться avrdude напрямую из консоли. Но эти вопросы я освещу как-нибудь в другой раз.

А вы программируете Atmega328P прямо на макетной плате или все же предпочитаете использовать Arduino?

Дополнение: Если же вы хотите собрать не Arduino Uno, а Arduino Leonardo, это делается не намного сложнее.

Даташит используемого в нем микроконтроллера ATmega32U4 можно найти, например, здесь [PDF], а соответствие между пинами микроконтроллера и пинами Arduino — здесь.

Пины, помеченные в даташите, как UVcc и VBus, подключаются к плюсу, UGnd — к минусу, UCap — к минусу через конденсатор на 1 мкФ, а помеченные D- и D+ — к соответствующим пинам USB-разъема. Все остальное — по аналогии с ATmega328P.

Источник: https://eax.me/arduino-on-breadboard/

Разводка печатной платы Arduino-проекта во Fritzing | РОБОТОША

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

Схема печатной платы

По-английски печатная плата звучит как PCB — printed circuit board и, именно, аббревиатура PCB часто встречается как термин.

В прошлый раз я остановился на том, что получилась примерно такая принципиальная схема

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

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

Вкладка Печатная плата

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

Изменение размеров печатной платы

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

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

Размещаем компоненты на печатной плате

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

Выбираем количество слоев

После этого нажимаем в нижней части экрана Fritzing

Автотрассировка

и видим результат

Результат автотрассировки

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

Очищаем печатную плату от лишнего

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

Выбираем точку изгиба

Когда наша точка изгиба «посинеет», щелкните правой кнопкой мыши и выберите .

Удаляем точку изгиба

Удалим все лишние точки изгиба и получим в итоге что-то типа этого

Дорожки без лишних линий изгиба

Выберите соединительную дорожку и переместите курсор мыши в нижнюю часть панели инструментов в правой части экрана Fritzing.

Выделите токопроводящую дорожку

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

Выбираем ширину проводника

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

Все проводники нужной толщины

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

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

Разрабатываем Arduino-проекты во Fritzing

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

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

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

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

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

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

 

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

Урок 1. Вводный урок по Arduino

Добрый день, дорогие читатели,ученики и просто проходившие мимо :). Я собираюсь в течение нескольких уроков/статей рассказать вам об основах работы с МК Arduino , о её возможностях; приведу вам много примеров своего кода и т.д.

Ну, во-первых, вам потребуется купить « Arduino» или её аналог, для работы с ней :), а во-вторых – установить специальную среду разработки с сайта производителя.

В принципе это всё, что нужно по-минимуму, хотя я ещё покупал монтажную плату и «туеву хучу» всяких микросхем, диодов, резисторов.… Советую купить ещё и монтажную плату. Всё! Переходим к основной части!

Ардуино — это достаточно мощный и многофункциональный микроконтроллер, лично я считаю, что самое удобное в нём то, что (1) – он сразу готов к любой работе: пишите код, даже программатора не нужно (кто не понял – не задумывайтесь), (2) – это простой язык программирования (ЯП.): облегчённый «С».

Я вроде бы уже говорил, что построить на Ардуино можно практически всё, что угодно: будь то какой-то хитрый девайс для дома, ваш личный робот или управляемое откуда угодно «Нечто» :).

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

Схема есть! Но даже если и нет, то сейчас это неважно. Сейчас мы будем учиться писать «первый» код: соблюдать синтаксис, объявлять переменные, назначать ножки ввода/вывода, настраивать их и многое- многое другое. В общем виде любая программа состоит из трёх «блоков»: блок назначения, блок настройки и основной бок: блок непосредственного выполнения.

На схеме наглядно показан «мини-шаблон» для любой программы. Любая программа начинается с:

  1. назначения «ножек» и переменных, затем
  2. настройка ввода и вывода в функции «void setup()»
  3. написание программы в кавычках » { } » в функиции «void loop()»

Грубо говоря, это и есть наша программа. Наша элементарнейшая программа. а точнее — разъяснение перед ней… Теперь рассмотрим настоящий код. Но, вам придётся собрать простенькую схему — к ножке МК подсоединить светодиод, светодиод соединить с резистором, а резистрор заземлить (подсоединить на минус).

(на приведённой картинке плата Nano. Внимание, для каждой платы своя распиновка! Гуглите её внимательней!)

// led – наша переменная, подключённая на ножку №3
int led = 3; void setup()
{
// так настраивается ножка, названная переменной, на вывод
pinMode(led, OUTPUT); } void loop()
{
// на ножку подаётся “высокое” напряжение, то есть импульс
digitalWrite (led, HIGH); //задержка в 500 милисекунд (1000 = 1 секунда)
delay (500); // “выключение” ножки, выключающий импульс
digitalWrite (led, LOW); }

Однако хочу вас всех сразу предупредить, что импульс — это импульс. Да, он может тускло включить светодиод, но двигатель — никогда! По-этому, необходимо сделать «драйвер-двигателя» — очень полезная и универсальная вещь. Это — микро девайс, построенный на основе микросхемы L293D — по сути это только микросхема Читать статью про драйвер двигателей — тут!

А теперь рассмотрим маленькие, но важные нюансы, на которых может попасться каждый.

В программу, для работы со специфическим оборудованием (например: LCD-дисплейInternet- ShieldWi-Fi— или Bluetooth— модуль связисервомашинки) необходимо приписывать

«библиотеку» (файл — .h) в начало кода. Допустим, для работы с сервомашинкой это будет: Не надо пугаться, для любого оборудования очень легко можно нагуглить библиотеку. Вообще в среду разработки уже включены несколько библиотек, однако их надо вставлять из специального меню: Sketch > Import Library… > нужная библиотека.

В конце КАЖДОЙ строчки ставится знак » ; » — это синтаксис и на этом можно погореть. Однако «точка с запятой» не ставится после строк «void …» и после скобки завершения кода «}».

Назначение ножек МК — тоже задача не из лёгких: тут

надо быть внимательным вдвойне. Ведь есть два типа непосредственно работающих ножек: это Digital-ножки (на любой плате обозначены D и цифрой — персональным номером каждой ножки) и Analog-ножки (всё тоже самое, только буква — А). Вообще, эти ножки — одинаковые по своим функциям, но только Digital — более «грубые» они могут подавать или считывать импульс лишь в

«формате» HIGH (1) или LOW(0), в то время, как Analog-ножки считывают и задают абсолютно точный импульс ( Возможно, сейчас вам будет трудно это осознать, но со времнем мудрость дойдёт и до вас).

Читайте также:  Покупка нового смартфона cubot s550 на aliexpress.com - arduino+

Из это следует логичный вывод — использовать Digital-ножки для управления базовой, ходовой частью: например, включать/выключать двигатели, светодиоды и прочее, а Analog-ножки для коррекции всего этого, для работы с датчиками или сенсорами.

А теперь — самое главное что вам предстоит узнать про эти ножки: для работы с ножками, во время их назначения надо записывать тот номер который написан на плате, рядом с ножкой (это ОЧЕНЬ важно. Я, не зная этого, разбирался в чём дело почти месяц!). Это необходимо для обоих типов ножек!

И ещё маленький секрет: Analog — ножки можно не назначать, а прямо сразу вызывать из программы. Это удобно, если необходимо пару раз снять какие-то небольшие показания; хотя, каждый сам для себя решит степень удобности.

Итак, что-то вы, я надеюсь, уже усвоили, поэтому я представляю вам мой дальнейший план статей/ уроков. Я объясню вам, как работать с переменными и почему переменные — наше всё; как управлять Ардуино напрямую и «извне»; расскажу про кнопки и датчики; какие, как, а

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

Заходите на сайт Kiloom.ru — за новой пищей для мозгов!

Источник: https://kiloom.ru/nabory-dlya-sborki/arduino/uroki-po-arduino-dlya-nachinayushhix/urok-1-vvodnyj-urok-po-arduino.html

Подготовка к работе

Платформа Arduino.

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

И среды разработки IDE – программного обеспечения, которое вы запускаете на своём компьютере. IDE необходимо для создания скетчей ( компьютерных программ), которые затем выгружаются на плату Arduino. Скетч «говорит» плате, что делать.

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

Поясним назначение контактов платы.

Контакты 0-13 – контактов цифрового ввода-вывода.

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

Контакты  3, 5, 6, 9, 10 и 11 могут использоваться, как ШИМ – широтно-импульсная модуляция). Контакты 0–5 – контакты аналогового входа. Эти контакты для аналогового входа получают аналоговые значения (например, величину напряжение в датчике) и преобразовывают их в цифровые значения от 0 до 1023.

Электрическое питание может быть подано на плату через USB-порт от компьютера,  или от AC-адаптера 9 вольт через разъём питания. Плата может сама выбирать источник питания. Т.е., если плата подключена к компьютеру через USB кабель и к разъему питания подключен адаптер, то плата выберет адаптер.

 

1.3. Интегрированная среда разработки (IDE).

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

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

Плата приступит к выполнению написанного вами скетча.

1.4. Установка Arduino на ваш компьютер.

 Чтобы начать работать с платой Arduino, сначала необходимо установить среду разработки (IDE).
Установить IDE можно с диска, который идет в комплекте. Или скачать с сайта разработчика: www.arduino.cc/en/Main/Software.
 
Для установки среды разработки с диска пожалуйста  откройте папку arduino-1.0.5, Найдите файл arduino.exe и два раза кликните левой кнопкой мыши. Начнется установка программы.

При запуске программы с сайта

www.arduino.ccвы можете выбрать подходящую для вашей операционной системы версию ПО.   После установки  ПО запустите IDE. На экране монитора у вас появится окно системы проектирования IDE. Далее последовательно нажмите кнопки СЕРВИС, ПЛАТА, ARDUINO DUEMILANOVE/Atmega328.

Теперь плата готова к работе.

 

Подключите плату Arduino через USB кабель к компьютеру. Система сама найдет драйвер для платы Arduino. И предложит выбрать COM порт.

 

1.5. Датчики и исполнительные устройства.

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

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

2.Примеры.

2.1. Пример 1. Мигание светодиодом.

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

Скетч, который управляет миганием светодиода – первая программа, которую мы загрузим в плату Arduino. Светоизлучающий диод (светодиод) – это маленький электрический компонент, который похож на маленькую лампочку. И ему для работы хватит напряжения питания 5 вольт.

Плата Arduino уже имеет установленный светодиод. На рисунке он выделен красным кружком

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

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

Этот скетч называется «Blink». Для загрузки скетча «Blink», нажмите в IDE последовательно кнопки Файл – примеры – 01.Basic – Blink.

 

После загрузки в окне IDE появится текст программы для мигания светодиода.

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

Вы сохранили копию 'Blink' в своей папке. Это означает, что если вы хотите найти его снова, вы можете просто открыть его с помощью опции  Файл – Папка со скетчами.

 

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

Нажмите на кнопку «Загрузить». Это вторая кнопка слева на панели инструментов.

В нижней части IDE выводит ряд сообщений. Сначала выводится сообщение о компиляции скетча. Т.е. о преобразовании программы в формат, понятный для процессора.

Далее статус процесса изменится на «Загружаем». На данный момент, светодиоды на Arduino должны начать мерцать, указывая, что скетч загружается в плату.
Наконец в строке состояния появится текст «Загрузка выполнена».

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

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

Код программы.

Источник: http://startelectronics.ru/goods/Podgotovka-k-rabote-2

Электронная бумага с памятью … E-Paper + Arduino

Главная → Библиотека Arduino → Arduino проекты → Электронная бумага с памятью … E-Paper + Arduino Библиотека Arduino → Arduino проекты
Электронная бумага E-Paper в последнее время стала очень популярной. Но до последнего времени была вне досягаемости, для использования в персональных разработках.

E-Paper обладает некоторыми свойствами, которые отличают ее от почти любого другого дисплея. В отличие от обычного ЖК-дисплея, электронной бумаге нужно только питание для изменения символов на экране. Изображение не изменяется, пока не будет установлено заново другое.

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

 Как только эти шары были установлены на свои места, они остаются там, пока не поступит новая конфигурация.В E-Paper также нет подсветки, как и во многих ЖК-дисплеях. Она больше похожа фактически на бумагу. Яркость изображения зависит от освещенности помещения.

 И многие люди говорят, что E-Paper легче для глаз и приятней читать с него, чем с экрана.
Данный дисплей имеет 20 символов, расположенных в 2 строки, 16-сегментное знаковое место. Таким образом, вы не сможете отображать графические изображения на нем, и изменять размер шрифта. Но … это еще бета версия.

Я бы не попробовал подключить этот дисплей без специальной платы, так что не расскажу все (к плате подается питании 3,3 или 5 (В) вместо 35 В, необходимых для дисплея), есть 400 соединений на 2 ленточных кабелях. Кроме того, даже при таком подключении, может быть немного сложно.

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

Кроме того, необходимо убедиться, что вы подключите кабель прямо в правый разъем. — Посмотрите на иллюстрации. В левом верхнем углу задней панели дисплея несколько квадратных / прямоугольных областей.

Эта сторона должна подключиться к «input 2» платы. Не уверен 100%, что он должен быть ориентирован таким образом, но так сделал я, и  и это работало.

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

Теперь просто подключить все, как показано на рисунке.

Код

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

Все, что вам нужно сделать после инициализации библиотеки, заключается в следующем:

Чтобы отобразить число до 2147483647
epaper.writeNumberTop (2147483647);
epaper.writeNumberBottom (2147483647);
epaper.writeDisplay ();

Или для текста
epaper.writeTop ( «bildr»);
epaper.writeBottom ( «пример»);
epaper.writeDisplay ();

Чтобы код заработал, прежде чем загружать код, или даже открыть программу Arduino , вам необходимо поместить обе папки «ePaper» в вашу библиотеку Arduino. Если вы не знаете, где это по умолчанию My Documents -> Arduino -> libraries.

Вы можете загрузить библиотеку как архив по ссылке.

электронная бумага, E-Paper + Arduino, arduino проекты, библиотека Arduino

26.07.2011, 5432 просмотра.

Источник: http://arduino.net.ua/Arduino_articles/Arduino_proekty/Jelektronnaja%20bumaga%20s%20pamjatju%20E-Paper%20and%20Arduino/

Ссылка на основную публикацию
Adblock
detector