Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Подарок от Гика — делаем кухонный таймер

ГаджетыDIY или Сделай самЭлектроника для начинающих

Выбираем подарок


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

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

Подумав немного, сын решил делать продвинутый кухонный таймер.
Читать дальше →
Всего голосов 25: ↑21 и ↓4 +17
Просмотры13.8K
Комментарии 52

Медиасистема для Toyota Prius (рестайл)

Периферия
Из песочницы


Эта первая (вводная) статья серии о том, как я собираюсь доработать медиасистему автомобиля. Сам проект в процессе, времени, как и у всех — нет, поэтому, дорогие читатели, запаситесь терпением, ибо часто клепать статьи не обещаю.

А началось все с того, что у меня появился Prius.

И первое, что бросилось в глаза — проблемы с обновлением навигации. Следующее — весьма скудные, но местами необходимые возможности устройства с названием «Многофункциональный дисплей» (в простонародье — голова). И это на фоне огромного количества китайских радио с Android на борту, и множеством приятностей. Но их установка на штатное место подразумевает лишение таких «плюшек», как диаграмма распределения энергии и управление климатом.

Родилась идея как-то соединить Android магнитолу с автомобилем более плотно, чем предлагают братья-китайцы. Об этом и статья.
Читать дальше →
Всего голосов 36: ↑36 и ↓0 +36
Просмотры15.6K
Комментарии 47

Целочисленная арифметика. Делим с округлением результата. Часть 1

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

Почему тонкостям вычислений в условиях такой арифметики разработчики прикладных программ не уделяют внимание, вопрос. Рискну только предположить, что, по всей вероятности, сказывается привычка производить вычисления на калькуляторе… Во всяком случае, с завидной регулярностью «имею счастье» лицезреть, как коллеги по цеху наступают на одни и те же грабли. Этот материал нацелен на то, чтобы те самые «грабли» нейтрализовать.
Читать дальше →
Всего голосов 17: ↑9 и ↓8 +1
Просмотры13.2K
Комментарии 139

Разработка TELNET-сервера на базе W5500 и ATMEGA8

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

Один из модулей – W5500 – предназначен для изготовления электронных конструкций, которые будут связаны с Интернет. При этом чаще всего, подразумевается удалённое управление своей конструкцией. Например, это может быть «умный дом», робот и тому подобное. Самый тривиальный проект (кроме Hello world) – удалённое включение светодиодов через web-браузер (рис. 1). Если вместо светодиодов подключить транзисторные ключи и реле, можно коммутировать более мощные нагрузки. Таким образом, по сути, программа (прошивка) данной конструкции представляет собой web-сервер, обрабатывающий http-запросы удалённого пользователя.
Читать дальше →
Всего голосов 28: ↑27 и ↓1 +26
Просмотры9.1K
Комментарии 9

История о создании руки-сурдопереводчика

Разработка под AndroidПрограммирование микроконтроллеровРазработка под Arduino
Из песочницы

Предыстория


В начале этого учебного года (17-18) администрация нашего любимого лицея сказала нам: «В конце года каждый из вас должен защитить индивидуальный проект. У тех, кто не защитит проект, останется академ. задолженность и к гоcам (ГИА-9) они допущены не будут». Получается что-то вроде дипломной работы (в 9 классе, просто супер). Примерно с сентября по декабрь мы с моим другом Кириллом (kkirra) опрделялись, что за проект мы будем делать: хотелось что-то не очень сложное в исполнении, но вместе с тем что-то зрелищное и оригинальное. В конце концов мы определились: решили сделать модель человеческой руки, да еще такую, чтобы под управлением андроид устройства (именно в этом году мы с Кириллом случайно поступили в IT-школу Samsung на базе нашего лицея, поэтому хотели обязательно использовать в проекте полученные знания) она переводила введенный текст в язык жестов.
Читать дальше →
Всего голосов 37: ↑36 и ↓1 +35
Просмотры5.6K
Комментарии 18

Новые возможности FLProg – ESP8266 как контроллер, а не модем

Блог компании FLProgПромышленное программированиеПрограммирование микроконтроллеровИнтернет вещейDIY или Сделай сам


Источник

Добрый день.

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

Если Вы не знакомы с проектом, можно посмотреть его историю в блоге.

Сейчас на сайте программы ведётся тестирование предрелизовой версии с номером 3.1.4. Начиная с версии 3.1, в программе появилась поддержка контроллеров ESP8266 как полноценного контроллера.
Читать дальше →
Всего голосов 43: ↑40 и ↓3 +37
Просмотры26.9K
Комментарии 12

ESP8266 + FLProg – Создание web интерфейса настройки

Блог компании FLProgБеспроводные технологииПромышленное программированиеПрограммирование микроконтроллеровDIY или Сделай сам
Tutorial
Источник

Предыдущий пост, посвящённый связке FLProg и ESP8266, был обзорным, а теперь рассмотрим работу в программе с этим контроллером более подробно.
Осторожно, очень много картинок!
Всего голосов 29: ↑27 и ↓2 +25
Просмотры43.1K
Комментарии 14

