Универсальный внешний накопитель для всех iOS-устройств, совместим с PC/Mac, Android
Header Banner
8 800 100 5771 | +7 495 540 4266
c 9:00 до 24:00 пн-пт | c 10:00 до 18:00 сб
0 Comments

Содержание

AVR-STM-C++: Arduino IDE или C/C++?

В этой статье я хочу сравнить среды и средства разработки, выявить их положительные и отрицательные стороны, а так же разобраться, с чего лучше начинать изучать микроконтроллеры.
Многие из тех, кто хочет познакомиться с микроконтроллерами, не знают с чего начать. Какой микроконтроллер выбрать начинающему, какой язык программирования, какую среду разработки? У каждого выбора есть свои плюсы и минусы. Разобраться во всем и сразу невозможно. Чем же руководствоваться при выборе? В первую очередь целью. Достаточно задать себе вопрос “Зачем мне это надо?”. Итак, давайте сравним среду разработки Arduino с написанием прошивки для микроконтроллера на C/C++ в Atmel Studio, например.

Неоспоримый плюс Arduino IDE в легкости освоения. Для того, чтоб сделать первый шаг и моргнуть светодиодом, не нужно изучать язык программирования, не нужно изучать архитектуру микроконтроллера и заниматься его инициализацией. Но в этом кроется основной на мой взгляд минус Arduino IDE – нет понимания как работает микроконтроллер, для программиста он остается таким себе “черным ящиком”. Столкнувшись с тем, что в реальном времени необходимо работать с большим массивом информации с внешних датчиков и управлять несколькими двигателями, программисту будет трудно написать код так, чтоб все работало точно и безотказно. Например, использовать прерывания по таймеру вместо ардуиновского delay.

В этом есть неоспоримый плюс написания прошивок на C/C++ – понимание работы микроконтроллера, его особенностей и периферии. Это дает возможность использовать микроконтроллер рационально, в большинстве случаев дает прирост производительности, что в свою очередь дает экономию на разрабатываемом приборе. Минус – время на изучение. Чтоб освоить с нуля язык, необходимо время, плюс изучение микроконтроллера. При переходе на другой микроконтроллер – надо изучать новый микроконтроллер, его регистры, периферию. При переходе на другую архитектуру – еще больше времени. С приходом опыта этот минус немного нивелируется и времени на освоение нового уходит все меньше и меньше, ибо ты уже как минимум с половиной из того, что надо изучить, сталкивался в предыдущих микроконтроллерах, но все же требуется некоторый мозговой штурм для изучения нового.

Еще один минус Arduino IDE – это то, как эта среда использует ресурсы микроконтроллера. Если необходимо много всего впихнуть в микроконтроллер или работать в режиме реального времени – то появляются трудности. Проблема решается выбором более мощного контроллера, что в свою очередь несет общее удорожание разрабатываемого прибора. Например, там, где можно было бы обойтись Attiny4313, придется ставить Atmega238. На C/C++ подобная проблема изначально отсутствует, так как среда разработки не добавляет в код то, чего туда не пишет программист, что в свою очередь позволяет более рационально использовать ресурсы микроконтроллера.

Один из плюсов C/C++ – нет фактически никаких ограничений по алгоритмам и кодам, кроме накладываемых ограничений самого микроконтроллера. Из-за этого в среде Arduino IDE очень часто встречаются вставки кода на C, когда гибкости Arduino language попросту не хватает.

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

Это основные плюсы и минусы двух разных подходов. Что касается того, стоит ли полностью отказываться от одного в пользу другого – однозначно нет. Для нормального изучения микроконтроллеров однозначно использовать C/C++, а вот для того, чтоб быстро запустить или проверить новое устройство – Arduino IDE.
В заключение хочу сказать о том, что выбор среды разработки в первую очередь должен давать ответ на вопрос “зачем мне это надо?”. Например, что должен знать начинающий программист-микроконтроллерщик? Правильно, микроконтроллеры. С Arduino IDE вряд ли удастся добиться полного знания и понимания с чем работаешь. Но если нужно очень быстро создать прототип устройства, которое в дальнейшем можно будет легко воспроизвести кем угодно – то тут лучше взять ардуино.

Сам же я начинал писать на C/C++, активно пишу и сейчас, и не менее активно использую Arduino IDE. Для примера приведу микроконтроллер Attiny13a – код, написанный для него в Atmel Studio, будет занимать гораздо меньше места, чем тот же код написанный в Arduino IDE. В то же время когда мне пришли с алиекспресс датчики BMP280, для проверки их на работоспособность я использовал Arduino IDE с уже готовой библиотекой для этих датчиков – я потратил гораздо меньше времени, нежели потратил бы разрабатывая свои библиотеки на C в Atmel Studio. Потому я никогда не поддерживал и не буду поддерживать холиваров на тему “что лучше: Arduino language или C/C++?”, у каждого способа и метода есть свой неповторимый функционал и назначение. Используя в равной мере оба способа там, где это надо, либо выбирая наиболее подходящий для конкретного случая – можно добиться гораздо лучших результатов, нежели ограничивая себя чем-то одним.

Arduino и Windows 10 – Windows IoT

  • Чтение занимает 2 мин

В этой статье

Важно!

Группа Windows 10 IoT больше не поддерживает Arduino.The Windows 10 IoT team is no longer actively maintaining Arduino.

Arduino и Windows 10 работают совместно, чтобы помочь вам сделать замечательные проекты — Начните работу, щелкнув одну из ссылок ниже.Arduino and Windows 10 work together to help you make amazing projects – get started by clicking one of the links below. Наши технологии поддерживают Arduino УНО и мегасимволов, а также новые Arduino 101.Our technologies support the Arduino Uno and Mega, as well as the new Arduino 101.

Arduino провода для устройств Windows 10 IoT базоваяArduino Wiring for Windows 10 IoT Core Devices

Чтобы обеспечить использование привычного языка Arduino для устройств IOT Core, предоставляется шаблон проекта Visual Studio для Arduinoной привязки.To enable the use of the familiar Arduino Wiring language on IoT Core devices, a Visual Studio project template for Arduino Wiring is provided. Шаблон проекта Arduino провода позволяет разрабатывать, развертывать и выполнять отладку Arduinoных набросков на поддерживаемых устройствах IoT Core.The Arduino Wiring project template enables developing, deploying and debugging Arduino Wiring sketches on supported IoT Core devices.

Приступая к работе с Arduino проводаGet started using Arduino Wiring

Удаленный Arduino WindowsWindows Remote Arduino

