Pull to refresh
-1
0
Send message

Быстрый старт с ARM Mbed: разработка на современных микроконтроллерах для начинающих

Reading time17 min
Views73K
Привет, Хабр.

Традиционным уникальным преимуществом платформы Arduino называлось (да и сейчас иногда называется, хотя это уже неверно — и мы поговорим, почему) опускание порога входа в микроконтроллерную разработку до уровня базовых знаний C/C++ и электроники в маштабе «подключить светодиод в нужной полярности».

Спросите примерно у любого активного сторонника Arduino — и вам быстро объяснят, что можно, конечно, писать под STM32 или nRF52, но выгоды в том реальной никакой, зато вас ждут бессонные ночи над сотнями страниц даташитов и бесконечные простыни функций с длинными непонятными названиями.

Заслуги Arduino в снижении порога вхождения действительно трудно переоценить — эта платформа появилась на свет в середине нулевых годов, а после 2010 завоевала серьёзную популярность среди любителей. Особых альтернатив на тот момент ей не было — процессоры на ядрах Cortex-M только появились, по сравнению с AVR они были довольно сложны даже для профессиональных разработчиков, а отладочные платы у большинства вендоров стоили от сотни долларов и выше (и в общем в индустрии ценник за отладку на 5-долларовом контроллере в $500 никого сильно не удивлял).

Однако большая проблема Arduino в том, что её развитие за минувшие 10+ лет более всего напоминает некоторые модели АвтоВАЗа:


Так как дальше я планирую длинное вступление, то сейчас, чтобы вы представляли, в чём будет заключаться практическая часть, я приведу полный текст программы, включающий инициализацию процессора STM32 и мигание светодиодом. Программа написана для ОС ARM Mbed:

#include "mbed.h"
DigitalOut myled(LED1);

int main() {
    while(1) {
        myled = 1; // LED is ON
        wait(0.2); // 200 ms
        myled = 0; // LED is OFF
        wait(1.0); // 1 sec
    }
}

Похоже ли это на высокий входной порог? На функции с непонятными названиями? Бессонные ночи над даташитами? Нет? Ладно, давайте не будем забегать вперёд.
Читать дальше →
Total votes 114: ↑98 and ↓16+82
Comments463

Калибровка камеры Intel RealSense d435 с помощью OpenCV2 и ROS

Reading time3 min
Views6.6K

Всем привет!


Хочу поделиться опытом работы с камерой Intel RealSense, модель d435. Как известно, многие алгоритмы машинного зрения требуют предварительной калибровки камеры. Так уж получилось, что мы на нашем проекте используем ROS для сборки отдельных компонентов автоматизированной интеллигентной системы. Однако, проштудировав русскоязычный интернет, я не обнаружил каких-либо толковых туториалов на эту тему. Данная публикация призвана восполнить этот пробел.

Читать дальше →
Total votes 14: ↑11 and ↓3+8
Comments6

История создания домашнего облака. Часть 4. Актуализация 2018 – Debian 9 и Nextcloud 13

Reading time15 min
Views28K
С момента публикации трёх прошлых частей я получил несколько отзывов от людей, которые, никогда не пользовавшись linux, по предложенным инструкциям смогли успешно «поднять» свои домашние сервера. Я не собирался делать дополнение по обновлению софта, предполагая, что есть хорошая база, отталкиваясь от которой каждый сможет вполне самостоятельно, при наличии времени и желания, актуализировать свой веб-сервер и облачный движок. Однако, после того как я занялся этим сам, как всегда появились некоторые моменты, освещение которых может помочь новичку сэкономить время. И я решил написать эту «дифференциальную» часть, отступив от принципа «всё в одной статье». Поэтому, в первую очередь, этот материал будет интересен тем, кто достаточно подробно ознакомился с тремя предыдущими статьями и/или положил их в закладки. Использование нового программного обеспечения делает неверными некоторые ранее изложенные инструкции и четвёртая часть будет содержать только обновление подобной информации.

Если изложить кратко, то новый сервер мы строим на Debian 9 вместо 8, SQL меняем на открытую MariaDB, а PHP 5 на более быстрый PHP 7. Движок Nextcloud обновится с версии 11 до 13. Так же я упомяну как немного походим по граблям — сначала вдоль, а потом и поперёк.


Читать дальше →
Total votes 15: ↑15 and ↓0+15
Comments41

Создание и хостинг телеграм бота. От А до Я

Reading time15 min
Views173K
Привет, хабрчане! Какой бы заезженной не была тема создания телеграм бота на python3, я не нашёл инструкций, где показан путь от первой строчки кода до деплоинга бота (по крайней мере все методы, что я видел, немного устарели). В этой статье я хочу показать процесс создания бота от написания BotFather-у до деплоинга бота на Heroku.

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

P.S. Пишите если нужна статья по созданию более сложного бота, т.е. с вебхуками, БД с настройками юзеров и т.д.


Для начала стоит определиться, что же будет делать наш бот. Я решил написать банального простого бота, кторый будет парсить и выдавать нам заголовки с Хабра.
И так, начнём же.
Читать дальше →
Total votes 26: ↑21 and ↓5+16
Comments37

Справочник по антеннам для радаров

Reading time15 min
Views107K
Статья на перевод предложена alessandro893. Материал взят с обширного справочного сайта, описывающего, в частности, принципы работы и устройство радаров.

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

image
Слева – изотропная антенна, справа – направленная

Дипольная антенна





over9000 картинок
Total votes 63: ↑60 and ↓3+57
Comments23

Дешевая STM32 плата + Arduino IDE UPD 17.08.2017

Reading time7 min
Views369K
image

Хотите прокачать ваши Arduino проекты? Заставить их работать быстрее, измерения и регулировку сделать точнее, ну и добавить баги(с новыми девайсами они неизбежны). Тогда эта статья для Вас.

Arduino тема всё больше захватывает умы человечества, но рано или поздно мы встречаемся с тем, что нам чего-то не хватает, например бюджета/размеров/пиновпортов/разрядности/производительности… Как говорил один мудрый человек — «Кто хочет, тот ищет возможности, кто не хочет — ищет причины».

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

Краткое изложение данной статьи в видео формате:


Тыц
Total votes 24: ↑22 and ↓2+20
Comments102

Устройство и работа портов ввода-вывода микроконтроллеров AVR. Часть 1

Reading time4 min
Views168K
Работа портов ввода/вывода

Изучив данный материал, в котором все очень детально и подробно описано с большим количеством примеров, вы сможете легко овладеть и программировать порты ввода/вывода микроконтроллеров AVR.



Пример будем рассматривать на микроконтроллере ATMega8.

Программу писать будем в Atmel Studio 6.0.

Эмулировать схему будем в Proteus 7 Professional.

С внешним миром микроконтроллер общается через порты ввода вывода. Схема порта ввода вывода указана в даташите:

image

Но новичку разобраться довольно со схемой довольно сложно. Поэтому схему упростим:

image

Pxn – имя ножки порта микроконтроллера, где x буква порта (A, B, C или D), n номер разряда порта (7… 0).
Cpin — паразитная емкость порта.
VCC — напряжение питания.
Rpu — отключаемый нагрузочный верхний резистор (pull-up).
PORTxn — бит n регистра PORTx.
PINxn — бит n регистра PINx.
DDRxn — бит n регистра DDRx.
Читать дальше →
Total votes 47: ↑27 and ↓20+7
Comments33

Фильтр Маджвика

Reading time38 min
Views131K

Предисловие от переводчика


Здесь представлен один из новейших методов расчёта ориентации в пространстве по показаниям датчиков акселерометра, гироскопа и компаса — фильтр Маджвика, который, по словам автора, даёт результат лучший, чем применение фильтра на основе метода Калмана в результатах и производительности. Автор — Себастьян Маджвик (его интернет-магазин). Метод описан в статье на английском. Данная работа защищена в Университете г. Бристоля Перевода я не нашёл. Переводчик из меня так себе, особенно таких сложных текстов. Но нам же интересно, что за метод?

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


Читать дальше →
Total votes 66: ↑64 and ↓2+62
Comments17

Дневники разработчиков: собираем профессионального подводного робота

Reading time7 min
Views36K


15 мая на Робостанции прошел этап отбора к всемирной олимпиаде по робототехникие для школьников. Кроме того в мире существует еще ряд подобных соревнований для различных роботов. Об одном из них и пойдет речь.

MATE ROV пожалуй одно из сложнейших мировых соревнований по робототехнике – оно спонсируется NASA и посвящено подводным роботам, создавать которые невероятно трудно. Например сейчас в кинотеатрах выходить фильм «Жизнь Робота» — он посвящен истории победителей этого чемпионата 2004 года.

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

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


Читать дальше →
Total votes 29: ↑27 and ↓2+25
Comments14

Отладчик за копейки: делаем ST-Link из Maple Mini

Reading time2 min
Views75K


Начав свое знакомство с STM32 с китайских клонов Leaf Maple Mini (потому что самый дешевый вариант, 4$), я столкнулся с неудобством. Поскольку на Maple IDE рассчитывать не стоит, значит, приходится работать с «голым» STM32. А раз ST-Link у меня нет, заливать программу я могу только по UART, что неудобно (и нет возможности отладки).

Но хабраюзер imwode ровно через 9 часов после моей публикации написал ответный материал, из которого я узнал прекрасное: отладчик ST-Link основан на том же микроконтроллере STM. При этом, прошивка отладчика умельцами вытащена и готова к загрузке на неродные устройства. Maple Mini подходит идеально: ничего лишнего, USB распаян, надо только несколько резисторов подключить.

Читать дальше →
Total votes 21: ↑20 and ↓1+19
Comments7

STM32F1xx — лечимся от ардуинозависимости вместе

Reading time14 min
Views265K
Добрый день, уважаемые хабровчане!
После длительного перерыва, связанного с защитой дипломного проекта в Бауманке, я снова вернулся к написанию статей. Так как с недавнего времени я занялся 32-битными микроконтроллерами серии STM32F на ядре ARM Cortex-M3, об этом и пойдет мой рассказ. Мне статья поможет систематизировать знания об этих замечательных микроконтроллерах, а вам, я надеюсь, послужит одной из ступеней на пути к их использованию и развеет страхи и сомнения, которые всегда возникают после уютных 8-битных AVRок при упоминании страшных 32-битных монстров.
Итак, почему Cortex, чем же плохи АVR?
Читать дальше →
Total votes 159: ↑157 and ↓2+155
Comments65

Устройство и работа портов ввода-вывода микроконтроллеров AVR. Часть 2

Reading time3 min
Views38K
Подключение светодиода к линии порта ввода/вывода

Изучив данный материал, в котором все очень детально и подробно описано с большим количеством примеров, вы сможете легко овладеть и программировать порты ввода/вывода микроконтроллеров AVR.


Пример будем рассматривать на микроконтроллере ATMega8.

Программу писать будем в Atmel Studio 6.0.

Эмулировать схему будем в Proteus 7 Professional.
Читать дальше →
Total votes 13: ↑6 and ↓7-1
Comments8

Начинаем изучать Cortex-M на примере STM32

Reading time15 min
Views370K
Данная статья является первой в планируемом цикле статей по изучению программирования микроконтроллеров. Изучая различные материалы я отметил, что практически все они начинаются с того, что новичку предлагается скачать (или использовать идущую со средой разработки) библиотеку для работы с периферийными устройствами и использовать ее для написания своей первой программы (обычно мигание светодиодом).

Меня это сильно удивило. Если верить данным статьям, для программирования не обязательно даже читать документацию к программируемому контроллеру. Меня же учили премудростям «железного программирования» совершенно иначе.

В этой статье, путь от фразы «Да, я хочу попробовать!» до радостного подмигивания светодиода, будет значительно длиннее чем у других авторов. Я постараюсь раскрыть аспекты программирования микроконтроллеров, которые прячутся за использованием библиотечных функций и готовых примеров.
Если вы намерены серьезно изучать программирование микроконтроллеров данная статья для вас. Возможно, она может заинтересовать и тех, кто вдоволь наигрался с Arduino и хочет получить в свои руки все аппаратные возможности железа.
Если вас не пугает написанное выше - прошу под кат
Total votes 38: ↑31 and ↓7+24
Comments39

STM32 Nucleo. Подключаем TFT LCD на базе чипа ILI9341

