LINUX.ORG.RU

микроконтроллеры, прошу краткий ликбез

 , ,


3

1

Появилось желание на досуге собрать небольшой механизм с парой десятков сенсоров и несколькими функциональными частями, к примеру электродвигателями. Планируется передавать информацию между механизмом и PC - от датчиков в одну сторону, а для упраления механизмом в обратную. То есть особых вычислительных мощностей на контроллере механизма не нужно, основная логика будет расчитываться на PC. Главный критерий - простота - от сборки и пайки до прошивки и увязки с датчиками. Что сейчас в моде? Может стоит взять какую нибудь готовую плату? В общем любые советы по теме приветствуются.

http://easyelectronics.ru/ — тут ликбез по основам

http://roboforum.ru/ — тут профильный форум и магазин, в котором приторговывают разными готовыми модулями.

ymn ★★★★★
()

в моде арм, но зачем тебе арм? хватит атмела или пика 8-разрядного. спаять лучше на макетке, готовые платы не универсальны. питание лучше импульсное, проще линейное, но на первый раз надо брать готовое. чтобы не мучаться с usb, первый сделай на 232. а дальше - гугл.

aiqu6Ait ★★★★
()

особых вычислительных мощностей на контроллере механизма не нужно

Cortex-M0

anonymous
()
Ответ на: комментарий от quickquest

почитал, понравилось. Вроде несложно и паять не много прийдётся. http://www.arduino.ru/Hardware/ArduinoMicro

Сразу хочу спросить, насколько необходимо новичку брать что-то типо этого - http://shop.easyelectronics.ru/index.php?categoryID=102 или достаточно использовать просто макетную плату.

pseudo-cat ★★★
() автор топика

основная логика будет расчитываться на PC

Что за ресурсоёмкие вычисления, для которых нужен пека?

Главный критерий - простота - от сборки и пайки до прошивки и увязки с датчиками

Твоё понятие простоты очень расплывчатое; некоторые сейчас вообще не понимают, зачем собирать и паять. Собрать можно на бредборде, на макетной плате, нарисовать, облудить и залакировать свою собственную.

Что сейчас в моде?

Купить ардуино и потом докупать к ней модули на ебее. Копипастить код в студию. Постить вперемешку фотографии процесса и своего сраного кота на хабр и показывать, какой ты ниибаца кулхацкер.

Deleted
()
Ответ на: комментарий от pseudo-cat

необходимо новичку брать что-то типо этого

Если у новичка много денег, которые некуда потратить, то пинборд будет приятней бредборды.

или достаточно использовать просто макетную плату

Это разные вещи. Макетные платы используют ленивые люди для уже готовых схем. Не нужно травить текстолит, наносить дорожки, потыкал жалом в доску и запаял, всё, готово. Бредборда и пинборд — они для экспериментов, быстрой перестановки компонент без пайки.

Deleted
()
Ответ на: комментарий от Deleted

А как там, кстати, в студии с ruby и haskell?

anonymous
()
Ответ на: комментарий от pseudo-cat

или достаточно использовать просто макетную плату.

Да.

quickquest ★★★★★
()
Ответ на: комментарий от Deleted

Что за ресурсоёмкие вычисления, для которых нужен пека?

может ресурсов МК и хватит, но для меня писать на лоу-левел ЯП логику - дикость, да и поменять МК не будет проблемой в случае чего

докупать к ней модули на ебее.

вот это супер, мне так и нужно

pseudo-cat ★★★
() автор топика

основная логика будет расчитываться на PC

Да делай на МК, к тому же говоришь, что только начинаешь. Уверен, что 8-битного атмегушки тебе хватит. Если что-то серьенее, то ARM cortex-M3 гарантированно хватит.

А на комп уже по SPI или RS-232/485 можешь передавать либо промежуточные результаты, либо по запросу, тут уже тебе виднее.

markontheboard
()
Ответ на: комментарий от pseudo-cat

может ресурсов МК и хватит

Любой нормальной атмеги8 хватит.

но для меня писать на лоу-левел ЯП логику - дикость

Ты хоть знаешь, о чём говоришь, вообще?

да и поменять МК не будет проблемой в случае чего

Orly?

вот это супер, мне так и нужно

http://images.netbynet.ru/imgs/2dde94fafb77706d80b017ece9e1f6ec.png
http://rosental.virtbox.ru

Deleted
()
Ответ на: комментарий от Deleted

Ты хоть знаешь, о чём говоришь, вообще?

смотря что ты понимаешь под логикой

Orly?

это означает удивление?

насколько я вычитал в описании ардуино, там используется свой ЯП, в отличие от многих других МК, но если на нём будет написана лишь моторика и операции связанные с аппаратурой, а остальное на другом ЯП, то вроде очевидно, что при смене аппаратуры прийдётся переписать только этот код.

http://images.netbynet.ru/imgs/2dde94fafb77706d80b017ece9e1f6ec.png

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

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

