@komandakycto
php программист

С чего начать в программировании микроконтроллеров?

Имеется 4 летний опыт разработки веб приложений. Давнее желание пощупать микроконтроллеры. Техническое образование. Готовность к относительному хардкору. Базовые знания в области C/C++ и ассемблера.
Хочется попробовать делать вещи для систем вроде умного дома. То есть автоматизация управления различными вещами, устройствами и взаимодействие с системами связи.
Не хочется собирать плату с 0 самостоятельно, искать под нее транзисторы, резисторы и т.д.

Ожидаю какую-то готовую плату, которая позволит быстро начать и развернуться в широком диапазоне, относительно простая для изучения, хорошо документированная, со своей средой разработки и комьюнити. Однако при этом не хочется чтобы плата затерла фундаментальное понимание "как же оно всё работает", поэтому относительно ардуино есть опасения, и к тому же она весьма дорогая. Вообщем как всегда нужна золотая середина. У кого есть опыт, посоветуйте пожалуйста, на что потратить деньги чтобы утешить свою любопытство в этой области.

UPD: Заказал следующий набор Ultimate-UNO-R3-Starter-Kit-for-Arduino
  • Вопрос задан
  • 8167 просмотров
Решения вопроса 1
trampick
@trampick
Веб-разработчик
Приветствую. Сам web разработчик и как хобби играюсь с железом. Для работы с микроконтроллером как минимум необходимы какие то знания электронике и схемотехнике. Затем я советовал бы взять arduino. На него очень много уроков и схем плюс среда ide простая для понимания. По цене не соглашусь. Можно саму плату взять за рублей 500 с китая. К нему еще стартовые радиодетальки - светодиоды, резисторы, кнопки и т.д. - тоже не дорого. Все это можно собрать за 1000-1500р - в наше время это не много.
Как более сложный уровень я бы советовал взять какую-нибудь платку stm32. К ней тоже будут нужны компоненты.
За 2000 можно собрать неплохой комплект.
На этому сайте есть недорогие платки
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 7
@dsd_corp
Привет. Все верно комментаторы говорят - начинать с Ардуино вполне резонно. И не слушайте тех, кто говорит, что Ардуино гуано потому что [и тут разные расплывчатые аргументы]. Ардуинщики в большинстве вырастают в говнокодеров не потому, что Ардуино плоха, а потому что даже не пытаются развиваться дальше. Типичная проблема низкого порога входа(как у 1С, например). То есть проблема в самих человеках, а не в Ардуине.
У вас же, судя по тексту вопроса, мотивация развиваться есть )

Для Ардуины действительно существует куча шилдов и примеров кода на своем упрощенном языке(хотя это по-прежнему C++), что для старта очень даже неплохо - при наличии желания можно разобраться в том, как все устроено еще до того, как возьмете в руки паяльник.
И никто не мешает вам, при достижении определенного уровня, перейти на программирование контроллеров с помощью других компиляторов, исключая Arduino IDE и lazy coding. При этом на первых порах по-прежнему можно использовать Arduino-загрузчик и не париться со всеми проблемами сразу.

Сразу же рекомендую кроме Ардуино купить на будущее что-нибудь типа STM32 Nucleo. У этой платы есть совместимость с Arduino-шилдами, mbed-загрузчик(заливка прошивки происходит простым копированием на виртуальную USB-флешку), а так же полноценный STLink-программатор с пинами для программирования внешних контроллеров - это значит, что в последствии вы можете собрать собственный девайс на STM32 микроконтроллере и с помощью встроенного в Nucleo SLink-программатора его запрограммировать, просто подсоединив пару проводков(SWD).

И впоследствии, если не растеряете желание расти, вполне сможете создавать уже свою электронику и при этом, к примеру если остановитесь на STM32 контроллерах, все еще использовать STLink от Nucleo для программирования своих девайсов.
Выглядеть это будет приблизительно так: 5.101.107.156/Habr/IMG_1235.JPG
Здесь две Nucleo-платы слева используются как STLink-программаторы для двух плат справа соответственно )

Ну а дальше все зависит только от вас.
Удачи )
Ответ написан
Комментировать
kashamalasha
@kashamalasha
Нужен будет следующий набор, чтобы было интересно что-то делать:
  • *duino плата (желательно Uno или Mega) - 1шт.
  • Макетная безпаечная плата (solderless breadboard) - 2шт.
  • Резисторы - по 10 шт каждого номинала от 1Ом до 22МОм по ряду Е12
  • Набор светодиодов 3мм. на 20мА - штук 5 лучше разных цветов
  • Тактовые кнопки - штуки 4-6
  • Потенциометры разных номиналов - пара штук
  • Фоторезисторы - пара штук
  • Полупроводниковые диоды - штук 10
  • Биполярные транзисторы npn 222 (для ключей) - штук 10
  • Полевые логические транзисторы для моторов и LED-лент - штуки 2
  • Блоки реле для коммутации 220В - несколько штук опционально
  • Набор конденсаторов электролитических - штук 10 разных номиналов на 12-35В
  • Регуляторы напряжения 7805 или 317 - опционально
  • Батарейка типа Крона - опционально


С этим набором можно будет что-то делать, если появится какая-то идея. Просто купить ардуино бессмысленно, надоест на следующий день.

Плюс скорее всего понадобится минимальный инструмент:
  • Паяльник 30Вт
  • Мультиметр любой
  • Пинцет
  • Узкогубцы
  • Куча обувных коробок, чтобы все это хранить


Можно все купить одним набором, например так: amperka.ru/product/matryoshka-z выложив 4 стоимости от составляющих комплекта, либо все по кускам покупать на eBay.

Ардуино хороша как старт. Можно абстрагироваться от Фреймворка Ардуино и программировать МК на C, штудируя datasheet. Но начинать бы я с этого не стал, т.к. есть шанс погрязнуть в настройке регистров, разочароваться и бросить.
Ответ написан
@evgeniy_lm
Разумеется Arduino.
Для начала можно купить наборчик побольше для поиграться.
Не знаю ваш уровень общего развития в этом плане по этому рекомендую книги Юный радиолюбитель Борисов В.Г. и Юный кибернетик Отряшенков Ю. М. Книги детские и старые, но теория там очень хорошо описана
Ответ написан
@vilgeforce
Раздолбай и программист
Arduino и вперед, осваивайте I2C, SPI, 1-Wire и так далее.
Ответ написан
Комментировать
@BMSerg
На shop.easyelectronics.ru можно приобрести отладочные платы с обвязкой, на самом easyelectronics.ru найти статьи учебных курсов по ARM и AVR и много чего еще полезного для начинающего.
Ответ написан
Комментировать
@jakara
Чарльз Платт электроника для начинающих скачать
Ответ написан
Комментировать
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы