Pull to refresh

Comments 60

Совсем не имею опыта работы с микроконтроллерами, но хотелось бы попробовать. У этих плат совсем небольшая цена, стоит ли пробовать? Какой порог вхождения? Что на ее основе можно сделать, кроме как помигать светодиодом?
Порог вхождения самый минимальный, по сравнению с другими микроконтроллерами. Можно управлять к примеру реле, сервомотором. Получать данные физической среды: температура, атмосферное давление, давление груза(как весы), акселерометр. Подключать радио датчик, xbee, bluetooth и передавать данные на другое устройство. Строить Mesh сети интеллектуальных датчиков.
Конкретно эту — нет. Ни обвеса, ни usb-разъёма. Паять и строгать. Эта может понадобиться только, когда всё оттестировал и потом уже «прошмыленный» образец делаешь.
Если с нуля попробовать — обычные arduino-платы, и к ним можно подбирать много всяких навесок (shield).
А сделать можно практически всё — через одни контакты приходят данные с датчиков, через другие отправляем команды на сервомоторы и любые другие устройства. По проводам, по bluetooth… Есть даже gsm и gps.
На что фантазии хватит. А если не хватит, есть несколько статей на Хабре и мильон роликов на ютубе.
Из предыдущей версии:
The ATtiny85 of the OLIMEXINO-85 is pre-programmed with a bootloader that allows it to act as a
USB device
so that it can be programmed by a modified version of the Arduino IDE.
Думается, что S-ка будет это так же уметь.
Я вот недавно начал пробовать, но начал с MSP430. Их launchpad'ы дороже, но привозят их FedEx'ом через неделю.

В общем рекомендую плату (Arduino или ещё какая демоплата). Там будет и микросхема/прошивка для связи с компом, провода можно будет прицепить без пайки и будет хоть одна кнопка и хоть один светодиод.
Это здорово поможет написать первые программы и освоить всякие прерывания и таймеры.
Вообще набыдлокодить прогу можно очень быстро (за вечер накопипастите), разбираться же почему тут надо написать это магию или как работать с прерываниями и спящим режимом — заметно дольше.
А так, IMHO, лучше купить готовых модулей и проводков. Проводками соединять модули и вперёд.

На основе любого микроконтроллера, вы только и сможете, что помигать светодиодом, пощёлкать реле, покрутить сервой или передать что-то по COM/Bluetooth/USB
Ну или прицепить что-то совсем внешнее вроде экранчика.
И вот этого действительно хватает, чтобы делать кучу вещей. От банального включения света по таймеру до автомата по сортировке M&Mds
Еще на попробовать можно взять платку с .Net Micro Framework. Для первого знакомства и «на поиграться» будет очень удобно — пишешь на c#, полноценная отладка через VisualStudio. У меня, например, такая платка: netduino.com/netduino2/. Ее основной плюс — совместимость со стандартными платами расширения (шилдами) для ардуино.
Просто мега вещь будет! Наконец-то можно будет управлять светом/вентиляторами и дверьми в квартире по 100 рублей за точку!
Вот честно — не понимаю восторга. Голая 85я тинька на платке, отдельно стоящая 30-50 рублей. Но волшебное слово «Arduino совместимая» делает своё дело.

Завернуть её же в синюю изоленту и вывести провода — ничего не изменится! Только компактней будет.
Ок бро, дай мне тиньку, обвес к ней и научи бутлоадер шить — я буду ещё больше рад, честно! Но пока у меня нет времени читать горы мануалов и пытаться шить свою сборку. Сейчас проще за 100 рублей купить, воткнуть в USB, залить и прикрепить реле.
А почему бы не взять вот такой STM8 board?
Да, USB там только для питалова, но возможностей больше + изучить гораздо более перспективнй камень, имхо.
Ммм, интересная цена! Осталось найти простой и удобный IDE. Там же не Processing?
Например вот. Демка 8кб, ну или другие пути есть.
Пытался начать с GCC -замаялся прикручивать библиотеки. Перелез с PIC. Ну точнее оба типа сейчас использую.
Пользуюсь копеешным UART-USB и китайским клоном ST-Link
Да нет проблем:
1. Обвес не нужен. Собственно, его тут и нет.
2. Они есть в продаже с прошитым бутлоадерам.
3. В USB вы эту хрень не воткнёте. То есть воткнёте, для питания только. Либо я там не увидел usb-uart переходника.