Windows Remote Arduino — это библиотека среда выполнения Windows с открытым исходным кодом, которая позволяет руководителям управлять Arduino с помощью подключения Bluetooth, USB, Wi-Fi или Ethernet.Windows Remote Arduino is an open-source Windows Runtime library which allows Makers to control an Arduino through a Bluetooth, USB, Wi-Fi, or Ethernet connection. Он позволяет разработчикам включать датчики Arduino в проекты Windows или даже разгружать ресурсоемкие вычислительные работы из Arduino в Windows.It enables developers to include Arduino sensors in their Windows projects, or even offload computationally expensive work from an Arduino to Windows. Библиотеку удаленного Arduino Windows можно использовать с любыми языками WinRT (C++/CX, C# и JavaScript).The Windows Remote Arduino library can be used with any WinRT languages (C++/CX, C# and JavaScript).

Просмотр удаленного Arduino Windows на GitHubView Windows Remote Arduino on GitHub

Купить ArduinoBuy an Arduino

Arduino и совместимые языки программирования | GeekBrains

Для тех, кто не разделяет железо и код.

https://d2xzmw6cctk25h.cloudfront.net/post/1017/og_cover_image/d546216a36e4dcd612076245e1060f61

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

Что такое Arduino

Если называть вещи своими именами, то Arduino — это конструктор для тех, кому надоело созидать бесполезные образы и захотелось хоть немного наделить их жизнью. В самом простейшем случае Arduino — печатная плата, на которой расположен контроллер, кварцевый генератор, АЦП/ЦАП, несколько разъёмов, диодов и кнопок. Остальное — дело рук хозяина: хотите — создавайте робота, хотите — программно-аппаратную платформу для «умного» дома, ну или забудьте про практическую пользу и развлекайтесь.

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

Arduino достаточно ограниченная платформа в плане возможностей программирования, особенно в сравнении с Raspberry Pi. В силу того, что порог входа неприлично низкий (базовый Tutorial занимает 3 листа формата A4), то рассчитывать на изобилие языков без подключения дополнительных модулей не приходится. За основу здесь принят C/C++, но с использованием различных IDE и библиотек вы получите доступ к оперированию Python, C#, Go, а также таким детским развлечениям, как Snap! и ArduBlock. О том как, когда и кому их использовать, поговорим далее.

C/C++

Базовый язык платформы Arduino, который с некоторыми доработками и упрощениями используется в стандартной программной оболочке. Найти все доступные команды «для новичка» можно здесь, но никто не мешает вам воспользоваться исходными возможностями языка C++, никаких надстроек не потребуетс. Если же есть желание поиграть с «чистым» C, то к вашим услугам программа WinAVR, предназначенная, как следует из названия, для взаимодействия ОС Windows и МК серии AVR, которые и используются на Arduino. Более подробное руководство можете прочитать вот здесь.

Использование C/C++ рекомендуется тем, кто уже имеет представление о программировании, выучил в школе пару языков и хочет создать на Arduino что-то большее, чем светодиодную «мигалку» или простую машинку.

Ardublock

Временно отойдем от языков взрослых к любимому ребятней языку Scratch, а вернее к его адаптации — Ardublock. Здесь всё тоже самое, но с адаптацией к вашей платформе: цветные блоки, конструктор, русские названия, простейшая логика. Такой вариант здорово подойдет даже тем, кто с программированием не знаком вовсе. Подобно тому, как в языке Logo вы можете перемещать виртуальную черепашку по виртуальной плоскости, здесь с помощью нехитрых операций вы можете заинтересовать ребенка реальной интерпретацией его программных действий.

Да, кстати, для использования необходимо на вашу стандартную среду Arduino IDE установить плагин. Последние версии лучше не хватать, они довольно сложные, для начала подойдет датированная концом 2013 года. Для установки скачанный файл переименовываем в «ardublock-all» и запихиваем в папку «Мои документы/Arduino/tools/ArduBlockTool/tool». Если её не существует – создаем. Если что-то не поняли, то вот здесь более подробно.

Snap!

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

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

Рекомендуется младшей возрастной группе, тем, кто учил программирование так давно, что уже ничего не помнит и тем, кто хочет завлечь своего ребенка в IT через Scratch и Snap!.

Python

Формально программировать на Arduino вы можете используя хоть язык Piet, просто потому что при должном упорстве вы скомпилируете в машинный код что угодно. Но в силу того, что Python — один из наиболее популярных языков с практически оптимальным сочетанием сложность\возможности, то обойти стороной его применяемость в Arduino было бы нелепо. Начать изучение Python вы можете с нашего бесплатного интенсива “Основы языка Python”.

Итак, для этого вам понадобится библиотеки PySerial (ранее, возможно, вы использовали её для общения с портами компьютера) и vPython. О том, как правильно всё настроить и заставить в конечном счёте работать, можете соответственно почитать здесь и здесь.

Go и другие языки.

Подобно тому, как Arduino взаимодействует с Python через библиотеку PySerial, он может взаимодействовать и с Go, и c Java, и с HTML, и с чем только захотите. Arduino — достаточно популярная платформа, чтобы такой банальный вопрос, как выбор удобного языка, не остановил очередного исследователя. Единственное, что требуется от владельца этой маленькой платы — задумать что-нибудь удивительно интересное, а удобный инструмент неизбежно найдётся.

прошивка загрузчика Arduino через Arduino IDE, знакомство c AVRDUDE

ATmega8: прошивка загрузчика Arduino через Arduino IDE, знакомство c AVRDUDE

разделы: AVR , Arduino , Программаторы , дата: 3 марта 2014г.

Идея использовать младшее семейство AVR ATtiny для мелких проектов вместо Arduino — логична и красива, но приходиться учитывать реальное положение вещей. И если посмотреть цены на ebay.com, то получится, что ATmega8 будет лучше и дешевле многих ATtinyXX. Если вы не завод, и не имеете возможность закупаться оптом непосредственно у производителя, то для многих проектов будет проще использовать ATmega8 нежели изгаляться с программной эмуляцией TWI/I2C, UART и пр..

В качестве теории. На ATmega8 работал Arduino NG(next generation). Т.о. скетчи Arduino должны быть полностью совместимы с ATmega8. Вооружившись этим знанием попробуем что-нибудь прошить.

Распиновку и соответсвие выводам Arduino можно посмотреть здесь: http://arduino.cc/en/Hacking/PinMapping

Так же как в предыдущем посте соберите схему подцепив на 19-й пин микросхемы (digital pin 13 Arduino) резистор со сетодиодом. Должно получиться как-то так:

    В Arduino IDE меню-> сервис выберете опции:
  • Плата -> Arduino NG or older w/ ATmega8
  • Программатор -> Arduino as ISP

Далее откройте из примеров скетч “Blink”. Здесь нужно будет исправить sleep(1000) на sleep(100). Профайл платы NG подразумевает работу с 16 Мгц резонатором, а у нас микроконтроллер работает от втроенного резонатора на 1 МГц, т.е. в 16 раз медленее.

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

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

1) контроллер не отвечает:

avrdude: AVR device not responding
avrdude: initialization failed, rc=-1

2) неверный тип микроконтроллера:

Раз речь пошла об ошибках и косяках пошивки, думаю настало время познакомиться с avrdude, утилитой c помощью которой Arduino IDE шьет микроконтроллеры.

В Arduino IDE: меню -> настройки отметье галочкой чекбокс: “показывать подробный вывод при загрузке” и загрузите скетч в микроконтроллер еще раз. Если Arduino IDE запущен был из командной строки, то в консоли должен появиться длинный лог, где нас будет интересовать первая строка:

/opt/arduino/hardware/tools/avrdude -C/opt/arduino/hardware/tools/avrdude.conf -v -v -v -v -patmega8 -carduino -P/dev/ttyUSB0 -b19200 -D -Uflash:w:/tmp/build4429286683533029884.tmp/Blink.cpp.hex:i
    где:
  • -С –конфигурационный файл
  • -p –модель микроконтроллера
  • -с –модель программатора
  • -P –порт
  • -b –скорость порта
  • -U –операции с памятью

Часто при ошибках выводится сообщение c предложеним запустить avrdude с опцией -F.

use -F to override this check

НИКОГДА не делайте этого! Если есть ошибка, постарайтесь разобраться в проблеме. Иначе можно заблокировать чип.

Наиболее интересная опция для нас “-U”, операции с памятью. Формат опции: тип_памяти:операция:файл:формат_файла

для начала, можно попробовать считать прошивку микроконтроллера:

-U flash:r:my.hex:i
    где:
  • r – чтение прошивки
  • i – формат файла прошивки Intel

введите в консоли команду:

/opt/arduino/hardware/tools/avrdude -C/opt/arduino/hardware/tools/avrdude.conf -v  -patmega8 -carduino -P/dev/ttyUSB0 -b19200  -U flash:r:my.hex:i

на выходе будем иметь лог:

/opt/arduino/hardware/tools/avrdude -C/opt/arduino/hardware/tools/avrdude.conf -v  -patmega8 -carduino -P/dev/ttyUSB0 -b19200  -U flash:r:my.hex:i

avrdude: Version 5.11, compiled on Sep  9 2011 at 16:00:41
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2009 Joerg Wunsch

         System wide configuration file is "/opt/arduino/hardware/tools/avrdude.conf"
         User configuration file is "/home/flanker/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/ttyUSB0
         Using Programmer              : arduino
         Overriding Baud Rate          : 19200
         AVR Part                      : ATMEGA8
         Chip Erase delay              : 10000 us
         PAGEL                         : PD7
         BS2                           : PC2
         RESET disposition             : dedicated
         RETRY pulse                   : SCK
         serial program mode           : yes
         parallel program mode         : yes
         Timeout                       : 200
         StabDelay                     : 100
         CmdexeDelay                   : 25
         SyncLoops                     : 32
         ByteDelay                     : 0
         PollIndex                     : 3
         PollValue                     : 0x53
         Memory Detail                 :

                                  Block Poll               Page                       Polled
           Memory Type Mode Delay Size  Indx Paged  Size   Size #Pages MinW  MaxW   ReadBack
           ----------- ---- ----- ----- ---- ------ ------ ---- ------ ----- ----- ---------
           eeprom         4    20   128    0 no        512    4      0  9000  9000 0xff 0xff
           flash         33    10    64    0 yes      8192   64    128  4500  4500 0xff 0x00
           lfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
           hfuse          0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
           lock           0     0     0    0 no          1    0      0  2000  2000 0x00 0x00
           calibration    0     0     0    0 no          4    0      0     0     0 0x00 0x00
           signature      0     0     0    0 no          3    0      0     0     0 0x00 0x00

         Programmer Type : Arduino
         Description     : Arduino
         Hardware Version: 2
         Firmware Version: 1.18
         Topcard         : Unknown
         Vtarget         : 0.0 V
         Varef           : 0.0 V
         Oscillator      : Off
         SCK period      : 0.1 us

avrdude: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.02s

avrdude: Device signature = 0x1e9307
avrdude: safemode: lfuse reads as DF
avrdude: safemode: hfuse reads as CA
avrdude: reading flash memory:

Reading | ################################################## | 100% 7.43s

avrdude: writing output file "my.hex"

avrdude: safemode: lfuse reads as DF
avrdude: safemode: hfuse reads as CA
avrdude: safemode: Fuses OK

avrdude done.  Thank you.

Итак, получив, в итоге, сообщение об успешном завершении: “avrdude done. Thank you”, мы получаем файл с копией прошивки микроконтроллера. Пара слов о фьюзах. Это биты конфигурации микроконтроллера. Если запись фьюзов пройдет с ошибкой, микроконтроллер скорее всего заблокируется. Если сконфигурировать их неправильно, микроконтроллер скорее всего тоже заблокируется. Пока не будем их трогать, но есть одна возможность. Часта микроконтроллера по умолчанию 1МГц. Можно переключить его на работу внешним резонатором прошив загрузчик arduino. Меню -> Сервис -> Записать загрузчик.

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

Перед прошивкой загрузчика, установите резонатор с частотой 1-16 МГц на 9 и 10 pin микросхемы. Там еще “по уму” должны быть керамические конденсаторы, но работать будет и без них. Для проверки сойдет. Схема:

После прошивки частоту можно будет менять заменой кварца. Так же у меня пропал варнинг при проверке после прошивки: “verification error”. В целом, микроконтроллер с кварцом работает стабильнее.

Использование Python с Arduino | Учебники по технологиям

Эта схема сочетает в себе простоту Arduino с мощью Python

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

Python с Arduino УРОК 1: Этот урок знакомит с концепциями и показывает крутой проект, который я реализовал, объединив Arduino и Python.

Python с Arduino УРОК 2: В этом уроке показано, как установить пакеты и библиотеки бесплатного программного обеспечения, чтобы Arduino и Python могли без проблем работать вместе.

Python с Arduino УРОК 3: В этом уроке показано, как создать свой собственный виртуальный мир на Python с помощью библиотеки Vpython. Затем вы можете динамически обновлять свой виртуальный мир, чтобы он соответствовал тому, что происходит в реальном мире. Демонстрация основана на измерении расстояний с помощью ультразвукового датчика Arduino и HC-SR04.

Python с Arduino УРОК 4: В этом уроке показано, как расширить виртуальный мир, включив в него датчик расстояния и цвета. Это создает сцену, в которой расстояние до цели и цвет цели динамически обновляются, чтобы отслеживать, что происходит в реальном мире.

Python с Arduino УРОК 5. В этом уроке показано, как построить свой виртуальный мир на Python с помощью библиотеки vPython и динамически обновлять ее на основе потоковой передачи данных из Arduino.

Python с Arduino УРОК 6: В этом уроке вы шаг за шагом покажете, как установить PIP.Многие из будущих уроков потребуют, чтобы на вашем компьютере был PIP, поэтому вам нужно сделать паузу и установить его. Я предлагаю посмотреть видео в уроке и следить за ним, чтобы правильно установить PIP.

Python с Arduino УРОК 7: Мы хотим начать добавлять мощные возможности построения графиков в наши проекты, поэтому нам нужно загрузить и установить библиотеку matplotlib. Этот урок шаг за шагом проведет вас через это.

Python с Arduino УРОК 8: В этом руководстве представлено простое пошаговое введение в Matplotlib для создания графиков и диаграмм в Python.

Python с Arduino УРОК 9: В этом руководстве показано, как считывать температуру и давление с помощью датчика adafruit BMP180. В этом уроке мы подключим датчик и запрограммируем Arduino на считывание данных с него, а затем на следующем уроке мы начнем потоковую передачу и построение графиков данных в реальном времени.

Python с Arduino УРОК 10: Для построения графиков данных в реальном времени на Python с использованием matplotlib нам понадобится еще одна библиотека с именем drawow. Из этого туториала Вы узнаете, как установить drawow.

Python с Arduino УРОК 11. В этом уроке показано, как строить графики и графики данных в реальном времени из Arduino с использованием Python и Matplotlib.Это позволяет нам отображать оперативные данные в удобной и информативной форме.

Python с Arduino УРОК 12: В этом уроке рассматривается математика, необходимая для расчета изменений высоты в результате изменений давления. Мы делаем упрощающее предположение о постоянной температуре.

Python с Arduino УРОК 13: Этот урок дает пошаговые инструкции о том, как рассчитать высоту по показаниям давления на датчике давления BMP180. Затем данные отображаются в реальном времени в режиме реального времени с использованием Matplotlib

Python с Arduino УРОК 14: Этот урок представляет собой введение в использование радиостанций Xbee для беспроводной связи.Это позволяет вам обмениваться данными между Arduino и Python по беспроводной сети. В этом вводном уроке рассматривается необходимое оборудование.

Python с Arduino УРОК 15: В этом уроке показано, как программировать радиомодули Xbee и использовать их с Arduino для беспроводной потоковой передачи данных на Python на ПК.

Python с Arduino УРОК 16: Простая настройка клиент-сервер через Ethernet. Этот урок поможет вам настроить ваш Arduino в качестве сервера и поговорить с клиентом на Python.

Python с Arduino УРОК 17: В этом уроке мы используем arduino в качестве сервера и Python в качестве клиента.Python отправляет запрос на измерение температуры или давления. Arduino считывает запрос, выполняет запрошенное измерение, а затем отправляет данные обратно.

