Радиолоцман Электроника en
расширенный поиск +
  

Обсуждение: Почему не стоит использовать Arduino для обучения программированию

Ответ
 
Опции темы Поиск в этой теме Оценить тему
Старый 27.08.2018, 11:16 #1
Robot Rlocman
Специалист
 
Аватар для Robot Rlocman
 
Регистрация: 24.11.2007
Сообщений: 2,221
Репутация: 240
Robot Rlocman Специалист Robot Rlocman Специалист Robot Rlocman Специалист
231 0
9 0
По умолчанию Обсуждение: Почему не стоит использовать Arduino для обучения программированию

Цитата:
Журнал РАДИОЛОЦМАН, май 2018 Hack van de dam Я бы мог начать статью словами «Почему Arduino – отстой» или «Почему Arduino – барахло», что привлекло бы огромный трафик к странице в Интернете. Но я не сделал этого, потому что это просто неправда.
Подробнее: Почему не стоит использовать Arduino для обучения программированию
Robot Rlocman вне форума  
Оценка 0

Изготовление 1-4 слойных печатных плат за $2

Старый 27.08.2018, 11:16 #2
AkaU
Новичок
 
Регистрация: 04.11.2008
Сообщений: 438
Репутация: 36
AkaU Новичок
26 9
0 0
По умолчанию

"Единственный, на мой взгляд, недостаток mbed – отсутствие возможности отладки с использованием точек останова и наблюдения."

Здесь автор глубоко заблуждается, Eclipse + обвязка в виде GNU ARM Tools + "mbed export" отлично все решают, позволяя выполнить полноценную отладку
AkaU вне форума  
Оценка 0
Благодаря облачным технологиям появилась возможность реализовать сложные проекты на базе микроконтроллера путем перераспределения вычислительной нагрузки между микроконтроллером и облаком. Простые в использовании отладочные платы, такие как AVR- и PIC-IoT WG, позволяют выполнять ресурсоемкие вычисления, передавая их в облако.
Старый 27.08.2018, 19:32 #3
antonydublin
Специалист
 
Аватар для antonydublin
 
Регистрация: 22.09.2010
Адрес: г. Донецк
Сообщений: 667
Репутация: 321
antonydublin Специалист antonydublin Специалист antonydublin Специалист antonydublin Специалист
313 0
2 0
Отправить сообщение для antonydublin с помощью ICQ
По умолчанию

AkaU, эта заметка была написана более 5ти лет назад. На mbed.org и github хранится история релизов начиная с 5.1.0. А всё, что было пять лет назад и больше - это летопись по меркам роста возможностей софта. Так что, быть может, автор и не ошибался в 2013м году.
antonydublin вне форума  
Оценка 0
Приглашаем 23/06/2021 всех желающих принять участие в вебинаре, посвященном проектированию и разработке систем умного дома на базе компонентов STMicroelectronics. Решения ST для интерфейсов умного дома: BLE, LoRa, ZigBee, WM Bus, Ethernet, ModBus. Средства разработки, стеки протоколов, законченные примеры кода. Выбор контроллера для управления.
Старый 28.08.2018, 08:27 #4
SVNKz
Специалист
 
Регистрация: 20.04.2011
Адрес: Казахстан г.Алматы
Сообщений: 1,168
Репутация: 232
SVNKz Специалист SVNKz Специалист SVNKz Специалист
214 243
20 18
По умолчанию

"Бесплатный" софт Arduino только для начинающих.
Подробно от первых рук

http://tim4dev.com/2016/07/arduino-a...-disadvatages/
"...Преимущества Ардуино
Готовность к использованию (Ready to Use) — является самым большим плюсом Arduino. Вы уже имеете «на борту» регулятор питания, микроконтроллер, программатор, интерфейсы для подключения устройств, и программные библиотеки. Вы не должны думать о программировании микроконтроллера или способах подключения периферии. Вы не должны изучать регистры микроконтроллера, диаграммы, блок-схемы и набор инструкций. Вы просто подключаете Arduino к USB порту ПК и делаете революцию в мире «интернет вещей»..."

Из ссылки - https://www.rlocman.ru/review/article.html?di=138878
"...Минусы Arduino (Что ужасно):

Arduino IDE – это самый худший и самый непригодный редактор кода после «Блокнота». В один день вы переключитесь на достойный внешний редактор, однако вам все равно придется оставить открытой Arduino IDE для программирования устройства;

Загрузчик Arduino. Для того, чтобы завершить какое-либо Arduino-устройство, вам придется вручную запрограммировать загрузчик в каждый «чистый» микроконтроллер ATmega. Это уменьшает доступный объем Flash-памяти программ на 2 КБайта;

Всего несколько вариантов: если вы будете использовать официальные платы Arduino, то выбрать вы сможете только из вариантов с 30 Кбайт или 254 КБайт встроенной памяти программ. Что будет, если ваш код занимает, скажем 42 КБайта? Единственный выбор – использование клона Sanguino, который не полностью совместим с Arduino;

