Оглавление
- 5.5 Нехватка памяти
- Step 1: Get a Clone
- 5.3 Решение конфликтов библиотек
- Настройки платы
- Установка драйвера CH340 для китайского ардуина UNO
- Разработка проекта
- Распиновка платы Arduino Nano
- Выяснил, что драйвер для устройства автоматически не устанавливается.
- Настраиваем Arduino IDE
- Ошибка компиляции
- Ошибка загрузки
- Подключение и настройка
- Прошивка ESP 8266 в Arduino IDE
- Исходное состояние фьюзов в микроконтроллере ATmega328P и в плате Arduino
- Заключение
5.5 Нехватка памяти
Иногда прошивка успешно компилируется/загружается, но в логе компилятора написано о недостатке места
Запомните: если компиляция/загрузка завершена, значит всё в порядке и скетч будет работать. Ведь написано, что “завершена”! Память устройства можно добивать до 99%, ничего страшного не случится. Это флэш память и во время работы она не изменяется. А вот динамическую память желательно забивать не более 85%, иначе реально могут быть непонятные глюки в работе, так как память постоянно “бурлит” во время работы. НО. Это зависит от скетча и в первую очередь от количества локальных переменных. Можно написать такой код, который будет стабильно работать при 99% занятой SRAM памяти. Так что ещё раз: это всего лишь предупреждение, а не ошибка.
Step 1: Get a Clone
It is very easy to find a clone of any board on the internet. Or you can at worst make yourself one…
They are extremely cheap, I have seen pinless nano boards as low as $5 online. You just have to do some work on your end, which is a very fair give and take if you ask me.
I don’t want to advertise any names here, if you just search the board that you want with the word clone next to it, you will find some. Mine is called Funduino Nano, which is an open source company apparently just making amazing products at real fair prices..
Look how small an arduino nano is, it’s the size of my pinky finger. This will help me tremendously in my new projects, huge improvements on size!
5.3 Решение конфликтов библиотек
Иногда случается конфликт библиотек, который заключается в том, что IDE находит на компьютере несколько одинаковых библиотек. Об этом сообщается в логе компиляции предупреждением: “несколько библиотек найдено… используется то, не используется сё“. Если вы ставили некоторые библиотеки через менеджер (Скетч/Подключить библиотеки/Управлять библиотеками…), они будут воевать с библиотеками, установленными вручную в папку с программой. Где вообще лежат библиотеки?
- Стандартные общие библиотеки – в папке с программой/libraries
- 64-битная версия Windows – C:\Program Files (x86)\Arduino\libraries\
- 32-битная версия Windows – C:\Program Files\Arduino\libraries\
- Установленные через менеджер – Документы\Arduino\libraries
- Библиотеки для конкретного ядра:
- Стандартное ядро Arduino – C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries
- Другие ядра – C:\Users\username\AppData\Local\Arduino15\packages\ядро\hardware\avr\версия\libraries
Конфликтовать могут и ядра, поэтому решением всех проблем может стать чистая установка Arduino IDE с удалением остатков от предыдущей версии. Удаляем программу как программу, и вручную сносим папки:
- Папка с программой
- 64-битная версия Windows – C:\Program Files (x86)\Arduino\libraries\
- 32-битная версия Windows – C:\Program Files\Arduino\libraries\
- Документы\Arduino\
- C:\Users\username\AppData\Local\Arduino15\
Настройки платы
Bootloader — выбор загрузчика (требует перезаписи загрузчика):
- old bootloader — cтарый загрузчик (стоит на большинстве китайских плат)
- Новый с optiBoot, киатйцы тоже потихоньку начинают продавать платы с ним
- optiBoot v8 — optiboot самой свежей версии
- Вариант without bootloader для прошивки скетча во всю доступную (32 кБ) память МК
Clock — выбор частоты и источника тактирования (требует перезаписи загрузчика):
- External 20 MHz (макс. частота для ATmega328, для своих плат)
- External 16 MHz (стандартный вариант для платы Nano 16 МГц)
- External 8 MHz (стандартный вариант для платы Nano 8 МГц)
- Internal 8 MHz (внутренний генератор: можно работать с голым камнем без кварца)
- Internal 1 MHz (внутренний генератор)
- Internal 128 kHz (внутренний генератор) — загрузчик будет стёрт! Используйте without bootloader!
- Примечания:
- Функции времени (delay/millis) скорректированы под выбранную частоту
- После прошивки на частоту 128 кГц дальнейшая загрузка по ISP возможна только с понижением частоты ISP на стороне программатора!
Save EEPROM — сохранять EEPROM после перепрошивки (очистки) камня (требует перезаписи загрузчика):
- enable — включить
- disable — выключить
Clock Out — на пине D8 (NANO/Mini) будет продублировано тактирование с частотой источника (требует перезаписи загрузчика):
- disable — выключить
- enable — включить
System timer — преднастройка таймера 0:
- enable — таймер 0 настроен по умолчанию, работают функции времени delay/millis
- disable — вектор прерываний OVF таймера 0 освобождён для пользователя, delay/delayMicroseconds работают, millis/micros — нет
- Примечание: при отключенном таймере 0 функции delay и delayMicroseconds автоматически заменяются на _delay_ms и _delay_us из avr/util.h, а millis и micros заменены на 0
Serial — работа с Serial:
- default Serial — при работе с Serial работает стандартная библиотека Serial
- GyverUART — все обращения к Serial в коде автоматически заменяются на uart из библиотеки GyverUART — код становится быстрее и легче!
- Примечание: в GyverUART нет функций find, findUntil, readBytes и readBytesUntil!
B.O.D. (Brown-out detector) — reset при падении напряжения (требует перезаписи загрузчика):
- disable — отключен
- 1.8V — сброс при напряжении питания ниже 1.7-2.0V
- 2.7V (default) — сброс при напряжении питания ниже 2.5-2.9V
- 4.3V — сброс при напряжении питания ниже 4.1-4.5V
Initialization — инициализация периферии (таймеры, ацп) в начале скетча:
- enable — стандартная инициализация
- disable — инициализация отключена
Compiler version — версия компилятора
- default v5.4.0 — встроенная в IDE версия компилятора
Установка драйвера CH340 для китайского ардуина UNO
Подробная инструкция по установке драйвер CH340 для для китайского клона Arduino UNO/Nano на Windows XP, Windows 7, Windows 10, Linux, Mac OS.
Китайская ардуина отличается от оригинальной тем, что в ней для программирования основного микроконтроллера используется чип CH340 вместо МК Atmega16. Этот недорогой чип позволяет снизить итоговую стоимость платы ардуины (например, ардуина UNO на CH340 будет стоить около $3 вместо $5). Китайская Arduino UNO с чипом CH340 выглядит так:
Соответственно для зашивки программы в такую ардуино на компьютере должен быть установлен драйвер для чипа CH340. В остальном работа с такими платами ничем не отличается от оригинальных.
Драйвера чипа CH340 для разных операционных систем:
Эти драйвера подходят не только для китайских ардуино UNO, но и для любой другой ардуине на базе CH340 – NANO, MEGA и т.п.
Разработка проекта
На современном рынке представлено множество устройств Arduino, имеющих различную комплектацию. Но универсального решения «на все случаи жизни» не существует. В зависимости от поставленной задачи каждый комплект подбирается в индивидуальном порядке. Чтобы избежать ошибок, требуется разработка проекта.
Какие проекты можно создавать на Arduino?
Ардуино позволяет создавать множество уникальных проектов. Вот лишь некоторые из них:
- Сборка кубика Рубика (система справляется за 0,887 с);
- Контроль влажности в подвальном помещении;
- Создание уникальных картин;
- Отправка сообщений;
- Балансирующий робот на двух колесах;
- Анализатор спектра звука;
- Лампа оригами с емкостным сенсором;
- Рука-робот, управляемая с помощью Ардуино;
- Написание букв в воздухе;
- Управление фотовспышкой и многое другое.
Составление проекта для умного дома
Рассмотрим ситуацию, когда необходимо сделать автоматику для дома с одной комнатой.
Такое здание состоит из пяти основных зон — прихожей, крыльца, кухни, санузла, а также комнаты для проживания.
При составлении проекта стоит учесть следующее:
- КРЫЛЬЦО. Включение света производится в двух случая — приближение хозяина к дому в темное время суток и открытие дверей (когда человек выходит из здания).
- САНУЗЕЛ. В бойлере предусмотрен выключатель питания, который при достижении определенной температуры выключается. Управление бойлером производится в зависимости от наличия соответствующей автоматики. При входе в помещение должна срабатывать вытяжка, и загорается свет.
- ПРИХОЖАЯ. Здесь требуется включение света при наступлении темноты (автоматическое), а также система обнаружения движения. Ночью включается лампочка небольшой мощности, что исключает дискомфорт для других жильцов дома.
- КОМНАТА. Включение света производится вручную, но при необходимости и наличии датчика движения эта манипуляция может происходить автоматически.
- КУХНЯ. Включение и отключение света на кухне осуществляется в ручном режиме. Допускается автоматическое отключение в случае продолжительного отсутствия перемещений по комнате. Если человек начинает готовить пищу, активируется вытяжка.
Отопительные устройства выполняют задачу поддержания необходимой температуры в помещении. Если в доме отсутствуют люди, нижний предел температуры падает до определенного уровня.
После появления людей в здании этот параметр поднимается до прежнего значения. Рекуперация воздуха осуществляется в случае, когда система обнаружила присутствие владельца. Продолжительность процесса — не более 10 минут в час.
Стоит обратить внимание, что если в доме планируется установка умных розеток, то для управления ими лучше использовать приложения на мобильных устройствах, WIFI или через SMS сообщения. Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/
Визуальное программирование для Arduino можно осуществлять с помощью специального приложения FLProg, которое можно скачать с официального сайта http://flprog.ru/.
Распиновка платы Arduino Nano
На рисунке указаны номера и назначения выводов Arduino Nano (вид со стороны, на которой расположен микроконтроллер Atmega328):
Расшифровка цвета:
— серый цвет — физический пин микроконтроллера Atmega328;
— светло серый цвет (PD0, PD1 и т.д.) — номер порта микроконтроллера, который доступен из программ на ассемблере;
— зеленый цвет (ADC0 и т.д.) — номера аналогивых выводов;
— голубой цвет — пины портов UART и SPI.
Назначение и обозначения выводов:
USB — USB-порт, предназначенный для подключения ардуины к компьютеру через USB-кабель (нужен Mini-B USB разъем).
VIN — сюда может подается питание от внешнего источника питания на 7-12 В (блок питания покупается отдельно). Напряжение будет подаваться на стабилизатор и понижаться до 5 В. Поэтому оптимально подавать на этот пин около 9 В.
5V — через этот пин также можно запитывать плату от источника питания на 5 вольт, однако напряжение должно быть более-менее стабильным, поскольку оно подается непосредственно на микроконтроллер (стабилизатор не задействован), и поэтому высокое напряжение может убить основной микроконтроллер.
3.3V — на этом пине будет висеть напряжение 3.3 В, которое формируется от внутреннего стабилизатора платы. Этот пин нужен для подключения некоторых внешних устройств, которым для работы требуется 3.3 В — обычно это всякие ЖК-дисплеи. Однако максимальный ток вывода при этом не должны превышать 50 мА.
GND — земля (Ground Pin).
AREF — опорное напряжение для аналоговых входов. Используется по необходимости (настраивается с помощью analogReference()).
IOREF — позволяет узнать рабочее напряжение микроконтроллера. Используется редка. На китайских платах отсутствует вовсе.
Reset — выполняет сброс микроконтроллера, подать низкий уровень на этот вход.
SDA, SCL — пины интерфейса TWI/I2C.
D0. D13 — цифровые входы/выходы. На вывод D13 висит встроенный светодиод, который загорается, если на вывод D13 подан уровень HIGH.
0 (RX), 1 (TX) — выводы порта UART (последовательный порт Serial).
A1. A5 — аналоговые входы (могут использоваться и в качестве цифровых).
Внешний вид платы Arduino Nano с подписанными выводами:
RX+TX LEDs — светодиоды — моргают, когда передаются данные через последовательный порт Serial UART (пины RX и TX).
Reset Button — кнопка для перезапуска микроконтроллера;
(остальные обозначения смотри выше)
FTDI USB chip — микросхема FTDI FT323RL, которая используется для связи ардуины с компьютером через USB-кабель. Со стороны ардуины это serial-интерфейс. На компьютер этот интерфейс будет доступен в виде виртуального COM-порта (должны быть установлены драйвера для чипа FTDI — обычно входят в состав IDE Arduino).
Миниатюрная платформа для создания прототипов и изучения микроэлектроники
- Описание
- Характеристики
- Схемы
- Распиновка
- Подключение
- Фотографии
Выяснил, что драйвер для устройства автоматически не устанавливается.
Причиной тому использование микросхемы CH340G. Можно увидеть на фото (в верху стандартный вариант, в низу новый, с микросхемой CH340G). Много кто пытается найти драйвер для CH340G и как установить драйвера для CH340G.
После подключения arduino nano в диспетчере устройств появится USB 2.0 SERIAL, но windows 7 драйвера найти не сможет…
- Скачиваем драйвер CH340G и разархивируем его. Я разархивировал в папку «C:\Program Files\Arduino\drivers»
- Возвращаемся в диспетчер устройств, кликаем правой кнопкой по USB 2.0 SERIAL и выбираем «Обновить драйверы…«
- Выбираем Выполнить поиск драйверов на этом компьютере
- Указываем путь куда разархивировали папку с драйвером ( C:\Program Files\Arduino\drivers)
- В появившемся окне с предупреждением о том что «Не удалось проверить издателя этих драйверов», кликаем Все равно установить этот драйвер!
- Вот и все, драйвер установлен! Система выдает уведомление «Обновление программного обеспечения для данного устройства завершено успешно»
В диспетчере устройств появится новый COM порт
Настраиваем Arduino IDE
Запустить Arduino IDE, выбрать плату (Инструменты\плата\»ваша плата»). См. первый скриншот.
Выбрать порт: инструменты\порт\«COM отличный от COM1, например COM3, COM5…» См. второй скриншот. Какой именно порт вы могли видеть при первом подключении Ардуино к компьютеру.Примечание: если у вас только СОМ1 — значит либо не встали драйвера, либо сдохла плата.
Готовые прошивки просто открываются двойным кликом
Чтобы загрузить прошивку, жмите кнопку ЗАГРУЗИТЬ на верхней панели инструментов, она в виде стрелочки.ВНИМАНИЕ, СОВЕТ! В ПУТИ К ПАПКЕ СО СКАЧАННЫМИ СКЕТЧАМИ НЕ ДОЛЖНО БЫТЬ РУССКИХ БУКВ! СОЗДАЙТЕ В КОРНЕ ДИСКА ПАПКУ ARDUINO, И РАБОТАЙТЕ В НЕЙ!
ВНИМАНИЕ, СОВЕТ! КАК ТОЛЬКО ДОСТАНЕТЕ ARDUINO ИЗ ПАКЕТИКА, СРАЗУ ПРОШЕЙТЕ В НЕЁ СКЕТЧ С МИГАНИЕМ СВЕТОДИОДА (blink.ino)Таким образом вы узнаете, что Ардуина изначально рабочая (на тот случай, когда после сборки/пайки она перестанет работать и прошиваться), то есть вы сами её сломали, а не она была изначально бракованная =)
Как установить библиотеку на Arduino
Допустим, скачали библиотеку. Её нужно разархивировать и положить в папку:
C:\Program Files (x86)\Arduino\libraries\ (Windows x64)
C:\Program Files\Arduino\libraries\ (Windows x86)
Как пример — библиотека для дисплея на чипе TM1637, смотрите скриншот
В папке libraries должна появиться папка TM1637, в которой есть папка examples, и два файла с расширениями .h и .cpp . Эти два файла должны быть в каждой библиотеке.
Второй способ. Папка с библиотекой кладётся в папку со скетчем. Тогда скетч, использующий библиотеку, сможет ей пользоваться. Но для остальных скетчей эта библиотека будет недоступна!
Основные ошибки при прошивке Arduino (FAQ)
Ошибка компиляцииВозникает на этапе сборки и компиляции прошивки, ошибки компиляции вызваны проблемами в коде прошивки, то есть проблема сугубо софтварная. Слева от кнопки «загрузить» есть кнопка с галочкой — проверка. Во время проверки производится компиляция прошивки и выявляются ошибки, если таковые имеются. Ардуино в этом случае может быть вообще не подключена к компьютеру.
|
Ошибка загрузкиВозникает на этапе, когда прошивка скомпилирована, в ней критических ошибок, и производится загрузка в плату по кабелю. Ошибка может возникать как по причине неисправностей железа, так и из-за софта.
|
Подключение и настройка
Проблема с микроконтроллерами заключается в том, что при больших функциональных возможностях ведь в них кроме процессора есть еще довольно богатый набор периферийных устройств они имеют ограниченное число выводов. Если скачан архив, то его нужно распаковать и запустить файл Arduino.
На шилде расположены дополнительные разъемы питания и земли, разъемы для подключения внешнего источника напряжения, светодиод и кнопка перезагрузки.
Память ATmega обладает 16 килобайтами флэш-памяти для хранения кода программы из которых 2 килобайта используется загрузчиком ; ATmega обладает 32 килобайтами из которых 2 килобайта также используется загрузчиком. Можно подавать ток на него и все это будет работать только при условии, что напряжение подаваемого тока строго равно пяти вольтам!
Эти выводы могут быть сконфигурированы для вызова прерывания по фронту или по спаду импульса или по изменению уровня на выводе. Конструктор Arduino создан для любителей электроники и робототехники начального уровня, чтобы помочь им обойти сложности низкоуровнего программирования микроконтроллеров, где требуются знания инженера-профи и опыт. Все выводы, цифровые и аналоговые, могут работать в диапазоне 0 … 5 В. Входы и выходы Каждый из 20 , на схеме аrduino nano распиновка помещены в сиреневые параллелограммы, на той же схеме в серых параллелограммах указаны выводы микроконтроллера цифровых выводов Arduino Nano может работать в качестве входа или выхода.
Распиновка Arduino Nano v 3.0
Например, остался без внимания аналоговый компаратор. Обычно используется для добавления кнопки сброса на платы расширения, закрывающей доступ к кнопке сброса на самой плате Arduino. Все выводы могут быть программно подключены к источнику питания микроконтроллера 5 В через подтягивающие резисторы сопротивлением кОм.
Данные выводы могут быть сконфигурированы в качестве источников прерываний, возникающих при различных условиях: при низком уровне сигнала, по фронту, по спаду или при изменении сигнала. Экран подключен. Для проверки работоспособности откроем приложение для Arduino. Для работы используйте библиотеку Wire. На первых двух светодиод загорается, когда уровень сигнала низкий, и показывает, что сигнал TX или RX активен.
Если все прошло нормально, вы увидите сообщение «загрузка успешно завершена». Вместе с тем активное распространение Ардуино-плат для освоения разработки и проектирования устройств на микроконтроллерных системах породило новый виток в вопросе качества и эргономики.
Пришлось это сделать вручную. Arduino Nano 2.
Уроки Ардуино #0 — что такое Arduino, куда подключаются датчики и как питать Ардуино
Прошивка ESP 8266 в Arduino IDE
Почему для прошивки ESP 8266 многие предпочитают использовать Arduino IDE? Есть целый ряд причин, которые оправдывают использование именно данной среды разработки. Во-первых, она очень проста. Скетчи в Arduino IDE пишутся на языке, который в плане синтаксиса напоминает С/С++. Большинство функций, которые используются для программирования платы Ардуино, можно применять для написания прошивки к ESP8826 (к примеру, pinMode(), digitalRead() и пр.). Поэтому если вы писали скетчи для платы Arduino, то проблем с написание прошивки возникнуть не должно.
Во-вторых, Arduino IDE поддерживает множество различных библиотек, которые значительно облегчают процесс программирования. Некоторые из них можно использовать для того, чтобы писать прошивку для ESP8266. К примеру, при создании софта наверняка пригодятся такие модули, как:
- WiFi ESP8266. Объемная библиотека для работы с беспроводной сетью. Позволяет получать IP и MAC адрес в различных режимах (клиент, точка доступа), выводить диагностическую информацию, создавать открытую точку доступа и пр.
- Программный модуль, с помощью которого можно выполнять различные операции через заданное количество времени.
- Библиотека используется для работы с ПЗУ.
- Программный модуль, которые обеспечивает поддержку нескольких, специфических для ESP 8266 функций. К примеру, библиотека позволяет активировать режим глубокого сна и управлять сторожевым таймером. Кроме этого, в состав программного модуля входят функции для перезагрузки девайса, определения размера свободной памяти и т.д.
И это лишь верхушка айсберга. У Arduino IDE есть еще несколько менее значимых преимуществ.
Чтобы использовать среду разработки Ардуино с ESP8266, для начала необходимо произвести предварительную настройку. Именно о ней мы сейчас и поговорим.
Подготовка Arduino IDE
Затем нужно перейти в Инструменты > Плата. Там будем представлен список доступных плат. Но на интересует пункт Менеджер плат. Это приведет к запуску нового диалога. В нем необходимо найти пункт под названием esp8266 by ESP8266 Community и кликнуть по нему. Вышеописанные манипуляции приведут к появлению кнопочки Установка. Нужно выбрать подходящую версию (лучше всего крайнюю). Далее надо нажать на кнопку, отвечающую за установку. После этого среда разработки начнет скачивать необходимые файлы. Это не займет много времени, так как нужный пакет весит всего 150 МБ.
Возвращаемся к списку плат. После инсталляции программного модуля там появилось несколько новых пунктов, которые соответствуют рассматриваемому микроконтроллеру. Надо выбрать вариант Generic ESP8266 Module. Затем следует определить входящий пункт, через уже знакомый раздел Инструменты. Там же следует задать параметры модуля (частота, объем flash-паммяти). На этом настройка программной среды завершена.
Подключение ESP8266
Для подключения ESP8266 не потребуется много коннекторов, так как рассматриваемый аппаратный модуль использует всего несколько пинов. Выходы TX/RX и землю нужно подключить к конвертору TTL-USB (его, в свою очередь, надо подключить к USB). Далее следует подсоединить питание в 3.3В к пину VCC.
Важно! Не стоит использовать питание от USB-TTL конвертера, так как это может привести к нестабильной работе аппаратного модуля. Лучше используйте внешний источник питания.. Чтобы иметь возможность загружать на микроконтроллер прошивку, необходимо подсоединить GPIO0 к земле
При таком подключении аппаратный модуль загружает прошивку во flash-память. Запуск программы происходит сразу же, без отсоединения от GPIO
Чтобы иметь возможность загружать на микроконтроллер прошивку, необходимо подсоединить GPIO0 к земле. При таком подключении аппаратный модуль загружает прошивку во flash-память. Запуск программы происходит сразу же, без отсоединения от GPIO.
Важно! Перед загрузкой прошивки для ESP8266 необходимо перезагрузить модуль. Сделать это можно, передёрнув питание или же подав землю на RESET.
Последовательность действий при загрузке скетча
Процесс загрузки скетча элементарен. В самой программе необходимо заполнить SSID, а также указать пароль вай-фай. После этого следует клацнуть на кнопочку компиляции и загрузить скетч на устройство.
Важно! Если аппаратный модуль был подключен без автопрошивки, то надо отсоединить пин GPIO0 от земли и передернуть питание.
Далее следует перейти в Инструменты > Монитор последовательного порта. Надо выбрать скорость 115200
После этого стоит обратить внимание на терминал. Если модуль подключен к сети, то в таком случае на мониторе должны появится соответствующие надписи
Внизу будет расположен IP адрес аппаратного модуля.
Исходное состояние фьюзов в микроконтроллере ATmega328P и в плате Arduino
Сравнение значений конфигурационных байтов микроконтроллера ATmega328P и платы Arduino представлено в трех следующих таблицах.
№ бита | Low Fuse Byte | Значение по умолчанию в AVR | Значение по умолчанию в Arduino |
7 | CKDIV8 | 0 (programmed) | 1 (unprogrammed) |
6 | CKOUT | 1 (unprogrammed) | 1 (unprogrammed) |
5 | SUT1 | 1 (unprogrammed) | 1 (unprogrammed) |
4 | SUT0 | 0 (programmed) | 1 (unprogrammed) |
3 | CKSEL3 | 0 (programmed) | 1 (unprogrammed) |
2 | CKSEL2 | 0 (programmed) | 1 (unprogrammed) |
1 | CKSEL1 | 1 (unprogrammed) | 1 (unprogrammed) |
CKSEL0 | 0 (programmed) | 1 (unprogrammed) |
№ бита | High Fuse Byte | Значение по умолчанию в AVR | Значение по умолчанию в Arduino |
7 | RSTDISBL | 1 (unprogrammed) | 1 (unprogrammed) |
6 | DWEN | 1 (unprogrammed) | 1 (unprogrammed) |
5 | SPIEN | 0 (programmed) | 0 (programmed) |
4 | WDTON | 1 (unprogrammed) | 1 (unprogrammed) |
3 | EESAVE | 1 (unprogrammed) | 1 (unprogrammed) |
2 | BOOTSZ1 | 0 (programmed) | 0 (programmed) |
1 | BOOTSZ0 | 0 (programmed) | 1 (unprogrammed) |
BOOTRST | 1 (unprogrammed) | 0 (programmed) |
№ бита | Extended Fuse Byte | Значение по умолчанию в AVR | Значение по умолчанию в Arduino |
7 | – | 1 | 1 |
6 | – | 1 | 1 |
5 | – | 1 | 1 |
4 | – | 1 | 1 |
3 | – | 1 | 1 |
2 | BODLEVEL2 | 1 (unprogrammed) | 1 (unprogrammed) |
1 | BODLEVEL1 | 1 (unprogrammed) | 0 (programmed) |
BODLEVEL0 | 1 (unprogrammed) | 1 (unprogrammed) |
Начальное состояние микроконтроллеров ATmega328/P, в котором они поставляются с завода, является следующим: микроконтроллер сконфигурирован на работу с внутренним RC генератором на 8МГц, при этом прошитый бит CKDIV8 обеспечивает деление частоты генератора на 8; внешний сброс (по низкому уровню на выводе Reset) не запрещен; разрешено программирование по интерфейсу SPI; для загрузчика отведена область памяти 2048 слов; стартовый адрес программы 0x0000; схема контроля питания отключена.
В плате Arduino Uno фьюзы микроконтроллера изменены таким образом, чтобы он был настроен на работу с экономичным кварцевым генератором без делителя частоты; для загрузчика отводится 256 слов; прошитый бит BOOTRST назначает стартовым адресом адреса начала секции загрузчика; порог срабатывания схемы BOD составляет 2.7В.
Теперь рассмотрим процесс изменения фьюзов в плате Arduino (микроконтроллере AVR).
Заключение
Arduino Nano одна из самых маленьких полноценных версий плат Ардуино. По сути своей, она с точностью повторяет Arduino Uno, но имеет два главных отличия:
- Размеры платы.
- Связь платы UNO с компьютером осуществляется с помощью USB serial преобразователя на базе микроконтроллера типа Atmega8u.
На нано-плате использован преобразователь на базе ft232, однако более дешевые китайские версии используют другой способ связи с ПК Arduino Nano CH341. По сути, эти микросхемы являются основой для USB-UART конвертера.
Конструктор Arduino создан для любителей электроники и робототехники начального уровня, чтобы помочь им обойти сложности низкоуровнего программирования микроконтроллеров, где требуются знания инженера-профи и опыт. Да и монтажника высокого разряда тоже, особенно для новой версии платы.
Паковать крупные платы в большие корпуса в последние десятилетия стало моветоном. Микроконтроллеры слегка улучшили ситуацию тем, что схемы с их использованием стали значительно компактнее, к тому же повысилась простота повторения результата или конструкции.
Вместе с тем активное распространение Ардуино-плат для освоения разработки и проектирования устройств на микроконтроллерных системах породило новый виток в вопросе качества и эргономики.
Всего выпущено несколько платформ Arduino, Nano является одной из них, в миниатюрном исполнении
В то же время сохраняется легкость подключения при помощи разъемов с шагом выводов 2,54 мм, что важно для любительских экспериментов. Для программирования используется Arduino IDE (среда разработки) и язык высокого уровня, похожий на Си, а фактически это и есть C/C++, просто структура программы немного изменена
Вместо функции main() используются две другие: setup() и loop(). Компилятор сам создает из них остальное)
Достоинства. Функциональная маленькая плата Arduino Nano, ничуть не уступающая по функциям большой UNО, – дешевле, удобнее для монтажа и сборки миниатюрных устройств.
Конечно, нельзя забывать, что это все та же 8-битная Атмега, которая имеет свой потенциал, и нельзя возлагать на неё невозможное – используйте её там, где ей место, а именно в малой автоматизации без особых прецизионных задач.
Разработчику программы для Arduino приходится также иметь дело со схемотехникой подключаемых устройств. Он должен знать уровни допустимых токов и напряжений, обеспечивать защиту электроники при использовании деталей с большой индуктивностью (моторов, катушек реле). Ардуино объединяет две области знаний: электронику и программирование, основу для построения роботов (здесь немного не хватает еще механики).
Раз уж тут объединены программирование и электроника, то ключевой вещью в использовании модуля становится спецификация его выводов, или распиновка, как еще принято говорить. Выводы модуля можно классифицировать разными способами, поскольку их функции зависят от программной конфигурации контроллера. Кроме того, поскольку есть две версии модулей, один из них использует чип ATmega168, а другой ATmega328, то появляется вопрос, есть ли у них различия в подключении.
В каждом конкретном проекте назначение каждого пина конфигурируется программой пользователя. При запуске контроллера сначала выполняется инициализация регистров конфигурации. Поэтому беспокойства по поводу функций выводов в отлаженном устройстве быть не должно.
Конечно, наборы Ардуино (Arduino) не предназначены для разработки встраиваемых приложений, работающих с большой скоростью в ответственных случаях, поэтому при их использовании возможны косяки, тем более что пользователи еще только учатся.
Но как часть конструктора для изучения автоматизации и робототехники он играет важную роль в образовательных целях и способен привлечь в отрасль много будущих специалистов.