Узнать | OpenEnergyMonitor

Датчики

CT – взаимодействие с Arduino


Чтобы подключить датчик CT к Arduino, выходной сигнал датчика CT должен быть согласован так, чтобы он удовлетворял входным требованиям аналоговых входов Arduino, то есть положительное напряжение между 0 В и опорным напряжением АЦП.

Примечание: На этой странице приведен пример платы Arduino, работающей при 5 В, и EmonTx, работающего при 3,3 В. Убедитесь, что вы используете правильное напряжение питания и напряжение смещения в ваших расчетах, которые соответствуют вашей настройке.

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

  1. Датчик ТТ и нагрузочный резистор

  2. Делитель напряжения смещения ( R1 и R2 )

Расчет подходящего размера нагрузочного резистора

Если датчик CT является датчиком «токового выхода», например YHDC SCT-013-000 , сигнал тока необходимо преобразовать в сигнал напряжения с нагрузочным резистором.Если это трансформатор тока с выходом напряжения, вы можете пропустить этот шаг и опустить нагрузочный резистор, поскольку нагрузочный резистор встроен в трансформатор тока.

a) Выберите текущий диапазон, который вы хотите измерить

ТТ YHDC SCT-013-000 имеет диапазон тока от 0 до 100 А. Для этого примера давайте выберем 100 А в качестве максимального тока.

b) Преобразуйте максимальный среднеквадратичный ток в пиковый, умножив на √2.

 Пиковый ток первичной обмотки = действующий ток × √2 = 100 А × 1.414 = 141,4 A 

c) Разделите максимальный ток на количество витков трансформатора тока, чтобы получить максимальный ток во вторичной катушке.

ТТ YHDC SCT-013-000 имеет 2000 витков, поэтому вторичный пиковый ток будет:

 Пиковый ток вторичной обмотки = Пиковый ток первичной обмотки / № оборотов = 141,4 А / 2000 = 0,0707 А 

г) Для того, чтобы максимально увеличить разрешение измерения, напряжение на нагрузочного резистора на пике тока должна быть равна одной половины Arduino аналогового опорного напряжения.(AREF / 2)

Если вы используете Arduino с напряжением 5 В: AREF / 2 будет 2,5 В. Таким образом, идеальное сопротивление нагрузке будет:

 Идеальное сопротивление нагрузки = (AREF / 2) / Пиковый вторичный ток = 2,5 В / 0,0707 A = 35,4 Ом
 

35 Ом – нестандартное значение резистора. Ближайшие значения по обе стороны от 35 Ом – 39 и 33 Ом. Всегда выбирайте меньшее значение, иначе максимальный ток нагрузки создаст напряжение выше, чем AREF. Мы рекомендуем нагрузку 33 Ом ± 1%. В некоторых случаях использование двух последовательно подключенных резисторов будет ближе к идеальному значению нагрузки.Чем дальше от идеального значение, тем ниже будет точность.

Вот те же вычисления, что и выше, в более компактной форме:

 Нагрузочный резистор (Ом) = (AREF * CT ОБОРОТОВ) / (2√2 * макс. Первичный ток) 

Размер нагрузочного резистора для оборудования мониторинга энергопотребления OpenEnergyMonitor.

emonTx V3 (см. Руководство)

В emonTx V3 используется стабилизатор 3,3 В, поэтому V CC и, следовательно, AREF всегда будет 3,3 В независимо от напряжения батареи.Стандартный emonTx V3 использует нагрузочные резисторы 22 Ом для CT 1, 2 и 3 и резистор 120 Ом для CT4, канала высокой чувствительности. См. Техническую вики по emonTx V3 по адресу: https://wiki.openenergymonitor.org/index.php?title=EmonTx_V3#Burden_Resistor_Calculations.

emonPi (см. Руководство)

EmonPi имеет два канала трансформатора тока с нагрузочными резисторами 22 Ом.

emonTx V2

Если вы используете emonTx V2 с батарейным питанием, AREF будет начинаться с 3,3 В и медленно уменьшаться, когда напряжение батареи упадет до 2.7 В. Таким образом, идеальное сопротивление нагрузки для минимального напряжения будет:

 Идеальное сопротивление нагрузки = (AREF / 2) / Пиковый вторичный ток = 1,35 В / 0,0707 A = 19,1 Ом 

19 Ом не является общепринятым значением. У нас есть выбор между 18 или 22 Ом. Мы рекомендуем использовать нагрузку 18 Ом ± 1%.


Инструмент для расчета размера нагрузочного резистора, числа оборотов ТТ и макс. Irms (спасибо Тайлеру Адкиссону за создание и распространение).

( Примечание : этот инструмент не учитывает максимальную выходную мощность ТТ.Насыщенность и искажение появятся при превышении максимальной мощности. Он также не принимает во внимание допуски компонентов, поэтому значение нагрузочного резистора следует уменьшить на несколько (~ 5) процентов, чтобы обеспечить некоторый «запас». Дополнительную информацию о допусках компонентов см. По адресу: ACAC Допуски компонентов.)

Добавление смещения постоянного тока

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

Резисторы R1 и R2 на принципиальной схеме выше представляют собой делитель напряжения, который обеспечивает источник 2,5 В (1,65 В для emonTx). Конденсатор C1 имеет низкое реактивное сопротивление – несколько сотен Ом – и обеспечивает путь переменному току в обход резистора.Подходит значение 10 мкФ.


Выбор подходящего номинала для резисторов R1 и R2

Более высокое сопротивление снижает потребление энергии в режиме покоя.

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

Эскиз Arduino

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

Как собрать дрон с квадрокоптером на Arduino: пошаговый проект DIY

Как партнер Amazon я зарабатываю на соответствующих покупках.

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

И, чтобы вы еще больше воодушевились своим предстоящим проектом, вот квадрокоптер Arduino в действии:

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

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

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

Общее «Quad Science»

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

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

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

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

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

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

Квадроциклы

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

Компоненты, необходимые для вашего квадроцикла

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

  • Frame – «Костяк» квадрокоптера. Рама – это то, что удерживает вместе все части вертолета. Он должен быть прочным, но с другой стороны, он также должен быть легким, чтобы двигатели и батареи не изо всех сил удерживали его в воздухе.
  • Двигатели – Тяга, которая позволяет квадрокоптеру взлетать в воздух, обеспечивается бесщеточными двигателями постоянного тока, каждый из которых отдельно управляется электронным регулятором скорости или ESC.
  • ESCs – Электронный регулятор скорости похож на нерв, который передает информацию о движении от мозга (полетный контроллер) к мышцам рук или ног (моторам). Он регулирует мощность, которую получают двигатели, что определяет скорость и изменение направления квадроцикла.
  • Пропеллеры – В зависимости от типа квадроцикла, который вы создаете, вы можете использовать винты от 9 до 10 или 11 дюймов (для стабильных полетов с аэрофотосъемкой) или 5-дюймовые гоночные винты для меньшей тяги, но большей скорости.
  • Батарея – В зависимости от вашего максимального уровня напряжения вы можете выбрать 2S, 3S, 4S или даже 5S батареи. Но для стандартного квадроцикла, который планируется использовать для аэросъемки или фотосъемки (просто пример), вам понадобится батарея 3S на 11,4 В. Вы можете выбрать 22,8 В 4S, если вы строите гоночный квадроцикл и хотите, чтобы двигатели вращались намного быстрее.
  • Плата Arduino – Выбор конкретной модели зависит от типа квадрокоптера, который вы хотите построить.Строите ли вы для аэрофотосъемки, гонок, фристайла или чего-то еще. О правильном выборе платы мы поговорим далее в статье.
  • IMU – Доска, которая в основном (в зависимости от вашего выбора) представляет собой сумму различных датчиков, которые помогают вашему квадроциклу знать, где он находится и как его выровнять.
  • RC Controller – Выбор передатчика зависит от выбора протокола, который вы собираетесь использовать, и приемника сигнала, который установлен на дроне.

