Главная » Arduino
Призовой фонд
на март 2017 г.
1. UNI-T UT-39C
Паяльник
2. Тестер компонентов LCR-T4
Паяльник
3. 100 руб.
От пользователей

Arduino: спасибо и прощай

Для Arduino должен обязательно наступить этот день...

Arduino - это отличная платформа для моделирования на основе микроконтроллера, имеющая много вариаций, с кучей проектов с открытым кодом, учебников, форумов и т.д. для начинающих. Используя простой IDE(Integrated Development Environment, Интегрированная среда разработки), код на основе C++, USB кабель и несколько пассивных компонентов, можно начать мигать светодиодом или обмениваться сообщениями с компьютером (с Mac тоже) за несколько минут, не имея каких-либо серьезных предварительных знаний в электронике.

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

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

Преимущества:
- Arduino IDE основан на AVRGCC. Изучение Arduino поможет вам изучить C++. Если вам не нравится конкретная высокоуровневая команда или библиотека для Arduino, вы почти всегда можете заменить её на аналогичную C++.
- Вы можете питать, программировать и обмениваться сообщениями с Arduino при помощи одного USB кабеля (или FTDI кабеля для некоторых клонов).
- Вы можете сделать простой проект за несколько минут, используя стандартные библиотеки, не вникая в них. Для считывания сигналов кнопок, вывода информации на семи сегментные или ЖК-дисплеи и управления двигателями для всего этого есть стандартные библиотеки.
- Последовательные и SPI интерфейсы связи сделаны превосходно.

Недостатки:
- Arduino IDE. Это самый худший редактор после notepad.exe. Когда-нибудь вы перейдете на более удобный сторонний редактор, но вам всё равно придется оставить IDE для прошивки. 
- Загрузчик. Чтобы закончить проект с применением Arduino, вам придется вручную прошить загрузчик в каждый новый микроконтроллер ATmega. Он занимает 2Кб памяти.
- Разнообразные варианты: в официальном модельном ряду есть варианты с памятью 30(32) Кб и
254(256)КБ. Что делать, если ваш код занимает, допустим, 42 КБ? Единственным решением является использование полу-совместимого клона Sanguino и др.
- Отсутствие простого способа изменения тактовой частоты. Модель 3,3В/8МГц может спокойно работать на частоте 12МГц!  
- digitalWrite() использует для выполнения  56 циклов (я измерял 400). По крайней мере, можно легко выяснить причину и переключиться на прямой доступ к порту (вторая вещь которая заменяется после IDE). Arduino не очень удобна для по время-зависимых приложений.  
- Вы не можете легко отключить стандартную библиотеку для последовательной аппаратной части, для того чтобы брать прерывания с TX и RX, независимо от того, запущена она или нет.
- При переполнении ISR таймера прерывание происходит каждые 16K тактов в фоновом режиме. Это сделано для функций millis() и micros(), даже когда они не используются.  
- Пустой проект Arduino занимает 466 байт на Arduino UNO  и 666 байт на Arduino Mega2560. Я не люблю лишние расходы и предупреждения при компиляции.  
- Также Arduino "скрывает" такие важные аспекты архитектуры микроконтроллеров как регистры, прерывания и таймеры. Изучайте их.

Настало то время, чтобы перейти к чистому AVRGCC?
Его плюсы и минусы:

Трудности:
- Необходимо переписать некоторые вещи в C++, в частности последовательную связь (возможно, это плюс Arduino). К счастью, есть много «изобретенных велосипедов», которыми мы можем пользоваться.  Использование других протоколов, например SPI гораздо проще.
- Узнайте, в какие библиотеки включены не скомпилированные команды, и добавьте их в cpp. Наиболее распространенными являются: avr/io.h, avr/interrupt.h, util/delay.h, stdio.h and string.h.
- тип данных byte  и boolean должны стать uint8_t и bool, байт  B00010001 должен  записываться как 0b00010001 и так далее. Вы найдете другие изменения, их мало.

Преимущества:
- Нужен другой, более ёмкий или мощный микроконтроллер?  Если вы берете микроконтроллер той же серии (MegaAVR) достаточно просто перекомпилировать код. Возможно, вам может потребоваться изменить некоторые регистры, имена прерываний, Makefile и фьюзы.
- Нужна другая частота? Смените кварц или используйте внутренний генератор просто изменив фьюзы и Makefile!
- Вы можете использовать любые IDE.
- Вы полностью контролируете код. Он выполняет всё, что вы написали. Ничего не делается скрыто от вас. У вас есть все возможности. Вы пишете более быстрый и эффективный код. Вы узнаете новое и двигаетесь вперед.

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

Оригинал статьи

Теги:

Касьянов А. Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (5) | Я собрал (0) | Подписаться

0
tygra #
У ардуины основной плюс в том, что закодить можно имея школьный запас знаний по программированию.
Ответить
0
titov_andrei #
... и даже без него
Ответить
0
titov_andrei #
Когда пришлось искать что-то типа детского электронного конструктора для детей, то ничего другого не нашлось...
Ответить
0
Александр #
Не хочу быть программистом. Завидую и восхищаюсь ими, как и летчиками, моряками и др., но.... Не имею нужды зарабатывать этой профессией.
Желаю быстро проверять некоторые идеи в части электроники для дома, автомашины, дачи, сада, огорода. ARDUINO идеально отвечает моим запросам. Дождусь появления более продвинутого (чем МОНИТОР ПОРТА) сношения ARDUINO с ПК и буду счастлив.
Ответить
0
Михаил #
Посмотрите FLProg, может это то что Вы ищете?
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Arduino UNO
Arduino UNO
Конструктор регулируемого преобразователя напряжения LM317 Катушка Тесла
вверх