но если на нём будет написана лишь моторика и операции связанные с аппаратурой, а остальное на другом ЯП, то вроде очевидно, что при смене аппаратуры прийдётся переписать только этот код.

Бугага, тоесть переписать самую геморойную и времяемкую часть проекта, для тебя - благо. Нда, давно такого старта в хобби не видел, ну каждый развлекается как может.

anonymous
()
Ответ на: комментарий от pseudo-cat

смотря что ты понимаешь под логикой

Я понимаю под логикой алгоритм работы программы, которую надо выполнить.

это означает удивление?

google →

насколько я вычитал в описании ардуино, там используется свой ЯП

ЯП зависит не от ардуино, а от архитектуры микроконтроллера.

в отличие от многих других МК

Ардуина — это не МК.

но если на нём будет написана лишь моторика

Моторика — медицинский термин.

операции связанные с аппаратурой

Там по определению всё связано с аппаратурой.

а остальное

Остальное что?

то вроде очевидно, что при смене аппаратуры прийдётся переписать только этот код.

Мы ещё не выяснили целесообразность вынесения выполнения кода за МК.

это не так, это просто хобби

Представь, это не easyelectronics.ru, а LOR, и у меня это тоже хобби.

да и что плохого, когда

Плохого то, что когда что-то не заработает или будет сбоить (а без этого никак) единственным выходом для тебя останется только покупать на авось новые модули. Если ты не расчитаешь токи и необходимую обвязку из сопротивлений на диодах, кондёров в обвязке прочей периферии, не будет кондёров, которые гасили бы помехи от компа/перферии/на земле ты рискуешь выжечь свои компоненты, МК и USB-порт в компе. А гарантии тебе от этого никто не даст.

Deleted
()
Ответ на: комментарий от anonymous

я не имею достаточно опыта чтобы говорить о сложности кода, управляющего переферией

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от Deleted

Я понимаю под логикой алгоритм работы программы, которую надо выполнить.

Тогда я разделяю логику наподобие «ехать вперёд пока не появится препятствие» и «подать +5 на выход 1 МК, подать 0 на выход 1 когда на входе 2 есть сигнал». Такой подход не верен?

Ардуина — это не МК.

Разве код ардуино не компилируется в код для атмеги? Но если заменить арудино но атмегу и самостоятельно сделать увязки с остальной аппаратурой, то код прийдётся переписать на С, или это не так?

Плохого то, что когда что-то не заработает или будет сбоить (а без этого никак) единственным выходом для тебя останется только покупать на авось новые модули.

я думал там всё продуманно, а всё что нужно сделать мне - писать команды наподобие подачи/снятия напряжения. Это заблуждение?

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от one_more_hokum

лучше уж сделать компилятор из Scheme, раз на то пошло

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

Нет у ардуины своего языка, это C++ с костылями. И да, я крайне не рекомендую на нём писать. И да, что за логика такая, что МК не хватит? Килобайта памяти хватит для многих «серьёзных» вычислений.

Artificial_Thought ★★★★
()
Ответ на: комментарий от pseudo-cat

Давай так, сколько уровней абстракций у тебя сейчас? Для связки - перефирия <-> МК <-> ПК, они в любом случае тебе понадобятся. Даже беря в расчет, что вычислительные ресурсы ПК велики, перекладывать логику обработки переферии на них, это однозначное внесение двух звеньев задержки ввиде интерфейсов. Логичней использовать ПК для постобработки, но никак не для обслуживания железа. Хотя смотря что за проект и какое время отклика ты ожидаешь.

anonymous
()
Ответ на: комментарий от pseudo-cat

Такой подход не верен?

Не вижу подхода.

Разве код ардуино не компилируется в код для атмеги? Но если заменить арудино но атмегу и самостоятельно сделать увязки с остальной аппаратурой, то код прийдётся переписать на С, или это не так?

ЯННП.

я думал там всё продуманно, а всё что нужно сделать мне - писать команды наподобие подачи/снятия напряжения. Это заблуждение?

Да.

http://rosental.virtbox.ru

Deleted
()
Ответ на: комментарий от anonymous

вообще я думал сделать уровень(1) для управления железом и получения сигналов со входов. Уровень(2), в котором будет хранится состояние всего механизма и возможные действия. И уровень(3), в котором будет вычисляться стратегия работы механизма. С уровня(2) уже логично использовать высокоуровневый ЯП, а состояние представить, к примеру, в виде объекта класса. Стратегия тем более, в ней, если хочется чего-то интересного, можно писать какой нибудь AI. Писать всё это на С, к примеру, повышая уровень абстракции вполне реально, но я от этого удовольствия явно меньше получу.

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от Deleted

ЯННП.

в ардуино работает атмега и именно в ней выполняется код, который мы пишем для ардуино. То есть если я выкину бутлоадер ардуино из атмеги арудино и буду использовать атмегу на прямую, то мне прийдётся писать заново код, к примеру. Я так думал

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