Это основные компоненты дрона. Читайте более подробное описание каждого компонента:

Деталь # 1 – Рама

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

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

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

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

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

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

Деталь # 2 – Бесщеточные двигатели

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

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

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

Для двигателей (или роторов), мы предлагаем следующие модели:

Деталь # 3 – Винты

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

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

  • 5 ступеней, 8 диаметров – малые квадратики
  • Шаг 8, диаметр 9 – малые квадроциклы
  • 5 ступеней, 10 диаметров – квадрациклы среднего размера
  • Шаг 7, диаметр 10 – квадроциклы среднего размера
  • Шаг 5, диаметр 12– Обеспечивает большое количество толчков и отлично подходит для квадроциклов большего размера.

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

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

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

Если вам нужны винты с хорошими характеристиками, мы рекомендуем вам приобрести любой из этих:

Деталь # 4 – ESC (

Электронный регулятор скорости )

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

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

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

Когда дело доходит до ESC (электронных регуляторов скорости) , w e предлагает эти модели, которые являются отличными и стабильными:

Деталь # 5 – Аккумулятор

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

Батареи

LiPo поставляются как одна ячейка 3,7 В или упакованы вместе (до 10 элементов, обеспечивающих 37 В).

Самая популярная версия среди любителей дронов известна как батарея 3SP1, которая состоит из трех элементов и обеспечивает напряжение 11,1 В.

Вот хороший: Zippy Flightmax 5000mAh 3S1P 20C

Деталь # 6 – IMU (инерциальный измерительный блок)

Это устройство отвечает за измерение ориентации, скорости и силы тяжести квадрокоптера.Это позволяет электронике управлять мощностью, подаваемой на двигатели, чтобы регулировать скорость двигателей. Устройство оснащено 3-осевым гироскопом и 3-осевым акселерометром. Эта комбинация известна как 6DOF IMU.

Вот хороший вариант для сборки квадроцикла: KNACRO 6508 IMU MPU6050 MPU-6050 6DOF

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

Деталь # 7 – Контроллер полета

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

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

Входит в состав:

  • 14 контактов цифрового ввода / вывода (6 из них могут использоваться как выходы для ШИМ)
  • 6 аналоговых входов
  • кварцевый кристалл 16 МГц
  • разъем USB
  • разъем питания
  • заголовок ICSP
  • кнопка сброса

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

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

Вы можете запрограммировать «UNO» с помощью программного обеспечения Arduino. Чтобы получить подробную информацию, которая поможет вам начать работу с полетным контроллером Arduino UNO, перейдите к последнему разделу сообщения.

Деталь # 8 – RC-передатчик

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

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

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

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

В настоящее время доступны различные системы управления RC , такие как Futaba, Spektrum, Turnigy, FlySky и так далее.Вот несколько наших любимых:

Электромонтаж, пайка и программирование

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

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

Схемы

Это основной план вашей операции:

Как подключить ESC:

  • Сигнальный штифт ESC 1 – D3
  • Сигнальный штифт ESC 3 – D9
  • Сигнальный штифт ESC 2 – D10
  • Сигнальный штифт ESC 4 – D11

Как подключить модуль Bluetooth:

Как подключить MPU-6050:

Как подключить светодиодный индикатор:

Как подключить приемник:

  • Дроссель – 2
  • Элероны – D4
  • Элероны – D5
  • Руль – D6
  • AUX 1 – D7

Вам необходимо заземлить MPU-6050, модуль Bluetooth, приемник и ESC.И для этого вам необходимо подключить все контакты GND к контакту GND Arduino.

Как спаять все вместе

Вот порядок, в котором вы должны спаять все части вместе:

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

Припаяйте их прямо по центру, чтобы оставалось место для остальных разъемов для MPU, модуля Bluetooth, приемника и ESC, и оставьте место для некоторых дополнительных датчиков, которые вы, возможно, решите добавить в будущем.

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

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

Первый заголовок в первой строке будет использоваться для PID сигнала, второй для 5V (хотя это зависит от ваших ESC, имеющих вывод 5V или нет, в противном случае вы оставите эти заголовки пустыми), а третий Заголовок будет для GND.

По окончании пайки регуляторов скорости переходите к паяльной части разъемов приемника. В большинстве случаев у квадрокоптера 4 канала. Это газ, тангаж, рыскание и крен. Оставшийся свободный канал (пятый) используется для смены режима полета (вспомогательный канал). Это означает, что вам нужно будет припаять штекерные разъемы в 5 рядов. Все, кроме одной, будут иметь один заголовок, а только для одной из этих строк требуется 3 заголовка подряд.

Как подключить все

Ниже вы можете увидеть пример правильного подключения.Как вы можете видеть на картинке, то, о чем мы только что говорили, расположено слева (MPU припаян по центру) на плате, а слева (два женских разъема припаяны снизу) на плате – это то, как мы припаяли и подключили модуль Bluetooth. .

В нашем случае все земли были связаны с землями Arduino. Это включает в себя все заземления ESC, массу приемника (заголовок сигнала газа полностью справа), а также заземление модуля Bluetooth и MPU.

Далее вам нужно следовать схемам и соединениям, которые мы объяснили выше.Например, MPU (SDA – A4 и SCL – A5) и для Bluetooth (TX – TX и RX – RX) Arduino.

После этого просто проследите за подключениями, как мы их написали: Сигнальные контакты ESC1, ESC2… к D3, D10… Arduino. Затем пины сигнала приемника Pitch – D2, Roll – D4… и так далее.

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

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

Теперь MPU 6050 необходимо припаять к штекерным разъемам и к тем, которые вы планируете использовать. После этого поверните плату на 180 градусов и подключите все ваши компоненты к соответствующим разъемам на макетной плате.

Вот как это должно выглядеть, когда закончена пайка и проводка:

Включите его, и ваш Arduino готов к добавлению кодов через компьютер!

Как запрограммировать контроллер полета Arduino

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

Во-первых, вам необходимо загрузить MultiWii 2.4. Тогда, когда вы его извлечете, вы получите это:

Войдите в папку MultiWii, найдите значок MultiWii и запустите его:

Используйте IDE Arduino, чтобы найти «файл Arduino» или файл Multiwii с расширением «.я не”. Любые «CPP-файл» или «H-файл» являются вспомогательными файлами для нашего кода Multiwii, поэтому не открывайте их. Просто используйте файл Multiwii.ino.

Когда вы открываете файл, вы найдете множество вкладок, таких как Alarms.cpp, Alarms.h, EEPROM.cpp, EEPROM.h и многие другие. Найдите «config.h»

Прокрутите вниз, пока не найдете «Тип мультикоптера», а затем, удалив «//», вы отметите это как определенное и работающее. Quad X, потому что мы предполагаем, что вы используете конфигурацию ротора «X» на вашем квадроцикле.

Теперь прокрутите вниз и найдите «Combined IMU Boards» и активируйте тип платы Gyro + Acc, которую вы используете. В нашем случае мы использовали GY-521, поэтому мы активировали эту опцию.

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

Далее идет «Пин зуммера»:

Там нужно активировать опции индикатора полета (первые 3):

Теперь вам нужно прошить код на Arduino.