Нет простого способа изменить тактовую частоту, не так ли? Модель микроконтроллера с питанием 3.3 В и тактовой частотой 8 МГц может безопасно работать на частоте 12 МГц;

Функция digitalWrite() выполняется за 56 циклов (хотя автором был получен результат в 400 циклов). По крайней мере, это легко выяснить и перейти к использованию прямого доступа к портам (второй элемент для изменения, после Arduino IDE). Как правило, Arduino не очень удобна для написания эффективного кода;

Вы не сможете (по крайней мере, просто) отключить библиотеку последовательной коммуникации, используемую по умолчанию, чтобы использовать TX и RX прерывания, независимо от того, была она запущена, или нет;

Подпрограмма обслуживания прерывания по переполнению таймера запускается через каждые 16000 циклов в фоновом режиме. Это сделано для работы функций millis() и micros(), даже когда они не используются;

Пустой Arduino проект для платформы Arduino UNO занимает 466 Байт и 666 Байт для Arduino Mega2560. Дополнительное расходование ресурсов не устраивает многих, в том числе и автора статьи. Также неприятно видеть ошибки компиляции проекта, связанные с вышеописанными изменениями;

Последнее, но не менее важное – среда разработки Arduino, без сомнения, «скрывает» важные аспекты архитектуры микроконтроллера: регистры, прерывания и таймеры. Их знание просто необходимо..."

Из сказанного можно сделать следующий вывод - "Новизна" Arduino состоит в "простоте" использования, но взамен "программист" не может контролировать и использовать ресурсы микроконтроллера.
Следовательно, на платах Arduino разработать приличную программу для профессионального применения невозможно...
SVNKz вне форума  
Оценка +1
Старый 28.08.2018, 20:14 #5
AMC
Специалист
 
Регистрация: 21.05.2007
Адрес: Москва
Сообщений: 476
Репутация: 211
AMC Специалист AMC Специалист AMC Специалист
173 59
14 2
По умолчанию

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

Единственный известный мне серьёзный проект на Arduino - это устройство управления 3D принтером, например https://www.repetier.com/firmware/v092/index.php.

Но он противоречит концепции Arduino. Это не скетч, а хорошо структурированный проект, с заголовочными файлами, разбиением на классы и модули. Совместимость с Arduino формальная, компилируется в Arduino IDE. HAL собственный, Arduino библиотеки не использует.
AMC вне форума  
Оценка 0
Старый 30.08.2018, 09:51 #6
BOB51
Новичок
 
Аватар для BOB51
 
Регистрация: 25.11.2008
Адрес: ДОНЕЦК
Сообщений: 311
Репутация: 57
BOB51 Новичок
47 13
0 0
По умолчанию

Ардуино не является частью элементной базы типа МИКРОКОНТРОЛЛЕР. Это некоторый элемент вида "черный ящик" с собственной аппаратной начинкой и минимальными "добавками" для обеспечения функционирования инструментов (дополнительных расширенных функций) IDE.
Тут управление на уровне регистров и ассемблера неуместно - его заменяет вариант языка высокого уровня. В противном случае придется детально изучать не только сам МК, установленный на платке, но и особенности построения IDE "на глубоком уровне" что явно не одно и то же по сравнению с изучением "чистого МК".
При том, что не отменяются и возможности более подготовленных специалистов "покопаться поглубже".
Просто необходимо принять концепцию работы с "черным ящиком" в пределах предоставляемого производителем IDE референс-описания
предоставляемых той IDE средств (https://www.arduino.cc/reference/en/).
А кому охота непосредственно с МК работать - берем ассемблер.
Далее можно и Си.
Точно так же на сегодня вряд-ли кто из большинства пользователей-разработчиков простейшего ПО для компьютеров будет писать что-то под ассемблером, минуя не только операционную систему но и биос - работая напрямую с железом материнки и прочей начинкой.
...
Исходя из вышеизложенного...
Действительно ардуинка по классу ближе к простейшим компьютерам и/или системе-на-кристалле, чем к классическим "истинным микроконтроллерам". По сему и начинать с нее для желающих в дальнейшем работать с "чистым железом" вида МК не слишком удобно.
Скорее наоборот - выгодно использовать подобные ардуино устройства как мост между прикладными МК класса "периферия с мозгами" и полноценными компьютерами и/или сложными сетевыми системами обработки стандартизированных потоков данных.
BOB51 вне форума  
Оценка 0
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход
ADAR3000/3001 16-канальный формирователь диаграммы направленности для К/Ка диапазона частот от Analog Devices
Часовой пояс GMT +3, время: 16:40.
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2021, Jelsoft Enterprises Ltd. Перевод: zCarot
Microchip предлагает отладочные платы для IoT c возможностью подключения к облачным сервисам
Масштабное расширение линейки тактовых кнопок KLS на складе Компэл
Срезы портала ↓
Зарегистрируйтесь на NextPCB и получите бесплатные купоны на $100
Рейтинг@Mail.ru