ESP8266 + FLProg – Пользовательские системные параметры и синхронизация с сервером точного времени

Блог компании FLProgБеспроводные технологииПромышленное программированиеПрограммирование микроконтроллеровDIY или Сделай сам
Tutorial


В этом уроке мы рассмотрим использование пользовательских системных переменных для связи web интерфейса настройки и схемы проекта. Так же попробуем настроить синхронизацию системных часов контроллера с серверами точного времени.
Осторожно, много картинок
Всего голосов 10: ↑9 и ↓1 +8
Просмотры12.9K
Комментарии 6

Распознавание цвета и уровня освещенности с помощью APDS-9960

Программирование микроконтроллеровDIY или Сделай самЭлектроника для начинающих
Из песочницы

image


Недавно на Habr.com промелькнула статья в которой, среди прочего, сообщалось о датчике освещенности. Некоторое время назад я нашел и приобрел интересную вещь — модуль производства фирмы RobotDyn на основе датчика APDS-9960, который тоже умеет измерять уровень освещенности. Поискав и не сумев отыскать упоминаний сего прибора на данном ресурсе, я решил, что это подходящий повод для написания статьи.


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

Читать дальше →
Всего голосов 16: ↑14 и ↓2 +12
Просмотры10.7K
Комментарии 10

Расширение сетевых возможностей программируемого реле при помощи WI-FI

Беспроводные технологииПромышленное программированиеПрограммирование микроконтроллеровИнтернет вещейDIY или Сделай сам
Из песочницы

С чего все начиналось


Начиналось все с разработки алгоритмов для программируемого реле ПР200, и часто требовалась визуализация или ввод информации с компьютера, для этого необходимо использовать панели оператора или SCADA системы, но не всегда это удобно, да и нужно ли для простых систем. Решение было найдено быстро, и со временем я старался максимально улучшить и облегчить свою работу в этом направлении, что из этого получилось читайте далее.
Речь пойдет о сетевой плате WI-FI и ее возможностях.

image
Читать дальше →
Всего голосов 15: ↑15 и ↓0 +15
Просмотры14.6K
Комментарии 6

Распознавание жестов с помощью APDS-9960

Программирование микроконтроллеровDIY или Сделай самЭлектроника для начинающих
image

Читая комментарии к моей предыдущей статье про APDS-9960, где речь шла про распознавание цвета и уровня освещенности для меня стали очевидными две вещи: 1) тема распознавания жестов интересна и 2) тема эта не раскрыта.

Действительно, если уж взялся за описание APDS-9960, то без рассмотрения жестов описание это выглядит несколько незавершенным. Поэтому я нашел свободное время, чтобы исследовать и эту тему тоже.

В данной статье я предлагаю Вашему вниманию обзор возможностей для распознавания жестов которые предоставляет сенсор APDS-9960.
Читать дальше →
Всего голосов 12: ↑12 и ↓0 +12
Просмотры15.8K
Комментарии 4

К вопросу о Пандах или очередной плач Ярославны

Программирование микроконтроллеров

Пока мы спим, Алени качаются




Заранее приношу свои извинения тем, кого КДПВ завлечет чересчур и соболезнования их близким. Сам-то я переболел этой болезнью в тяжелой форме и приобрел иммунитет навсегда (ну я так думаю...). А пост будет совсем не о WoW, а о стране, символом которой является персонаж, на картинке не представленный, но подразумевающийся.
Читать дальше →
Всего голосов 21: ↑18 и ↓3 +15
Просмотры8.2K
Комментарии 41

STM32H7 — настройка тактирования без HAL

ПрограммированиеCПромышленное программированиеПрограммирование микроконтроллеров
Не так давно компания STM выпустила на рынок очень мощную, по меркам микроконтроллеров, линейку кристаллов STM32H7. Что меня в ней привлекло:

  • повышенная частота ядра до 400 МГц
  • увеличенный объем ОЗУ, до 1 МБ
  • 16 разрядный АЦП
  • pin-to-pin совместимость с серий F7

Отлично подумал я, запаял на плату кристалл STM32H743IIT6 вместо STM32F746IGT6 и начал новый проект в SW4STM32.
И вот что из этого получилось.
Всего голосов 26: ↑20 и ↓6 +14
Просмотры12.8K
Комментарии 54

PVS-Studio: поддержка стандартов кодирования MISRA C и MISRA C++

Блог компании PVS-StudioC++CПрограммирование микроконтроллеров
PVS-Studio, MISRA C, MISRA C++

Начиная с версии 6.27 статический анализатор кода PVS-Studio может классифицировать свои предупреждения согласно стандартам MISRA C и MISRA C++. Благодаря поддержке этих стандартов анализатор стало возможным эффективно использовать для улучшения безопасности, переносимости и надежности программ для встраиваемых систем.
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры5.8K
Комментарии 41