Отключите плату Arduino от полетного контроллера, а затем подключите ее к компьютеру через USB. Выйдя из FC и подключившись к компьютеру, вы найдете TOOLS и выберите тип своей платы Arduino (в нашем случае Arduino Nano).

Теперь найдите «Последовательный порт» и активируйте COM-порт, к которому подключен Arduino Nano (в нашем случае – COM3).

Наконец, щелкните стрелку и загрузите код и дождитесь передачи кода.

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

Теперь найдите папку Multiwii 2.4, затем MultiwiiConfig и найдите папку, совместимую с вашей ОС. В нашем случае это «application.windows64».

Теперь запустите приложение MultiwiiConf:

Когда откроется пользовательский интерфейс, вам нужно выбрать COM-порт Arduino и нажать «Пуск», как показано на изображении ниже.

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

В этом интерфейсе вы можете изменить значения PID и точно настроить свой квадроцикл в соответствии с вашими личными предпочтениями.Вы также можете назначить режимы полета определенным положениям вспомогательного переключателя в этом интерфейсе.

Все, что вам нужно сделать, это найти место для вашего Arduino FC на раме, и он готов взлететь в небо.

Заключение

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

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

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

YMFC-3D Часть 1 – Аппаратное обеспечение

YMFC-3D Часть 2 – Подключение передатчика и приемника RC

YMFC-3D Часть 3 – Как подключить гироскоп

YMFC-3D Часть 4 – Электронный регулятор скорости (ESC)

YMFC-3D Часть 5 – ПИД-регулятор квадрокоптера и настройка ПИД-регулирования

YMFC-3D Часть 6 – Контроллер полета с исходным кодом

Не стесняйтесь оставлять комментарии или отзывы об этом посте.Счастливого строительства!

Amazon и логотип Amazon являются товарными знаками Amazon.com, Inc или ее дочерних компаний.

Начало работы с оборудованием Arduino – Пример MATLAB и Simulink

В этом примере показано, как использовать пакет поддержки Simulink для оборудования Arduino для запуска модели Simulink® на плате Arduino.

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

Введение

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

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

Предварительные требования

Если вы новичок в Simulink, мы рекомендуем завершить Интерактивное учебное пособие по Simulink, Начать работу с Simulink и начать видео с Simulink.

Необходимое оборудование

Для запуска этого примера вам потребуется следующее оборудование:

Модель

Рассмотрим эту модель.

Задача 1 – Подключите светодиод к выходному контакту Arduino

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

1. Присоедините один конец резистора 220 Ом к выходному контакту 9 на плате Arduino. Используйте рекомендованную макетную плату и макетные провода.

2. Присоедините длинную ногу (плюс) светодиода к резистору. Присоедините короткую ножку (отрицательную) к контакту заземления на плате Arduino.

Задача 2 – Обзор библиотеки блоков Arduino

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

1. Введите slLibraryBrowser в приглашении MATLAB®. Это открывает браузер библиотеки Simulink.

2. В браузере библиотеки Simulink перейдите к Пакет поддержки Simulink для оборудования Arduino> Общий .

3. Дважды щелкните блок Digital Output . Просмотрите маску блока, которая содержит описание блока и параметры для настройки соответствующего цифрового выходного вывода Arduino.

Задача 3 – Создание модели для оборудования Arduino

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

1. В MATLAB выберите HOME> New> Simulink Model.

2. Перетащите блок Pulse Generator из библиотеки Simulink Sources в вашу модель.

3. Дважды щелкните блок Pulse Generator . Установите для параметра Pulse type значение параметра Sample based и установите для параметра Sample time значение 0.1 секунда.

4. Перетащите блок Digital Output на модель. Используйте настройки блока по умолчанию.

5. Подключите блок генератора импульсов к блоку цифрового выхода .

Задача 4 – Настройка и запуск модели на поддерживаемом оборудовании Arduino

В этой задаче вы настроите и запустите свою модель на поддерживаемой плате Arduino.

1. Подключите плату Arduino к компьютеру с помощью кабеля USB.

2. В вашей модели Simulink щелкните Simulation> Model Configuration Parameters , чтобы открыть диалоговое окно Configuration Parameters .

3. Выберите панель Аппаратная реализация и выберите необходимое оборудование Arduino из списка параметров аппаратной платы . Не меняйте никаких других настроек.

4. Щелкните ОК .

5. В вашей модели Simulink нажмите кнопку Deploy to Hardware на панели инструментов.Теперь модель будет развернута на подключенном оборудовании Arduino.

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

7. Сохраните вашу модель.

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

Другие вещи, которые стоит попробовать

Поэкспериментируйте с другими блоками в библиотеке блоков Arduino. Например:

Сводка

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

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

  • Вы можете использовать кнопку Deploy to Hardware для настройки и запуска модели на поддерживаемой плате Arduino.

Создание светодиодной матрицы с помощью Arduino, на основе материалов CUI

Фон

Поскольку COVID-19 удерживает многих из нас дома, я трачу часть своего дополнительного времени дома на просмотр своих запасов источников питания и электронных компонентов, чтобы посмотреть, что я могу с ними сделать.Моим первым проектом было использование некоторых старых программируемых светодиодных лент, оставшихся с праздников. Результатом стала матрица светодиодов RGB 24 x 18 (всего 432 светодиода RGB). Матрица имеет в общей сложности 144 управляемых раздела (24 x 6), запрограммированных с помощью множества выбираемых программ.

Рис. 1. «CUI» на плате светодиодов

Обзор платы

Плата сделана из куска фанеры с 3 полосами светодиодов длиной 5 метров, нарезанными в общей сложности на 24 полосы меньшего размера, каждая из которых содержит 18 светодиодов. Цвет светодиодов контролируется Arduino Uno группами по три (6 групп на полосу из 18 светодиодов) на основе пользовательского ввода с потенциометра и трех кнопок.Плата питается от CUI SDI65-12-U-P6, источник питания переменного / постоянного тока 60 Вт, 12 В, 5 А и две внутренние шины +/- 5 В поставляются от CUI V7805-1000. Схема демультиплексора используется для маршрутизации данных на светодиодные ленты. Arduino контролирует ток светодиодов и управляет питанием светодиодов через реле.

Рисунок 2: Блок-схема светодиодной платы Рисунок 3: Светодиодная плата спереди Рисунок 4: Светодиодная плата сзади
Категория Описание КОЛ-ВО
Контроллер ARDUINO UNO ATMEGA328 EVAL BRD 1
Светодиодные ленты 5 м 150 светодиодов WS2811 светодиодная лента программируемая светодиодная лампа цвета мечты IP67 трубка водонепроницаемая белая печатная плата 3
Блок питания АДАПТЕР НАСТОЛЬНЫЙ AC / DC 12V 60W 1
MUX Board Демулиплексоры и регулятор 5В 1
Current Sense Board Датчик тока и усилитель, с регулятором -5 В, 5 В 1
Релейная плата Плата реле, 12В 1
Панель кнопок Плата интерфейса пользователя, три кнопки, один потенциометр, 5 В 1
Рисунок 5: Спецификация верхнего уровня

Внешний источник питания

Внешний источник питания SDI65-12-U-P6 используется в качестве основного источника питания для платы.Он может обеспечивать 12 В непрерывно, до 5 А. Где-то между 5 и 7,5 А блок питания перейдет в режим защиты от перегрузки по току и откажет до тех пор, пока ток нагрузки не упадет. Когда это происходит, Arduino теряет питание и сбрасывается, если его шина питания не удерживается достаточно долго для обнаружения и устранения неисправности. Чтобы измерить ток и предотвратить сброс контроллера OCP, светодиодные ленты подключены к источнику питания 12 В через цепь измерения тока и реле, которое управляется Arduino.

