Ультразвуковой дальномер hc-sr04
Содержание:
- Введение
- 3Скетч Arduino для ультразвукового дальномера
- Шаг 5: установка программного обеспечения
- Исходный код программы
- Датчик уровня жидкости (Water Sensor Arduino)
- Примеры использования датчика расстояния
- Как подключить ультразвуковой датчик к Ардуино
- Датчик расстояния в проектах Arduino
- Исходный код программы
- Ультразвуковые датчики расстояния (сонары)
- Запуск и настройка
- Суть проекта
- Предисловие
Введение
В данной статье объясняется, как определить местоположение объекта с помощью Arduino, двух ультразвуковых датчиков и формулы Герона для треугольников. Движущихся частей в проекте нет.
Формула Герона позволяет рассчитать площадь любого треугольника, для которого известны все стороны. Как только вы узнаете площадь треугольника, вы сможете рассчитать положение одного объекта (относительно известной базовой линии), используя тригонометрию и теорему Пифагора.
Точность отличная. При использовании распространенных ультразвуковых датчиков HC-SR04 или HY-SRF05 возможны большие области обнаружения.
Конструкция проста: всё, что вам нужно, это острый нож, два сверла, паяльник и ножовка по дереву.
Изображения:
- видеоролик, показывающий работу устройства;
- фото 1 показывает собранный эхолокатор;
- на фото 2 показан типовой дисплей. Объект отображается красной (мигающей) точкой;
- на фото 3 показана тестовая установка, используемая на видео. Было необходимо установить два ультразвуковых датчика HY-SRF05 на 50 см ниже базовой линии, чтобы полностью «осветить» зону обнаружения со звуком.
Рисунок 1 – Собранный эхолокатор на двух датчиках и Arduino
Рисунок 2 – Скриншот экрана обнаружения объектаРисунок 3 – Тестовый стенд для проверки эхолокатора на Arduino
3Скетч Arduino для ультразвукового дальномера
Напишем скетч для нашего дальномера:
const int trigPin = 6; // вывод триггера датчика HC-SR04 const int echoPin = 5; // вывод приёмника датчика HC-SR04 #include <LiquidCrystal.h> // подключаем стандартную библиотеку LiquidCrystal lcd(12, 11, 10, 9, 8, 7); //инициализация ЖКИ void setup() { pinMode(trigPin, OUTPUT); // триггер - выходной пин pinMode(echoPin, INPUT); // эхо - входной digitalWrite(trigPin, LOW); lcd.begin(16, 2); //задаём кол-во строк и символов в строке lcd.setCursor(10, 0); // выравниваем надпись по правому краю lcd.print("Dist:"); lcd.setCursor(14, 1); lcd.print("cm"); } void loop() { long distance = getDistance(); // получаем дистанцию с датчика lcd.setCursor(10, 1); lcd.print(" "); // очищаем ЖКИ от предыдущего значения lcd.setCursor(10, 1); lcd.print((String)distance); // выводим новую дистанцию delay(100); } // Определение дистанции до объекта в см long getDistance() { long distacne_cm = getEchoTiming() * 1.7 * 0.01; return distacne_cm; } // Определение времени задержки long getEchoTiming() { digitalWrite(trigPin, HIGH); // генерируем импульс запуска delayMicroseconds(10); digitalWrite(trigPin, LOW); // определение на пине echoPin длительности уровня HIGH, мкс: long duration = pulseIn(echoPin, HIGH); return duration; }
Тут всё просто. Сначала инициализируем ЖКИ на выводах 12, 11, 10, 9, 8 и 7 с помощью библиотеки LiquidCrystal из состава Arduino IDE. Далее привяжем выводы «триггер» и «эхо» дальномера к выводам 6 и 5 платы Arduino. Каждые 100 мс будем запрашивать с детектора расстояние с помощью функции getDistance() и выводить на ЖК-дисплей.
У меня на LCD дисплее имеется дефект, и его левая половина почти не работает. Поэтому я вывожу надписи выровненными по правому краю.
После того как записали скетч в память Arduino, можем собирать прибор. Предлагаемая мной компоновка внутренностей показана на рисунке. Дисплей и датчик я закрепил с помощью термоклея. Он держит достаточно прочно, но при этом даёт возможность снять соединённые детали, если понадобится. Желательно всё разместить так, чтобы можно было подключиться к USB порту Arduino и поправить «прошивку» при необходимости. Например, изменить выводимый текст или поправить коэффициенты для расчёта дистанции. Может понадобиться менять контрастность ЖК дисплея, так что также желательно иметь в доступности регулятор потенциометра.
Вариант готового прибора показан на фотографии. Он достаточно компактен и удобен в использовании.
Вариант компоновки ультразвукового дальномера | Внешний вид готового ультразвукового дальномера |
Но следует иметь в виду несколько важных замечаний при его использовании:
- Ультразвук лучше отражается от гладких поверхностей, чем от поглощающих (например, мягкого ковра). Поэтому следует выбирать место расположения дальномера при измерении так, чтобы напротив дальномера располагалась гладкая отражающая поверхность (например, стена).
- Показания прибора могут существенно отличаться в зависимости от угла направления на цель. Поэтому лучше всего провести несколько измерений, немного изменяя угол направления на цель, и взять среднее значение от всех измерений.
Шаг 5: установка программного обеспечения
Установите следующее программное обеспечение в этом порядке:
Arduino IDE
Скачайте и установите Arduino IDE (интегрированную среду разработки) с сайта https://www.arduino.cc/en/main/software, если она еще у вас не установлена.
Скетч Arduino
Скачайте и откройте в Arduino IDE файл «dual_sensor _echo_locator.ino«, загрузите его в свою Arduino Uno R3.
Закройте Arduino IDE, но USB кабель оставьте подключенным.
Скетч Processing
Скопируйте содержимое прикрепленного файла, “dual_sensor_echo_locator.pde” в Processing «Sketch».
Теперь нажмите вверху слева кнопку «Run»… На вашем экране должен появиться графический экран.
Исходный код программы
В коде программы автоматического индикатора уровня воды нам первым делом необходимо инициализировать все контакты Arduino, которые мы будем использовать для подключения внешних устройств: реле, ЖК дисплей, буззер (звонок) и т.д.
Затем мы инициализируем все устройства, задействованные в проекте.
После этого инициализируем модуль ультразвукового датчика и считаем время между передачей и приемом ультразвуковой волны с помощью функции pulseIn(pin). Затем произведем вычисления и покажем результат на экране ЖК дисплея.
Потом запишем условия, позволяющие проверить полна или пуста цистерна с водой и в зависимости от результатов проверки этих условий произведем соответствующие действия.
Далее представлен полный текст программы.
Arduino
#include <LiquidCrystal.h>
#define trigger 10
#define echo 11
#define motor 8
#define buzzer 12
LiquidCrystal lcd(7,6,5,4,3,2);
float time=0,distance=0;
int temp=0;
void setup()
{
lcd.begin(16,2);
pinMode(trigger,OUTPUT);
pinMode(echo,INPUT);
pinMode(motor, OUTPUT);
pinMode(buzzer, OUTPUT);
lcd.print(» Water Level «);
lcd.setCursor(0,1);
lcd.print(» Indicator «);
delay(2000);
}
void loop()
{
lcd.clear();
digitalWrite(trigger,LOW);
delayMicroseconds(2);
digitalWrite(trigger,HIGH);
delayMicroseconds(10);
digitalWrite(trigger,LOW);
delayMicroseconds(2);
time=pulseIn(echo,HIGH);
distance=time*340/20000;
lcd.clear();
lcd.print(«Water Space In «);
lcd.setCursor(0,1);
lcd.print(«Tank is: «);
lcd.print(distance);
lcd.print(«Cm»);
delay(2000);
if(distance<12 && temp==0)
{
digitalWrite(motor, LOW);
digitalWrite(buzzer, HIGH);
lcd.clear();
lcd.print(«Water Tank Full «);
lcd.setCursor(0,1);
lcd.print(«Motor Turned OFF»);
delay(2000);
digitalWrite(buzzer, LOW);
delay(3000);
temp=1;
}
else if(distance<12 && temp==1)
{
digitalWrite(motor, LOW);
lcd.clear();
lcd.print(«Water Tank Full «);
lcd.setCursor(0,1);
lcd.print(«Motor Turned OFF»);
delay(5000);
}
else if(distance>30)
{
digitalWrite(motor, HIGH);
lcd.clear();
lcd.print(«LOW Water Level»);
lcd.setCursor(0,1);
lcd.print(«Motor Turned ON»);
delay(5000);
temp=0;
}
}
1 |
#include <LiquidCrystal.h> #define trigger 10 LiquidCrystallcd(7,6,5,4,3,2); floattime=,distance=; inttemp=; voidsetup() { lcd.begin(16,2); pinMode(trigger,OUTPUT); pinMode(echo,INPUT); pinMode(motor,OUTPUT); pinMode(buzzer,OUTPUT); lcd.print(» Water Level «); lcd.setCursor(,1); lcd.print(» Indicator «); delay(2000); } voidloop() { lcd.clear(); digitalWrite(trigger,LOW); delayMicroseconds(2); digitalWrite(trigger,HIGH); delayMicroseconds(10); digitalWrite(trigger,LOW); delayMicroseconds(2); time=pulseIn(echo,HIGH); distance=time*34020000; lcd.clear(); lcd.print(«Water Space In «); lcd.setCursor(,1); lcd.print(«Tank is: «); lcd.print(distance); lcd.print(«Cm»); delay(2000); if(distance<12&&temp==) { digitalWrite(motor,LOW); digitalWrite(buzzer,HIGH); lcd.clear(); lcd.print(«Water Tank Full «); lcd.setCursor(,1); lcd.print(«Motor Turned OFF»); delay(2000); digitalWrite(buzzer,LOW); delay(3000); temp=1; } elseif(distance<12&&temp==1) { digitalWrite(motor,LOW); lcd.clear(); lcd.print(«Water Tank Full «); lcd.setCursor(,1); lcd.print(«Motor Turned OFF»); delay(5000); } elseif(distance>30) { digitalWrite(motor,HIGH); lcd.clear(); lcd.print(«LOW Water Level»); lcd.setCursor(,1); lcd.print(«Motor Turned ON»); delay(5000); temp=; } } |
Датчик уровня жидкости (Water Sensor Arduino)
Рабочее напряжение аналогового сенсора — 5v. Выходное напряжение (показания датчика) зависит от степени погружения датчика в жидкость и от параметров, влияющих на коэффициент передачи напряжения, например, проводимость жидкости. Это простой в использование и недорогой датчик уровня жидкости, который широко применяется в системах автоматизации и при разработке Умного дома.
Подключение к Ардуино датчика воды (Water Sensor)
Как вы уже заметили на фото к этому занятию, датчик уровня жидкости имеет три контакта. Правый контакт (-) подключается к Земле (GND), средний к питанию 5v, а левый к аналоговому входу, например, A0. При полностью сухом датчике выходное напряжение и показания на аналоговом входе будут равны нулю, чем больше датчик будет погружен в воду, тем больше будут его показания (от 0 до 1023).
Примеры использования датчика расстояния
Давайте рассмотрим пример простого проекта с платой Arduino Uno и датчиком расстояния HC SR04. В скетче мы будем получать значение расстояния до предметов и выводить их в монитор порта в среде Arduino IDE. Вы сможете легко изменить скетч и схему подключения, чтобы датчик сигнализировал о приближении или отдалении предмета.
Подключение датчика к ардуино
При написании скетча использовалась следующий вариант распиновки подключения датчика:
- VCC: +5V
- Trig – 12 пин
- Echo – 11 пин
- Земля (GND) – Земля (GND)
Пример скетча
Начнем работу с датчиком сразу с относительного сложного варианта – без использования внешних библиотек.
В данном скетче мы выполняем такую последовательность действий:
- Коротким импульсом (2-5 микросекунды) переводим датчик расстояния в режим эхолокации, при котором в окружающее пространство высылаются ультразвуковые волны с частотой 40 КГц.
- Ждем, пока датчик проанализирует отраженные сигналы и по задержке определит расстояние.
- Получаем значение расстояния. Для этого ждем, пока HC SR04 выдаст на входе ECHO импульс, пропорциональный расстоянию. Мы определяем длительность импульса с помощью функции pulseIn, которая вернет нам время, прошедшее до изменения уровня сигнала (в нашем случае, до появления обратного фронта импульса).
- Получив время, мы переводим его в расстояние в сантиметрах путем деления значения на константу (для датчика SR04 это 29.1 для сигнала «туда», столько же для сигнала «обратно», что в сумме даст 58.2).
Если датчик расстояния не выполняет считывание сигнала, то преобразование выходного сигнала никогда не примет значения короткого импульса – LOW. Так как у некоторых датчиков время задержки варьируется в зависимости от производителя, рекомендуется при использовании указанных скетчей выставлять его значение вручную (мы это делаем в начале цикла).
Если расстояние составляет более 3 метров, при котором HC SR04 начинает плохо работать, время задержки лучше выставлять более 20 мс, т.е. 25 или 30 мс.
Скетч с использованием библиотеки NewPing
Теперь давайте рассмотрим вариант скетча с использованием библиотеки NewPing. Код существенно упростится, т.к. все описанные ранее действия спрятаны внутри библиотеки. Все, что нам нужно сделать – создать объект класса NewPing, указав пины, с помощью которых мы подключаем датчик расстояния и использовать методы объекта. В нашем примере для получения расстояния в сантиметрах нужно использовать ping_cm().
Пример подключения ультразвукового дальномера HC SR04 с одним пином
Подключение HC-SR04 к Arduino может быть выполнено посредством использования одного пина. Такой вариант пригодится, если вы работаете с большим проектом и вам не хватает свободных пинов. Для подключения вам нужно просто установить между контактами TRIGи ECHO резистор номиналом 2.2K и подключить к ардуино контакт TRIG.
Как подключить ультразвуковой датчик к Ардуино
Для этого занятия нам потребуется:
- плата Arduino Uno / Arduino Nano / Arduino Mega;
- макетная плата;
- УЗ дальномер HC-SR04;
- 1 светодиод и резистор 220 Ом;
- провода «папа-папа» и «папа-мама».
Схема подключения ультразвукового датчика к Arduino Uno
Схема подключения указана на рисунке выше. Отметим, что ультразвуковой дальномер HC-SR04 имеет диапазон измерения от 2 см до 400 см, работает при температурах от 0° до 60° С. Точность измерения составляет ± 1 см, рабочее напряжение датчика до 5,5 В. Для начала мы используем простой скетч, без использования библиотеки Ultrasonic. После подключения к Arduino дальномера HC-SR04 загрузите следующий скетч:
Скетч для подключения датчика hc-sr04 к Arduino
int trigPin = 8; // назначаем имя для Pin8 int echoPin = 9; // назначаем имя для Pin9 void setup() { Serial.begin (9600); // подключаем монитор порта pinMode(trigPin, OUTPUT); // назначаем trigPin (Pin8), как выход pinMode(echoPin, INPUT); // назначаем echoPin (Pin9), как вход } void loop() { int duration, cm; // назначаем переменную "cm" и "duration" для показаний датчика digitalWrite(trigPin, LOW); // изначально датчик не посылает сигнал delayMicroseconds(2); // ставим задержку в 2 ммикросекунд digitalWrite(trigPin, HIGH); // посылаем сигнал delayMicroseconds(10); // ставим задержку в 10 микросекунд digitalWrite(trigPin, LOW); // выключаем сигнал duration = pulseIn(echoPin, HIGH); // включаем прием сигнала cm = duration / 58; // вычисляем расстояние в сантиметрах Serial.print(cm); // выводим расстояние в сантиметрах Serial.println(" cm"); delay(1000); // ставим паузу в 1 секунду }
Пояснения к коду:
- для подключения выходов Trig и Echo на датчике сонара Ардуино можно использовать любые цифровые входы на микроконтроллере;
- чтобы получить значение датчика в миллиметрах следует использовать следующую формулу для расчета: .
Датчик расстояния в проектах Arduino
Способность ультразвукового датчика определять расстояние до объекта основано на принципе сонара – посылая пучок ультразвука, и получая его отражение с задержкой, устройство определяет наличие объектов и расстояние до них. Ультразвуковые сигналы, генерируемые приемником, отражаясь от препятствия, возвращаются к нему через определенный промежуток времени. Именно этот временной интервал становится характеристикой помогающей определить расстояние до объекта.
Внимание! Так как в основу принципа действия положен ультразвук, то такой датчик не подходит для определения расстояния до звукопоглощающих объектов. Оптимальными для измерения являются предметы с ровной гладкой поверхностью
Описание датчика HC SR04
Ультразвуковой дальномер HC SR04 имеет такие технические параметры:
- Питающее напряжение 5В;
- Рабочий параметр силы т ока – 15 мА;
- Сила тока в пассивном состоянии < 2 мА;
- Обзорный угол – 15°;
- Сенсорное разрешение – 0,3 см;
- Измерительный угол – 30°;
- Ширина импульса – 10-6 с.
Датчик оснащен четырьмя выводами (стандарт 2, 54 мм):
- Контакт питания положительного типа – +5В;
- Trig (Т) – выход сигнала входа;
- Echo (R) – вывод сигнала выхода;
- GND – вывод «Земля».
Схема взаимодействия с Arduino
Для получения данных, необходимо выполнить такую последовательность действий:
- Подать на выход Trig импульс длительностью 10 микросек;
- В ультразвуковом дальномере hc sr04 подключенном к arduino произойдет преобразование сигнала в 8 импульсов с частотой 40 кГц, которые через излучатель будут посланы вперед;
- Когда импульсы дойдут до препятствия, они отразятся от него и будут приняты приемником R, что обеспечит наличие входного сигнала на выходе Echo;
- На стороне контроллера полученный сигнал при помощи формул следует перевести в расстояние.
При делении ширины импульса на 58.2, получим данные в сантиметрах, при делении на 148 – в дюймах.
Подключение HC SR04 к Arduino
Выполнить подключение ультразвукового датчика расстояния к плате Arduino достаточно просто. Схема подключения показана на рисунке.
Контакт земли подключаем к выводу GND на плате Arduino, выход питания соединяем с 5V. Выходы Trig и Echo подсоединяем к arduino на цифровые пины. Вариант подключения с помощью макетной платы:
Библиотека для работы с HC SR04
Для облегчения работы с датчиком расстояния HC SR04 на arduino можно использовать библиотеку NewPing. Она не имеет проблем с пинговыми доступами и добавляет некоторые новые функции.
К особенностям библиотеки можно отнести:
- Возможность работы с различными ультразвуковыми датчиками;
- Может работать с датчиком расстояния всего через один пин;
- Отсутствие отставания на 1 секунду при отсутствии пинга эха;
- Для простой коррекции ошибок есть встроенный цифровой фильтр;
- Максимально точный расчет расстояния.
Скачать бибилотеку NewPing можно здесь
Точность измерения расстояния датчиком HC SR04
Точность датчика зависит от нескольких факторов:
- температуры и влажности воздуха;
- расстояния до объекта;
- расположения относительно датчика (согласно диаграммы излучения);
- качества исполнения элементов модуля датчика.
В основу принципа действия любого ультразвукового датчика заложено явление отражения акустических волн, распространяющихся в воздухе. Но как известно из курса физики, скорость распространения звука в воздухе зависит от свойств этого самого воздуха (в первую очередь от температуры). Датчик же, испуская волны и замеряя время до их возврата, не догадывается, в какой именно среде они будут распространяться и берет для расчетов некоторую среднюю величину. В реальных условиях из-за фактора температуры воздуха HC-SR04 может ошибаться от 1 до 3-5 см.
Фактор расстояния до объекта важен, т.к. растет вероятность отражения от соседних предметов, к тому же и сам сигнал затухает с расстоянием.
Также для повышения точности надо правильно направить датчик: сделать так, чтобы предмет был в рамках конуса диаграммы направленности. Проще говоря, “глазки” HC-SR04 должны смотреть прямо на предмет.
Для уменьшения ошибок и погрешности измерений обычно выполняются следующие действия:
- усредняются значения (несколько раз замеряем, убираем всплески, потом находим среднее);
- с помощью датчиков (например, DHT11 или DHT22) определяется температура и вносятся поправочные коэффициенты;
- датчик устанавливается на серводвигатель, с помощью которого мы “поворачиваем голову”, перемещая диаграмму направленности влево или вправо.
Исходный код программы
В этом проекте мы использовали библиотеку NewPing.h для ультразвукового датчика, разработанную Tim Eckel. Хотя с ультразвуковым датчиком можно вполне успешно работать и без этой библиотеки, но в виде исключения мы в этом проекте решили использовать ее потому что она имеет много полезных функций для работы с ультразвуковым датчиком и значительно сокращает код программы.
Сначала желательно протестировать работу ультразвукового датчика с помощью примеров из данной библиотеки и лишь затем загружать в плату Arduino код программы для нашего проекта сигнализации.
Переключающий контакт (Trigger pin) датчика подключен к контакту 12 платы Arduino, а Echo pin – к контакту 11 платы Arduino. MAX_DISTANCE обозначает максимальную дистанцию, на котором датчик может обнаруживать препятствие. Оно составляет 500 см (5 м).
Установим скорость последовательного порта (в бодах/с), с которой будут передаваться данные от ультразвукового датчика к плате Arduino.
Контакт 10 конфигурируется для работы на вывод данных и к нему подключен зуммер. Другой контакт зуммера подключен к контакту GND платы Arduino.
В функции void echoCheck() команда sonar.ping_result / US_ROUNDTRIP_CM используется для расчета расстояния от датчика до препятствия. Переменная flag используется чтобы дать сигнал включения зуммера когда препятствие находится на расстоянии менее 50 см от датчика. Вы можете изменить это расстояние на то, которое вам необходимо (будет зависеть от размеров вашей двери).
Работа с ультразвуковым датчиком с помощью библиотеки NewPing.h снабжена подробными комментариями от авторов этой библиотеки. Изучая примеры этой библиотеки вы можете узнать много полезного о работе с ультразвуковым датчиком.
Изначально ультразвуковой датчик предназначен для измерения расстояний, но в этом проекте мы его применили, как вы можете видеть – в качестве охранной системы (сигнализации на дверь). Но его также можно применить и в других нестандартных проектах, например, для измерения уровня воды в баке.
Далее приведен полный текст программы.
Ультразвуковые датчики расстояния (сонары)
Самое популярное и основное использование сонара – это «видеть» под водой. Для обнаружения объектов сонар использует распространение звука. Поскольку звуковые волны распространяются в воде дальше, чем в воздухе, то в этом случае использование сонара предпочтительнее, по сравнению с другими типами датчиков, такими как радар. Несмотря на то, что сонар предпочтителен для подводного зондирования, его всё равно можно использовать в воздухе; однако существует небольшая вероятность интерференции, которую мы можем наблюдать при измерении расстояния.
Существует два типа сонаров: пассивный и активный. Активный сонар имеет излучатель и детектор: в зависимости от времени, за которое сигнал возвращается к сонару, он может определить расстояние до объекта и его ориентацию. Он также определяет уровень сигнала, чтобы определить, сколько времени ему потребовалось для захвата приемником. Пассивные сонары используются для захвата сигналов от судов и других морских объектов, таких как киты и подводные лодки. Пассивные сонары не имеют излучателей; они просто принимают доходящие до них звуковые волны.
Работа сонара
Запуск и настройка
При первом запуске устройства происходит следующее:
- Подается импульс на вход Trig.
- В самом датчике сигнал преобразуется в 8 импульсов, у которых частота достигает 40 кГц, их он, соответственно, и посылает вперёд.
- Доходя до препятствия, импульсы отражаются и возвращаются на приемник, происходят моментальные расчеты в МК, и вся информация подаётся на устройство вывода. В нашем случае – это консоль ПК, но в будущем мы сделаем урок, где данные будут выводиться на LED-экранчик.
При первом запуске мы используем линейку, которая позволит сравнить точность измерений. Запустив устройство, проверьте данные, которые будут выведены в консоли.
Датчик пользуется большой популярностью и всё больше людей пишут свои решения для работы с ним.
Суть проекта
Мне хотелось сделать дальномер. Во-первых, из-за того, что у меня был ультразвуковой датчик и надо было научиться с ним взаимодействовать. Во-вторых, я хотел выводить всю информацию на OLED-дисплей. В статьях, которые я находил, либо рассказывалось про работу с дисплеем и датчиком по отдельности, либо они являлись частью совершенно другого проекта. Я собрал все необходимое тут и надеюсь, что это сможет как-то помочь другим.
Что понадобится?
-
Любая плата Arduino (у меня Uno);
-
Ультразвуковой дальномер HC-SR04;
-
OLED-дисплей на 0,96 дюймов;
-
Соединительные провода;
-
Макетная плата.
Предисловие
Так получилось, что в университете я изучаю C/C++. Для души пробую делать небольшие проекты на Python. Я много слышал про платформу Arduino, смотрел видео на YouTube, частенько посещал Arduino Project Hub и вот мне стало интересно самому поэкспериментировать, углубясь в разработку под микроконтроллеры. Купив стартовый набор с самой платой и горстью электронных компонентов и попробовав собрать проекты из обучающей брошюры, понял, что надо двигаться дальше. Продумав саму идею следующей самоделки, отправился на просторы Google и обнаружил, что не могу найти всего, что мне нужно на одном ресурсе. Безусловно, мне несложно было посетить несколько сайтитов и блогов с информацией, но я бы сильно сэкономил время, если бы нашел все в одном месте. Так и появилась эта статья-туториал.