Вопрос новичка: Насколько совместимы версии Arduino?

Dimanoss
Offline
Зарегистрирован: 29.05.2016

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

К своему стыду только вчера ткнулся носом в Arduino, очень хотелось бы разобраться с ним до определённого уровня.  Я планирую пока что ваять небольшие безделушки для дома: светодиоды, мелкая автоматизация, интересует больше принцип построения, области применения.  Сам я - программист, но с микроконтроллерами пока что ни разу напрямую не работал.  Хочу для опытов взять какую-либо Arduino-платку, но в местности нашей выбор версий их весьма широк, отсюда - лёгкое замешательство.  

Хочу склепать эдакий столик для работы (платка Arduino + макетная "втыкательная" платка), с таким расчётом, что для конечного продукта будет приобретаться отдельная Arduino-плата.  Например - на "столике" буду работать с Leonardo, а в рабочий экземпляр будет встраиваться Nano. Вот хотелось бы знать, как оно на практике, насколько спокойно прошивка одной версии работает на другой?  Есть конфликты?  Ну, если не брать во внимание различие подключенной периферии и объём памяти...

Спасибо заранее.. :-)

MagicianT
Offline
Зарегистрирован: 03.10.2015
Леонардо и Нано сильно отличаются, МК разные, соответственно если будет низкоуровневое обращение к прерываниям, таймерам или ацп то переписывать придётся. На уровне дигиталВрайт одинаково, т.е. примитивные проэкты будут работать без разницы. 
 На платах с одним МК, обращайте внимание на питание , есть 3.3 а другие 5В, и у них тактовая частота разная, 8МГц для 3.3В.
Dimanoss
Offline
Зарегистрирован: 29.05.2016

MagicianT пишет:

..если будет низкоуровневое обращение к прерываниям, таймерам или ацп то переписывать придётся.

На низком уровне?  эээ... мммм...  Т.е. - нужно будет программку под другой контроллер переписывать?   Или я в терминологии накосячил?  "Прошивка" - имел в виду код программный.

MagicianT
Offline
Зарегистрирован: 03.10.2015
Ардуино мало чего умеет делать, для поддержки разносортной периферии, например чипа который мигает светодиодами, или радио модуля нужны библиотеки (драйверы , для программера должно быть понятнее). Так вот энти драйверы пишутся под конкретные МК (АтМега328 или там АтМега32ю4), и там уже надо смотреть, если нужного драивера-библиотеки на просторах и-нета не окажется, придётся писать самому.
 Низкоуровневое программирование - раньше называли системное, как правило уровень ассемблера. Писать и на С можно, но название регистров всё равно ассемблерное, так вот энти регистры у мега328 и мегаю4 РАЗНЫЕ. 
 Короче, копайте мат часть, куда смотреть я уже сказал, тип МК, питание 3.3/5, ищите похожие проэкты  (ресёарч) и библиотеки.
Dimanoss
Offline
Зарегистрирован: 29.05.2016

Ага, спасибо, про драйверы - доходчиво.  :-)  И, если я правильно понял, желательно изначально подыскивать периферию с кроссаппаратной софтовой поддержкой?

MagicianT
Offline
Зарегистрирован: 03.10.2015

Мне кажется логичным начать поиск с периферии, потом смотреть если ли готовый софт под конкретный МК. Возможно, МК придётся выбрать под софт, а не наоборот. Если не массовое производство, то заплатив на $1 больше за другой МК вы сэкономите 1-2 недели на написание программы, плюс не надо отлаживать - пару тысяч леммингов давно оттестили полярные библиотеки за вас -):

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Могу порекомендовать собственный опыт: отладка проектов на Uno (самый распространенный вариант), а в готовые изделия вставляю Pro Mini. Чип практически один и тот же. Pro Mini, на мой взгляд, оптимален и по габаритам и по цене вследствие отсутствия контроллеоа USB. Чтобы залить прошивку в Pro Mini нужен программатор, достаточно одного на все поделки.

Uno используется только с "шилдами", т.е. с модулями, специально предназначенными для состыковки с "полноразмерными" Ардуино.

Logik
Offline
Зарегистрирован: 05.08.2014

andriano пишет:

Могу порекомендовать собственный опыт

Все так, только вместо uno читать nano. А про шильды забыть сразу - дорого и на mini будет тяжело переносить (чисто электрически, раземы разные, по картинках сразу разберете) . Толковый шилд только 1 - экран LCD с паралельным интерфейсом. 

Поправлю. Для прошивки в  mini нужен не программатор а конвертор USB-UART. Это проще и дешевле.

Грубо говоря  nano=mini+конвертор USB-UART. Контроллер один у них -  АтМега328. Потому для разработки удобней nano а для готового - дешевле и компактней mini. Потому имею пару nano для "поигратся", а проекты пошти все на mini.