Загрузчик с шифрованием для STM32

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

В процессе работы ставились следующие задачи:

  • Обеспечить обновление прошивки пользователем устройства с SD-карты.
  • Обеспечить контроль целостности прошивки и исключить запись некорректной прошивки в память контроллера.
  • Обеспечить шифрование прошивки для исключения клонирования устройства.

Код писался в Keil uVision с использованием библиотек stdperiph, fatFS и tinyAES. Подопытным микроконтроллером был STM32F103VET6, но код может быть легко адаптирован под другой контроллер STM. Контроль целостности обеспечивается алгоритмом CRC32, контрольная сумма расположена в последних 4 байтах файла с прошивкой.

В статье не описано создание проекта, подключение библиотек, инициализация периферии и прочие тривиальные этапы.
Читать дальше →
Всего голосов 36: ↑33 и ↓3 +30
Просмотры19.3K
Комментарии 52

Ещё один простой процессор на verilog

LuaFPGAПрограммирование микроконтроллеровDIY или Сделай самЭлектроника для начинающих

В статье описан очередной примитивный процессор и ассемблер для него.
Вместо обычных RISC/СISC, процессор не обладает набором инструкций как таковым, есть только единственная инструкция копирования.


Подобные процессоры есть у Maxim серия MAXQ.

Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Просмотры9.5K
Комментарии 14

К вопросу о сдвигах, знаках и быстродействии МК

Программирование микроконтроллеров

«Найди всему причину и ты многое поймешь»


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

Итак, мы начинаем.
Читать дальше →
Всего голосов 39: ↑38 и ↓1 +37
Просмотры7K
Комментарии 36

К вопросу о преобразованиях и прочих операциях

Программирование микроконтроллеров

Синяя Гусеница: А ну нас-то не собьешь. Мы себе сидим, знаем: ждут нас превращения. А что? А ничего! Сидим, курим, ждем…
Алиса- кукла: Чего?
Синяя Гусеница: Чего, чего! Превращений. Дом — в дым, дым- в даму, а дама — в маму. Вот так-то. Не мешайте, не заскакивайте вперед, а то сами еще превратитесь преждевременно в бабочку какую-нибудь.


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

Часть первая — постановка вопроса


Формулируем задачу — нам нужно вывести на консоль (превратить в символьное представление) число с плавающей точкой, не используя опции печати, именно для этой цели предназначенные. Почему мы хотим это сделать самостоятельно —

  1. использование формата %f влечет за собой подключение библиотеки для работы с плавающей точкой и расширенного варианта функции prntf (вернее, делает невозможным использование ее усеченного варианта), что приводит к существенному увеличению размера исполняемого модуля,
  2. стандартное решение требует значительных временных затрат (оно всегда работает с числом двойной точности), что может быть неприемлемым в данной конкретной ситуации,
  3. ну и (last, but not least), это просто интересно.

Читать дальше →
Всего голосов 21: ↑19 и ↓2 +17
Просмотры2.6K
Комментарии 7

Как организовать распределенную разработку, если это невозможно

Я пиарюсь
В статье, несмотря на то, что она, безусловно, чистый PR и рассказывает о нашем новом крутом (мнение автора) продукте, я постарался описать наш полезный опыт.

С какими проблемами сталкивались мы и наши клиенты при организации удаленной разработки ПО для устройств, как их решали, и откуда «растут ноги» у Redd, программно-аппаратного комплекса удаленной разработки ПО для встроенных систем. Почему появилась эта «коробка», и как изменится жизнь (опять же, мнение автора) миллионов разработчиков embedded-систем, устройств интернета вещей, оборудования для авто, самолётов, связи.


Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Просмотры5.3K
Комментарии 25

К вопросу о bitset

ПрограммированиеПрограммирование микроконтроллеров

«Не пора ли, друзья мои, нам замахнуться на Вильяма, понимаете ли, нашего Шекспира? ».




Прочитал недавно пост про кастомную клавиатуру и в очередной раз подумал, что было бы неплохо написать эталонную (то есть такую, которую не стыдно подписать своим именем и выложить на всеобщее обозрение) реализацию клавиатуры. Мысль эта приходит ко мне НЕ в первый раз, но все как то останавливается на первом этапе — считывание исходной информации, ведь хочется сделать этот этап легко настраиваемым, удобным в использовании, универсальным и эффективным, и не нравится предложение «выбирать любые два».

Необходимое примечание — я вижу 4 слоя реализации клавиатуры: 0 — обнаружение события, 1 — считывание данных, 2 — очистка и хранение данных, 3 — формирование сообщений, 4 — перекодировка и прочее. Наиболее перспективным для слоя 1 и связанного с ним слоя 0 мне представляется применение шаблонов Антона Чижова для работы с пинами МК (основанными на классе Локи) и, может быть, когда-нибудь, получившимся результатом будет не стыдно поделится, но точно не сегодня. А сейчас я задумался над слоем 2.
Читать дальше →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры2.8K
Комментарии 11