От Arduino к микроконтроллеру.

Категории: 

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

В первой части - ниша Arduino.

Во второй части - переход от прототипа к железу на микроконтроллере.

В третьей части - повышаем профессионализм в программировании.

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

Недостатки достаточно очевидны и давно озвучены в соответствующих сообществах:

  •  избыточность программного кода;
  • избыточность аппаратных ресурсов;
  • низкая доступность аппаратных ресурсов микроконтроллера через команды языка Wiring ( Wiring - язык для Arduino, гусары - молчать!);
  • ненормированная надежность (вибрация, влажность, удар и др.);
  • отсутствие защиты по входам;
  • достаточно большие габариты;
  • неопределенные метрологические характеристики;

Естественно, если бы в Arduino не было достоинств, то само существование этой инфраструктуры было бы бессмысленным. Поэтому озвучим и достоинства:

  • невысокий уровень входа (хотя кто-то может и поспорить);
  • язык Wiring - является надстройкой над проектом GNU avr-gcc, что позволяет использовать возможности C++ и ассемблера, а, может быть, и другие возможности. Программисты скажут про это гораздо больше. Но для разработки небольшого проекта даже озвученных возможностей более чем достаточно;
  • мощное и открытое сообщество;
  • все возможности Open Sourse по использованию и модификации;
  • модульность, большое количество недорогих модулей;
  • большое количество примеров и открытых библиотек;
  • систематизированные типовые схемы подключения периферии (кнопки, клавиатуры, сервоприводы, ключи и др.);
  • поддержка сторонних отладочных плат; после некоторых манипуляций «сторонняя» отладочная плата становится «родной»

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

Итак, прототип построен, но что дальше?

  1.  Перевод прототипа в железо.
  2.  Переход на среду разработки программного обеспечения, адаптированную к профессиональному использованию.
  3. Использование профессиональной периферии, с обеспеченной надежностью. (возможно этот текст никогда не родится).