Хорошо, я достаточно поиграл с Arduino, и я чувствую себя довольно комфортно с ним. Все, что делается сейчас, больше изучает электронику, чем ее Arduino.
Какой следующий шаг для моего обучения? Arduino - это комбинированный программист / контроллер, так что, вероятно, мне нужно разорвать эту связь и начать работать с чипом контроллера отдельно от контроллера, я полагаю? Может ли кто-нибудь указать мне правильное направление?
Ответы:
Вот несколько советов по работе с AVR и C.
Начните со встроенного C с ATmega32 (серия ATmega AVR)
источник
Я согласен с Джоби - Ардуино великолепен, но я всегда чувствую себя подавленным рамками, которые меня окружают. Я бы перешел к использованию прямого C на вашем Arduino и построил бы большую функциональность библиотеки, которую они предоставили с нуля. Я обычно предпочитаю глубину перед широтой - не просто начните с другого семейства микроконтроллеров, используя более предоставленные фреймворки. Узнайте больше о том, как реализовать некоторые из этих функций самостоятельно.
Начните с работающей программы и замените вызовы библиотеки Arduino вашими версиями по одной функции за раз. Вы узнаете много нового о регистрах управления, времени, битовых операциях и т. Д., Если вы еще этого не сделали. Внимательно прочитайте таблицу данных ATMega328 - там есть все, что вам нужно.
Попробуйте другую IDE, например AVR Studio или Code :: Blocks. Изучите GCC toolchain. Попробуйте более продвинутые методы кодирования - модульные тесты, покрытие, профилирование, проверка ворса / шины. Поставьте ОСРВ на Arduino.
Комбинированный программист / контроллер не является признаком слабости - это просто выбор дизайна. Единственная слабость, которая может возникнуть из-за этого, - отсутствие внутрисхемной отладки. Купите дракона AVR, и вы получите его за 50 долларов.
источник
Я думаю, что учить дальше, зависит от того, что вы хотите сделать, чего не может делать Arduino. То есть, я не вижу особого смысла в программировании аналогичного чипа для того же, но с более сложными средствами.
Вот некоторые недостатки Arduino:
Я могу представить себе два направления:
Я могу добавить больше деталей, если вы прокомментируете, какое направление является более привлекательным. (Второй, безусловно, дешевле.)
источник
Изучите I2C, SPI, 1wire и попытайтесь связать датчики с такими интерфейсами. Прочитайте много таблиц таких датчиков и постарайтесь все понять в них. Задавайте вопросы, когда застряли. Изучите протокол MODBUS (RTU / ASCII / TCP) или аналогичный протокол, который может открыть ваше устройство для мира, как только вы вставите его в устройство. Изучите общую электронику и попытайтесь связать реле, триаки, что подтягивать и опускать, что такое источники и понижения, как рисовать схемы и подключать основные драйверы к вашему MCU.
источник
Для начала вы можете перейти от Arduino в качестве платформы к AVR в качестве платформы. То есть, научитесь программировать / использовать первозданный микроконтроллер AVR для своих проектов вместо Arduino. Таким образом, вам не придется покупать другую доску Arduino для каждого проекта, который вы делаете, или для выполнения проектов с друзьями. Это довольно простой шаг (Arduino - это обычный микроконтроллер Atmel AVR, но со специальной платой и загрузчиком), но он очень важен для продажи / передачи проектов друзьям. Набор инструментов тоже похож: вы используете avr-gcc или avr-g ++ с make вместе с утилитой программирования для установки вашей программы.
источник