Reading time3 min
Views88K
image
На Хабре уже есть две публикации о платформе STM32 Nucleo и разработке в среде mbed.org. Это «обзор платформы» и «быстрый старт». Я же в данной публикации расскажу, как быстро подключить недорогой модуль TFT LCD на базе чипа ILI9341. Статья будет полезна и любителям Arduino, желающих перейти на более современные и мощные микроконтроллеры, используя уже накопленные знания.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments38

FAQ по программированию под Android от новичка, и для новичков

Reading time16 min
Views158K
Предисловие к FAQ.

Программирование является моим хобби уже давно (правда на других языках и платформах), но до андроида руки дотянулись совсем недавно. Прошло несколько этапов, прежде чем я добрался до написания программ.
Сначала была пара месяцев посвященных Java, на сайте с «Сгибателем».
После, долгие попытки подружится с Eclipse, закончившиеся побегом на Android Studio.
На данный момент выпущено 7 программ и две находятся в разработке.
Данная подборка возникла как попытка структурирования и оптимизации полученной в процессе информации.
Заранее извиняюсь за возможно некорректную терминологию – так как практикую обучение через создание, и в теоретической части есть пробелы.

Надеюсь, что приведенные примеры окажутся полезными.
Читать дальше →
Total votes 114: ↑98 and ↓16+82
Comments23

ЛУТ на виниле или домашняя Arduino Mini

Reading time4 min
Views227K
Здравствуйте, изначально статья задумывалась как обзор плоттерного винила Oracal 651 в качестве замены фотобумаги для переноса тонера. Однако, в качестве примера я выбрал самодельную версию Arduino Mini (ATMega8) и решил довести статью до логического завершения.



Винил выгодно отличается от фотобумаги и разного рода подложек — процесс изготовления платы становится менее трудоемким и более экономичным, о самом ЛУТ можно почитать здесь.
Внимание, много фотографий!
Total votes 112: ↑109 and ↓3+106
Comments82

Делаем видео-чат в веб-браузере с минимумом трудозатрат

Reading time5 min
Views44K
Для реализации функционала видео-чата в браузере существует две наиболее подходящие из технологии — WebRTC и Flash. Каждая из технологий обладает рядом своих особенностей, например, во Flash можно использовать видео кодеки H.264 или Sorenson, а в WebRTC на текущий момент доступен VP8, что делает два этих подхода плохо совместимыми друг с другом (перекодирование видео на лету — это очень затратная операция), к тому же видео-чат лучше делать peer-to-peer по возможности, стоит ли говорить, что соединить Flash и WebRTC напрямую не выйдет. В нашем примере мы рассмотрим вариант видео-звонка звонка из WebRTC в WebRTC, с помощью платформы VoxImplant. В целом, можно сделать выбор конкретного варианта, вплоть до динамического выбора технологии в зависимости от того кому звоним. Подробности, как обычно, под катом.
Читать дальше →
Total votes 23: ↑20 and ↓3+17
Comments17

Led Romb

Reading time5 min
Views105K
Дело было вечером, делать было нечего. (с)



Дело было года 3 назад. Случайно наткнулся на одно видео LED cube 8x8x8 demo и скажу честно, оно меня впечатлило. У меня на тот момент уже давно чесались руки что-нибудь сотворить «этакое». Тогда я ещё не знал что такое Arduino, да и вообще имел смутные понятия даже как правильно подключить светодиод. Набравшись храбрости, я отправился на просторы Интернета, где достаточно быстро нашёл идеи и схемы как собирают подобные кубики, и магазин, где можно купить компоненты. Выбрал кубик 4х4х4 как оптимальный вариант для первого опыта.

Читать дальше →
Total votes 100: ↑89 and ↓11+78
Comments37

Расширение возможностей стандартных робототехнических конструкторов с использованием LabView

Reading time12 min
Views22K


И снова здравствуйте, уважаемые хабравчане! Вы собрали уже все возможные модели из вашего конструктора? Вам надоело «ездить по линии», «управлять с пульта» и «определять расстояние до объекта»? Вы уже забыли, когда последний раз доставали ваш конструктор с дальней полки? Пора смахнуть с него пыль и вдохнуть в него новую жизнь! Как это сделать? Читаем под катом!
Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments15

Information

Rating
Does not participate
Location
Россия
Registered
Activity