Я думаю ни для кого уже не секрет что такие устройства как микроконтроллеры с каждым годом все прочнее входят в нашу жизнь. То, для чего раньше были нужны громоздкие конструкции на обычной электронике, теперь легко можно обойтись крошечными микроконтроллерами с записанными в них программами. Без микроконтроллеров немыслимо и развитие такой крайне востребованной сейчас отрасли как робототехника.
По сути микроконтроллер представляет собой микросхему, включающую в себя микропроцессор и все необходимые для его работы элементы - память программ, память данных, задающий генератор (кварцевый резонатор), порты ввода/вывода различного назначения. То есть для разработчика устраняется куча проблем, свойственная проблемам создания устройств на обычных микропроцессорах - именно это и обусловило их широкую популярность не только у профессионалов электроники, но и у обычных радиолюбителей. Причем для программирования современных микроконтроллеров необязательно ломать голову над изучением такого сложного языка программирования как Ассемблер, программы для них можно писать на языке С.
Впервые я немного столкнулся с изучением микроконтроллеров когда учился в институте - в то время на нашем рынке микроэлектроники доминировали еще такие "архаичные" сейчас монстры как микропроцессор КР580ВМ80 (аналог иностранного Z80 - того самого, который использовался в компьютерах ZX Spectrum) и однокристальный микроконтроллер КМ1816ВЕ51 (то же "слизанный" с западного аналога). Сейчас же, насколько я понял, в этой сфере доминируют микроконтроллеры AVR (на фото), которые при сравнительно небольшой цене (младшие модели стоят от 100 рублей и поэтому доступны практически всем) имеют достаточно неплохой функционал - в них есть встроенные и аналого-цифровой преобразователь (АЦП), и источники ШИМ-сигналов, и таймеры, и контроллер прерываний, и различные последовательные порты ввода/вывода.
Но если для использования микроконтроллеров AVR еще нужно что то "шаманить" - ну как минимум нужно разобраться как подключать к нему программатор, то сейчас для совсем новичков есть и гораздо более простые решения - например, платы Arduino (на фото ниже), в основе которых лежат все те самые микроконтроллеры AVR. Платы Arduino можно через USB подключать напрямую к компьютеру и потом без труда загружать в них программы, написанные в удобном визуальном редакторе.
Тем, кому нужны возможности побольше, можно обратить свой взор на компьютер размером с кредитку под названием Raspberry Pi - он содержит не только микропроцессор, но и все необходимое для его работы, включая даже операционную систему. Причем к этому мини компьютеру (на основе которого можно делать какие то собственные устройства) можно подключать даже монитор и серфить потом в интернете - его возможности тянут современные браузеры, а стоит такое устройство всего лишь порядка 35 долларов. Еще на основе этого мини компьютера делают так называемые мастерноды для майнинга криптовалют.
А что думаете вы о современных микроконтроллерах? Изучали ли вы их и собирали ли на их основе какие-нибудь конструкции?
На сколько я знаю, ардуино используется в основном в детских кострукторах, ну и энтузиасты для всяких робозабав используют. Не сильно вникал в тему, в основном видел простенькие видео в ютубе, да статейки аля кто-то что-то смастерил. В целом для серьёзных вещей микропроцессор нужно программировать самому. И вот тут уже без ассемблера не обойтись. Не долгое время я даже пытался его учить, но из-за ненадобности забросил и перешёл на более высокоуровневые языки. Сподвигла на изучение правда обычная игра, не помню как называлась (подозреваю, что её уровень был крайне приметивный, по сравнению с реальным языком, уж больно легко она проходилась =) ) Если вспомню напишу ниже =)
Ещё как-то попалось видео, где чувак делал игру для деньди =) Причём начиная с программирования самой игры и до паяния картриджа =) Плату он заказывал на каком-то заводе (само собой не одну, ему целая пачка пришла, вроде штук 20).
А микроконтроллеры это как конструкторы игр =) Сделать из них конечно что-то можно, но как ни крути будешь ограничен вложенными в него функциями. Игру, кстати, вспомнил =) Называлась "TIS-100", в стиме есть =) Так же есть что-то вроде её цветного аналога "SHENZHEN I/O".
Ну у Ардуино вычислительная мощность действительно невелика, но зато это очень удобная и универсальная платформа для большого числа несложных задач. Если нужны значительные вычислительные мощности в миниатюрном устройстве, то тогда надо брать Raspberry - немного дороже чем Ардуино, но зато значительно мощнее.
Но у AVR есть и гораздо более мощные микроконтроллеры (называются вроде megaAVR) чем те, которые устанавливаются в платы Ардуино, поэтому на них, в принципе, можно создать достаточно высокопроизводительные приложения.
Сейчас если ты делаешь что то для себя, то нет смысла изучать Ассемблер - вполне достаточно будет и С. Причем размер программы может быть достаточно большой поскольку и объем памяти значительно вырос в микроконтроллерах в последние годы.
Всё зависит от задач, конечно можно особо не заморачиваться и писать на С если это поддерживается, но вспомни тот же редактор WE. Можно всё делать на триггерах, а можно на JASS, и так и так получится что тебе надо, но на JASS будет быстрее работать, меньше жрать памяти и скорее всего можно будет сделать что-то, что нельзя на триггерах =) Так же и с микропроцессорами =)
Да я согласен с этим, но Ассемблер востребован для промышленных задач, там где массовое производство, а для домашних поделок и программ, написанных на Си, хватит за глаза
Ну создашь супер мега робота, право на производство которого у тебя потом купит какая-нибудь крупная компания за сумасшедшие деньги )) Ну или, пока не поздно, намайнишь на своей видеокарте крипты, потом эту крипту загрузишь в мастерноду на Raspberry и будешь радоваться пассивному доходу ))
Ну почему раскрыл? Я же написал "может", а на самом деле вдруг у меня совсем другие планы, гораздо более коварные. А по "ложному следу" я пустил тебя, чтобы ты успокоился и расслабился и поэтому не смог бы заметить реальной опасности