С уровнем 2 ты промахнулся, однозначно в МК. Иначе это уже не автомат и МК, в таком случае, тебе вообще не нужен. Совсем другая разработка, совсем другое железо.

anonymous
()
Ответ на: комментарий от pseudo-cat

в ардуино работает атмега

Не обязательно.

То есть если я выкину бутлоадер ардуино

То у меня возникнут сомнения, что после этого ты вообще сможешь

использовать атмегу на прямую


http://rosental.virtbox.ru

Deleted
()
Ответ на: комментарий от anonymous

пусть уровень 2 будет высокоуровневой обёрткой над состоянием механизма, хранимым в МК. Он вообще нужен для того, чтобы разделить понятия, к примеру - «есть препятствие» от «сработал фоторезистор». Ну как мне пока представляется

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от Artificial_Thought

у меня несколько идей, но всё это не серьёзные проекты, а просто игрушки для забавы. К примеру, почему бы не попытаться сделать современный аналог робота из MIT, который ездил по комнате и собирал мелкие вещи в одну кучу. В качестве расширения можно сделать, чтобы он составлял 2d модель комнаты

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

Эк ты быстро состояние механизма вынес из своих обстракций. Мда, пожалуй тебе азы надо плотно почитать, иначе так и будешь плавать. Пока да, ты непонимаешь что пытаешся собрать.
Начни с малого, помаргай диодами, напиши обработчик кнопок, погоняй кольцевые алгоритмы, потом когда поймешь как работает переферия МК, будешь проектировать свой механизм. И уже там будешь думать, нужны тебе слои обстракций, RTOS и прочие шалабушки или нет.

anonymous
()
Ответ на: комментарий от anonymous

Я и говорю, что это просто мои предположения.

Азы, имеется в виду электротехнику? Насчёт моргания, включения и выключения двигателей и передачи данных - сейчас читаю примеры кода для ардуино, вроде все понятно и просто. Особенно понравилось про плавное зажигания светодиода, не думал что ТАК это делается)

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от Artificial_Thought

с технической точки зрения? Я, если честно, думал что там все просто - двигатель + фотодиод. Система xy координат в которой n*x*угол поворота механизма определяет точку в пространстве относительно начальной. Поворот механизма дает пошаговый двигатель, к примеру

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от anonymous

Ну для меня это диковато потому что о ШИМ я узнал как связист, ещё в универе, то есть питание с помощью ШИМ мне и в голову не приходило, для меня это был сигнал, несущий информацию.

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от pseudo-cat

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

anonymous
()
Ответ на: комментарий от Deleted

Слушай, а на сколько живо и актуально freeduino, если его взять и к нему модули от ардуино подключать проблем не должно возникнуть?

pseudo-cat ★★★
() автор топика
Ответ на: комментарий от aiqu6Ait

в моде арм, но зачем тебе арм? хватит атмела или пика 8-разрядного

на avr/pic ты разве что лампочками и движками дрыгать сможешь. в моде OpenCV например так что нужен проц способный это обсчитывать.

exception13 ★★★★★
()

Очевидно Arduino. Самое простое.

VirRaa ★★★
()
Ответ на: комментарий от pseudo-cat

А я откуда знаю?
// С прописными уже получше, а вот запятые ещё подучить.

Deleted
()
Ответ на: комментарий от exception13

в моде опять что-то, что с толком использовать может менее долей процента ЦА, но надо обязательно потратить денех, а то другим покажется, что мы не современные.

Deleted
()
Ответ на: комментарий от Deleted

в моде опять что-то, что с толком использовать может менее долей процента ЦА, но надо обязательно потратить денех, а то другим покажется, что мы не современные.

аж страшно подумать, целых 80$ надо потратить на 4х ядрен плату с 2мя Гб оперативки. запомни что вычислительный блок это 1/10, если не менее, стоимости робота. самое дорогое это шасси, приводы и датчики.

exception13 ★★★★★
()
Последнее исправление: exception13 (всего исправлений: 1)
Ответ на: комментарий от Deleted

Дабы не выглядеть голословным, поясню, что «вычислительный блок» можно собрать на помойке, а можно получать по спецзаказу навороченную платформу по цене автомобиля. Зависит от того, куда этот блок пойдёт.

Deleted
()
Ответ на: комментарий от exception13

на avr/pic ты разве что лампочками и движками дрыгать сможешь. в моде OpenCV например так что нужен проц способный это обсчитывать.

я конечно понимаю, что глупость говорю, но зачем ТС-у OpenCV, если ему надо

собрать небольшой механизм с парой десятков сенсоров и несколькими функциональными частями, к примеру электродвигателями. Планируется передавать информацию между механизмом и PC - от датчиков в одну сторону, а для упраления механизмом в обратную. То есть особых вычислительных мощностей на контроллере механизма не нужно, основная логика будет расчитываться на PC.

aiqu6Ait ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.