Максимальный ток каждого светодиода составляет 18,5 мА. С 432 светодиодами максимальный ток составляет 8 А, что означает, что при определенных условиях может сработать OCP. Но это условие применяется только тогда, когда все красный, зеленый и синий светодиоды горят одновременно. Сплошной красный или зеленый при полной яркости требует всего 2,7 А. После тестирования я обнаружил, что 4,5 А будет более чем достаточно для всего, что я планировал сделать. Arduino будет контролировать измеренный ток светодиода и отключит реле, если ток превысит ~ 4.6 А. Это оставляет 5 Вт для других цепей.

Рисунок 6: Тестовое измерение OCP – Реле (зеленый) становится низким, когда ток (фиолетовый), измеряемый усилителем (голубой), превышает 4,78 А, в результате чего напряжение светодиода (темно-синий) выключается. Максимальная выходная мощность составила 57,2 Вт во время теста

Arduino Uno

Плата Arduino Uno, основанная на Atmel ATmega328, используется для управления системой. Связь со светодиодными лентами (или WS2811, которые их внутренне контролируют) является однопроводной связью на основе ширины импульса и обрабатывается библиотекой Adafruit NeoPixel, которая включена в Arduino IDE.Все коммуникации, процедуры отображения, пользовательский интерфейс и управление реле программируются и контролируются платой Arduino.

Рисунок 7: Плата Arduino Uno Рисунок 8: Синхронизация связи WS2811

MUX Board

Каждая из небольших полосок имеет однопроводную линию связи, которая была демультиплексирована в одну линию связи платой мультиплексора, которая управляется Arduino Uno. Плата мультиплексора также служит центральной точкой распределения питания. Внешнее питание от SDI65-12-U подключается непосредственно к плате мультиплексора.12 В от источника питания распределяются с платы мультиплексора на плату реле и на вход импульсного регулятора V7805-1000, который преобразует его в 5 В для демультиплексоров. Шина 5 В также выводится на Arduino, а через эту плату – на платы кнопок и датчиков тока.

Рисунок 9: Плата MUX Рисунок 10: Схема платы MUX
Категория Описание Арт. КОЛ-ВО
Разъем 2.0 x 6,5 мм, 5,0 A, горизонтальный, поверхностный монтаж (SMT), разъем питания постоянного тока J8 1
Разъем CONN ЖАТКА VERT 10POS 2.54MM J1, J2, J3 3
Ползунковый переключатель 5A / 120V однополюсный двухпозиционный ползунковый переключатель S1 1
Провод к клемме TERM BLK 2P БОКОВОЙ ЛОР 2.54 мм печатная плата J4, J5, J6, J7, J9 5
Провод к клемме TERM BLK 2P SIDE ENT 5.08MM PCB J10 1
Регулятор переключения DC-DC НЕИЗОЛЯЦИОННЫЙ, 2 A, 8 ~ 36 VD DC1 1
Керамический конденсатор КОЛПАЧОК CER 0.1UF 50V X7R РАДИАЛЬНЫЙ C3, C4, C5 3
Электролитический конденсатор КРЫШКА АЛЮМИНИЕВАЯ 1 мкФ 20% 50 В РАДИАЛЬНАЯ C2 1
Алюминиевый полимерный конденсатор КРЫШКА ALUM POLY 470UF 20% 16V T / H C1 1
Светодиод ЗЕЛЕНЫЙ ДИФФУЗОР Т-1 3/4 Т / В D1 1
мультиплексор IC 3-8 ЛИНИЙ ДЕКОДЕР / DEMUX 16-DIP MUX0, MUX1, MUX2 3
Резистор РЭС 1.2 кОм 1/8 Вт 5% CF AXIAL R1 1
Рисунок 11: Спецификация платы MUX

Плата измерения тока

Плата измерения тока является частью цепи защиты от перегрузки по току (OCP). Ток к светодиодам протекает через силовой резистор на этой плате, и напряжение этого резистора, пропорциональное току светодиода, измеряется и усиливается операционным усилителем и выводится на Arduino. Коэффициент усиления усилителя регулируется потенциометром с минимальным коэффициентом усиления 1 и максимальным коэффициентом усиления 11.Обычно он установлен на 5, так что выход составляет 2,5 A / V входного сигнала (2 В при 5 A). Компаратор, порог которого устанавливается вторым потенциометром, определяет, было ли превышено пороговое значение OCP, который включает светодиодный индикатор и выдает логический сигнал на Arduino. Эта плата питается от шины V7805-1000 5V, идущей от платы MUX. Он также внутренне создает шину -5 В для операционного усилителя, используя V7805-1000 в его инвертирующей конфигурации.

Рисунок 12: Схема измерения тока Рисунок 13: Схема платы датчика тока
Категория Описание Арт. КОЛ-ВО
Резистор RES 5,1 кОм 1/8 Вт 5% ось R2, R8 2
ОП-АМП IC OPAMP GP 1 ЦЕПЬ 8DIP У2, У3 2
Резистор RES 10 кОм 1/8 Вт 5% ось R5, R6, R10 3
Светодиод ЗЕЛЕНЫЙ ДИФФУЗОР Т-1 3/4 Т / В D1 1
Светодиод КРАСНЫЙ СВЕТОДИОДНЫЙ ТИП Т-1 3/4 Т / В D2 1
Транзистор МОП-транзистор N-CH 60V 200MA TO-92 1 квартал, 2 квартал 2
Провод к клемме TERM BLK 2P БОКОВОЙ ЛОР 2.54 мм печатная плата J1, J2 2
Керамический конденсатор КОЛПАЧОК CER 0.1UF 50V X7R РАДИАЛЬНЫЙ C2, C3, C4 3
Регулятор переключения DC-DC НЕИЗОЛЯЦИОННЫЙ, 2 A, 8 ~ 36 VD U1 1
Резистор RES 470 OHM 1 / 8W 5% AXIAL R1 1
Емкость КРЫШКА АЛЮМИНИЯ 47 мкФ 20% 25 В ПРОХОДНОЕ ОТВЕРСТИЕ C1 1
Резистор RES CHAS MNT 0.1 Ом 5% 16 Вт R4 1
Керамический конденсатор КОЛПАЧОК CER 0,01 мкФ 50V X7R РАДИАЛЬНЫЙ C5 1
Триммер ТРИММЕР 10 кОм 0,2 Вт PC PIN TOP R3 1
Триммер ТРИММЕР 50 кОм 0,2 Вт PC PIN TOP R7 1
Рисунок 14: Плата датчика тока, спецификация

Релейная плата

Плата реле представляет собой простое реле и драйвер.Когда на управляющем входе повышается высокий уровень, реле включает светодиоды, а когда понижается мощность, светодиоды снимаются. Эта плата работает от 12 В, поступающего от SDI65-12-U-P6 через плату MUX.

Рисунок 12: Плата реле Рисунок 13: Схема платы реле
Категория Описание Арт. КОЛ-ВО
Провод к клемме TERM BLK 2P SIDE ENT 2.54MM PCB J1, J2, J3 3
Транзистор Биполярный (BJT) транзистор PNP 40V 200MHz 600mW Through Hole TO-92 1 квартал 1
Транзистор N-канал 60 В 200 мА (Ta) 400 мВт (Ta) сквозное отверстие TO-92-3 2 квартал 1
Резистор РЭС 2.2 кОм 1/8 Вт 5% ось R1 1
Резистор RES 110K OHM 1 / 8W 5% CF AXIAL R3 1
Резистор RES 1,2 кОм 1 / 8W 5% CF AXIAL R2 1
Реле РЕЛЕ ГЕНЕРАЛЬНОГО НАЗНАЧЕНИЯ DPDT 5A 24V К1 1
Рисунок 14: Релейная плата, спецификация