Теперь по претензиям:
дай мне тиньку
Приходи, забирай
и научи бутлоадер шить
Он там вообще извращение. USB-программатор стоит всего лишь 4-5$, один на всю жизнь. Для АВРок. Бутлоадер годен для более жирных контроллеров.
Но пока у меня нет времени читать горы мануалов
Чтобы включить реле, вообще ничего читать не надо, кроме её распиновки. Если писать умеешь. Не только на великом и могучем, а на Си например. Голый проект и 3 строчки кода. Без волшебных слов «Arduino»
Сейчас проще за 100 рублей купить
Всегда проще. Проще нанять кого-то протянуть сеть, почистить комп, помыть посуду, оказать другие услуги. Но если затраты времени — максимум час, да плюс есть интерес — не понимаю такого подхода.

Все считают МК чем-то сверхъестественным, собственно так бывает, есть дофига серьёзных и сложных архитектур, но AVR-8 — это смех просто для IT-шника или гика.
AVR — это просто. То же IDE запускается без установки, шьется одной клавишей и тут же работает. Ну и язык попроще, как JS.
Вы имели ввиду «Arduino»?
Ну вот в честь пятницы не будем спорить :)
Arduino — просто и хорошо, но не в таком форм-факторе. Первые их платы нормальные были: жирные контроллеры, куча обвязки, нормальные бутлоадеры и прочее. Но это уже что-то смешное…
Смеешься? Я когда первый раз программировал контроллер и накидывал обвязку затратил на чтение мануала ровно час и два часа паял — ты дольше ждать будешь пока тебе сборная плата придет. В инте 100500 мануалов — Как начать программировать на AVR. При том, что я не инженер, и электронику знаю только со школы.
Я не паял вообще — dip-корпус, бредборд, 5 проводков в lpt-порт. Можно ещё 150 рублей потратить на usb программатор.

Хотя сейчас рекомендовал бы за тысячу рублей взять STM32F4DISCOVERY, там отличный проц, с полноценным usb device. Но надо уже уметь программировать и придёться мануал таки читать.
UFO landed and left these words here
ARM — не rocket science, но обилие периферии и функционала новичка могут испугать.

Плюс, под linux всё более печально со средами разработки, сборкой, прошивкой и отладкой, чем, скажем, для AVR. Одна настройка эклипса чего стоит.
Настройка эклипса под чего? Ни с AVR, ни с ARM проблем не было. Правда с AVR проще — установка плагина и среда готова. Для ARM что-то настраивать надо было.
У меня CMSIS и SPL собраны, как статические библиотеки. Пути к хэдерам указаны корректно, эклипс их видит. Но при этом срабатывают предупреждения про несуществующие типы u8/u16/u32, не работает автодополнение по части функций/констант.

Вчера нашел ещё один вариант: GNU ARM Eclipse plugins. Даже работает «из коробки». Правда, в каждый проект копируется CMSIS и SPL. Пока не разбирался с semihosting (вызовы прокидываются на хост) и nosys (по идее, должны быть заглушки для системных вызовов) режимами для libc.
про несуществующие типы u8/u16/u32

Там нужно подключить стандартную библиотеку для gcc, не помню имя. Гуглится быстро.
не работает автодополнение по части функций/констант.

Когда всё подключено, и пустой проект компилится без ошибок, эклипс начинает всё видеть, и все его функции работают.
Там нужно подключить стандартную библиотеку для gcc, не помню имя. Гуглится быстро.
Они определены в stm32f10x.h в строках 503-505:
typedef uint32_t  u32;
typedef uint16_t u16;
typedef uint8_t  u8;
uint*_t в stdint.h, который доступен эклипсу в /usr/arm-none-eabi/include.

Когда этот хидер лежит в том же проекте (и включается через #include "stm32f10xh"), то всё нормально. Если он лежит в отдельной директории (которая подключена в эклипсовский проект и подключается через #include <stm32f10x.h>), то эклипс прекрасно собирает проект но не находит этого typedef'а.

Когда всё подключено, и пустой проект компилится без ошибок, эклипс начинает всё видеть, и все его функции работают.
В том-то и прикол, что всё собирается, прошивается и отлаживается эклипсом нормально. А код в редакторе расписан под хохлому intension'ами.
Попробуйте сделать Refresh и Index->Rebuild (правый клик на проекте)
Пробовал, не помогает. Догадываюсь, что где-то misconf, но где — в упор не вижу. В c/c++ include paths and symbols всё прописано.

Этот (проблемный) вариант проекта сделан на базе stm32-cmake. Правда, последний с тех пор изменился.

Я в какой-то момент отказался от eclipse для большей части проектов в пользу семейства jetbrains, т. к. основные языки у меня java и ruby. Только для embedded под linux пользуюсь.
Они определены в stm32f10x.h в строках 503-505:

А, понял о чём вы. Я не о том подумал.
Не могу что-то сказать или проверить, не дома сейчас. Но у меня проблем не возникало…
Думаю, промышленная сборка будет надежнее. А если потребуется двадцать таких микроконтроллеров или больше? Будете каждый в синюю изоленту заворачивать?
Сборка чего? Круглых дырочек? Или вы про USB-разъём? Собираетесь USB-шнур в люстру или розетку тянуть? Тогда да, я в таком случае предпочту завернуть в изоленту.
для 20 штук я сам с 0 такую плату разведу.
А производство 40 таких плат у китайцев обойдётся в 10$ с доставкой.
Зато какой кайф: своя схема (пусть и простая), своя разводка, может быть какая-нибудь фишка в дизайне/разводке (типа эмблемки или QR-кода), это же не сравнить с покупкой непонятного готового модуля!
кстати, а цена производства не вымышленная? сколько, примерно, будет небольшая партия по размеру стандартного шилда ардуинки) 40 штук, например? Я предполагал другой порядок цен, от 100$…
Ардуинка достаточно немелкая плата, так что $100-150 долларов за 40 плат думаю и выйдет. Теоретически можно сэкономить, если заказать 10 «больших» счетверённых плат, которые потом надо будет своими силами разрезать на 4 части.
Платы 50х50 мм (двухслойки) стоят у них 10$ за 5 штук. Перепутал немного, думал за 10.
Больше размер — естественно дороже. Для примера — вот один из проверенных (давно правда) сервисов

Поясню, тут смотрю непонятки: 10$ за 5 штук за всё, а не за каждую. 100х100 уже будет 25$ за 5 штук, а там дофига чего можно разместить.
Потому что уже на платке, уже можно подключить к компу и уже писать в известной среде. Потому что это всё понятно человеку не в теме, в отличии от того, что делать с чёрным параллелепипедом с 8 желязячками, которые из него торчат.
Че-то я не понял, а USB-UART где на ней?! Или её нельзя напрямую через USB шить?
Насколько я понял, там такой bootloader.
Он забирает 2кб памяти, та к что пользователю останется всего 6кб.
Как радиогубитель скажу (и так каждый раз), это начало «нано».
Вот фото платы с другой стороны. Судя по всему, протокол usb реализован программно. Это не очень хорошо, потому, что программная его реализация расходует большую часть времени микроконтроллера.

Интересно, сколько из несчастных 512 байт RAM уходит на структуры для USB?
нисколько, поскольку usb загрузчик нужен только для обновления загружаемого кода, который сам управляет ресурсами микроконтроллера, не используя загрузчик
При использовании bootloader'а usb-библиотека загружена. Это значит, что для работы этой библиотеки достаточно имеющихся 512 байт.

Вопрос мой касался того, влезет ли эта библиотека параллельно с application-кодом. Учитывая, что в этой же RAM живет стек.
Интересно сколько памяти ушло на бутлоадер
Кстати, если я правильно понимаю, то при активном USB-соединении, мы теряем как минимум 2 ножки (D+ и D-). К тому же в программной реализации USB-стека на AVR (скорее всего, V-USB), в основном цикле вертится функция usb_poll(), которая кушает много процессорного времени.

А ещё интересно, как они разогнали её до 20 МГц. То есть, сам чип спокойно работает на этой частоте, но внешнего осциллятора я не вижу, а внутренний умеет только 8 МГц. Скорее всего, на плате есть отдельная RC-цепь, тогда ещё минус ножка.

<сарказм>А ардуино-совместимые платы на ATtiny5 сделают? Она ещё в несколько раз меньше.</сарказм>
Зато там есть где развернуться. Ведь очевидно, что 20 байт аппаратного стека хватит любому C-компилятору ,)
В этих вроде бы есть PLL который их разгоняет аж до 30МГц или чето такое.
На самом деле так можно взять PIC16F1455, SOIC14, аппаратный USB, может работать как Full speed без внешнего осциллятора, тактируясь от USB шины. Приделать 8*8 расчески и продавать как настоящий USB-nano…
А у Microchip ещё есть 8-ми ногие true USB устройства… можно таких нано наделать…
Да ну, лучше макхак — mchck.org/about/. Нормальный ARM. Заказал себе eval kit, правда, никак не найду времени спаять и написать статью.

Плюс Arduino в легкости написание программного кода. И большое количество уже наработанных библиотек на все случае жизни. А с ARM, еще нужно будет попариться. И как бы ваш вариант в геометрических размерах будет больше.
UFO landed and left these words here
Only those users with full accounts are able to leave comments. Log in, please.