Плата кнопок

Пользователь может регулировать яркость светодиодов с помощью потенциометра.Три кнопки позволяют пользователю переключаться между различными режимами отображения и настройками цвета. Эта плата питается от 5 В от V7805-1000 на плате MUX.

Рисунок 14: Плата кнопок Рисунок 15: Схема платы кнопок
Категория Описание Арт. КОЛ-ВО
Кнопки ВЫКЛЮЧАТЕЛЬ КНОПКИ SPST 1A 30V S1, S2, S3 3
Провод к клемме TERM BLK 2P БОКОВОЙ ЛОР 2.54 мм печатная плата J1, J2, J3 3
Керамический конденсатор КОЛПАЧОК CER 0.1UF 50V X7R РАДИАЛЬНЫЙ C2 1
Светодиод ЗЕЛЕНЫЙ ДИФФУЗОР Т-1 3/4 Т / В D1 1
Резистор RES 4,7 кОм 1/8 Вт 5% ось R1 1
Электролитический конденсатор КРЫШКА АЛЮМИНИЕВАЯ 10 мкФ 20% 16 В РАДИАЛЬНАЯ C1 1
Резистор RES 110K OHM 1 / 8W 5% CF AXIAL R2, R3, R4 3
Потенциометр POT 10K OHM 1 / 5W PLASTIC LINEAR R5 1
Рисунок 16: Панель кнопок, спецификация

, Результаты

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

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

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

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

Дополнительные ресурсы


У вас есть комментарии к этому сообщению или темам, которые вы хотели бы, чтобы мы освещали в будущем?
Отправьте нам письмо по адресу powerblog @ cui.ком

Как управлять двигателем постоянного тока с помощью Arduino

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

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

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

Для изготовления этой схемы можно использовать дискретные транзисторы, но в этом руководстве мы будем использовать H-Bridge IC L298.L298 может управлять скоростью и направлением двигателей постоянного тока и шаговых двигателей, а также может управлять двумя двигателями одновременно. Его номинальный ток составляет 2А для каждого двигателя. Однако при таких токах вам придется использовать радиаторы.

Распиновка L298 показана ниже. Вы можете найти техническое описание L298 на http://www.tech.dmu.ac.uk/~mgongora/Resources/L298N.pdf.

L298 Распиновка (вид сверху)

Требуемое оборудование
  • 1 x L298 мост IC
  • 1 x двигатель постоянного тока
  • 1 модуль Arduino Mega2560
  • 1 макет
  • 10 перемычек

На схеме выше показано, как подключить L298 IC для управления двумя двигателями.Для каждого двигателя имеется три входных контакта, включая Input1 (IN1), Input2 (IN2) и Enable1 (EN1) для Motor1 и Input3, Input4 и Enable2 для Motor2.

Поскольку в этом руководстве мы будем управлять только одним двигателем, мы подключим Arduino к IN1 (контакт 5), IN2 (контакт 7) и Enable1 (контакт 6) микросхемы L298. Контакты 5 и 7 являются цифровыми, то есть входами ВКЛ или ВЫКЛ, а контакту 6 требуется сигнал с широтно-импульсной модуляцией (ШИМ) для управления скоростью двигателя.

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

IN1 IN2 ДВИГАТЕЛЬ
0 0 ТОРМОЗ
1 0 ПЕРЕДНИЙ
0 1 НАЗАД
1 1 ТОРМОЗ

Вывод IN1 микросхемы L298 подключен к выводу 8 Arduino, а IN2 – к выводу 9. Эти два цифровых вывода Arduino управляют направлением двигателя.Вывод EN A микросхемы подключен к выводу 2 PWM Arduino. Это будет контролировать скорость двигателя.

Чтобы установить значения выводов 8 и 9 Arduino, мы будем использовать функцию digitalWrite (), а для установки значения вывода 2 мы будем использовать функцию using analogWrite ().

Ниже фото установки.

Код
  const int pwm = 2; // инициализируем вывод 2 как ШИМ
const int in_1 = 8;
константа int in_2 = 9;

// Для обеспечения логики L298 IC для выбора направления двигателя постоянного тока

установка void ()
{
pinMode (pwm, ВЫХОД); // мы должны установить вывод PWM как выход
pinMode (in_1, ВЫХОД); // Логические выводы также устанавливаются как выход
pinMode (in_2, ВЫХОД);
}

пустой цикл ()
{
// Для движения по часовой стрелке in_1 = High, in_2 = Low

digitalWrite (in_1, HIGH);
digitalWrite (in_2, LOW);
analogWrite (pwm, 255);

/ * установка ШИМ двигателя на 255
мы можем изменить скорость вращения
путем изменения ввода pwm, но мы только
используя Arduino, поэтому мы используем самое высокое
значение для привода двигателя * /

// По часовой стрелке на 3 секунды
задержка (3000);

// Для тормоза
digitalWrite (in_1, HIGH);
digitalWrite (in_2, HIGH);
задержка (1000);

// Для движения против часовой стрелки - IN_1 = LOW, IN_2 = HIGH
digitalWrite (in_1, LOW);
digitalWrite (in_2, HIGH);
задержка (3000);

// Для тормоза
digitalWrite (in_1, HIGH);
digitalWrite (in_2, HIGH);
задержка (1000);
 }
 
 

двигатель постоянного тока.ino.zip

Настройка управления двигателем Arduino
  1. Подключите 5 В и землю IC к 5 В и земле Arduino.
  2. Подключите двигатель к контактам 2 и 3 микросхемы.
  3. Подключите IN1 микросхемы к контакту 8 Arduino.
  4. Подключите IN2 микросхемы к выводу 9 Arduino.
  5. Подключите EN1 IC к контакту 2 Arduino.
  6. Подключите SENS Контакт IC к земле.
  7. Подключите Arduino с помощью USB-кабеля Arduino и загрузите программу в Arduino с помощью программного обеспечения Arduino IDE или веб-редактора Arduino.
  8. Обеспечьте питание платы Arduino, используя блок питания, аккумулятор или USB-кабель.

Теперь двигатель должен вращаться сначала по часовой стрелке (CW) в течение 3 секунд, а затем против часовой стрелки (CCW) в течение 3 секунд.

Видео

Попробуйте сами! Получите спецификацию.

Что купить, чтобы начать работу с Arduino и электроникой

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

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

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

Но когда вы только начинаете, вам нужно много маленьких компонентов, которые можно покупать по отдельности. Вы можете найти наборы, в которых есть много-много вещей одновременно.

В частности, я бы посоветовал комплект от Elegoo, который вы можете найти на Amazon за 53 доллара.99/45 € на момент написания. Он называется ELEGOO UNO R3 Project Самый полный стартовый комплект с учебным пособием, совместимым с Arduino IDE (63 элемента) .

Это коробка, в которой находится клонированная плата Arduino Uno rev 3, а также множество компонентов, датчиков и мелких деталей, которые часто бывают полезны:

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

Еще один очень полный и более дешевый (но, похоже, имеет меньше компонентов и датчиков) – это ELEGOO UNO Project Super Starter Kit с учебником и UNO R3, совместимый с Arduino IDE

Я купил один из них для своего друга, и это довольно круто.

Существуют и другие аналогичные комплекты, но убедитесь, что на плате установлена ​​плата Arduino Uno, с которой лучше начать.

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

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

Вы можете получить устройство, которое обменивается данными с WiFi и Bluetooth, например, Arduino MKR Wifi 1010 и Arduino MKR GPS Shield, для работы с GPS, например.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *