Как стать автором
Обновить
22
0

Программист

Отправить сообщение

Разрабатываем крутой GUI на esp8266 с библиотекой uGFX

Время на прочтение10 мин
Количество просмотров56K

В многих проектах для esp8266 я использую TFT экран с тачскрином. В зависимости, от проекта интерфейс может быть простым, например, текстовая консоль, выводящая лог работы приложения или просто график изменения входного сигнала. А в некоторых — сложный GUI, с несколькими экранами, графическими кнопками, строками ввода текста и даже виртуальной клавиатурой.


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


Видео-тизер:



Итак, приступим

Всего голосов 47: ↑46 и ↓1+45
Комментарии8

ARM-микроконтроллеры STM32F. Быстрый старт c STM32-Discovery

Время на прочтение5 мин
Количество просмотров393K
При изучении image любого незнакомого дела, особенно когда речь идет о микроконтроллерах, возникает вопрос — «С чего начать». Ведутся поиски статей по ключевым словам «Getting Started», неизбежно появляется дилема выбора среды разработки и программатора-отладчика. Чтобы помочь вам определиться с ответами на возникшие вопросы, я поделюсь своим опытом в освоении 32-битных контроллеров семейства STM32F от ST Microelectronics.

Выбор контроллера


Вариантов по сути дела было два — STM32F или NXP (LPC1xxx). На микроконтроллеры STM32F мой выбор пал по нескольким причинам.
Читать дальше →
Всего голосов 54: ↑51 и ↓3+48
Комментарии64

Взаимодействие схемы в Proteus'е с внешним миром

Время на прочтение3 мин
Количество просмотров22K

Введение


Думаю многие из тех, кто как-то связан с разработкой электронных устройств, хотя бы раз слышали о программном комплексе Proteus от Labcenter Electronics. Какая бы не была обширная библиотека компонентов, доступных для моделирования, «жизнь» схемы ограничена пределами окна эмулятора, за редким исключением. Уже существует несколько моделей, которые могу, например, записывать какие-то данные в файл или даже представляться системе как USB устройства, но пока они могут решить небольшой класс задач.

Задача


При работе над курсовым проектом, в рамках которого необходимо разработать систему радиоуправления самолётом, возникла необходимость связи модели с ПК. Так как одним из самых простых интерфейсов для связи с ПК является RS-232, он и был выбран(использовался переходник usb-uart).

Так как же отлаживать эту систему на самом начальном этапе, когда ещё не найдены довольно грубые ошибки, которые могут привести к выходу из строя электронных компонентов, и не возиться с частой прошивкой микроконтроллер(ов)?
Читать дальше →
Рейтинг0
Комментарии0

STM32 + EmBlocks — мигаем светодиодами

Время на прочтение3 мин
Количество просмотров67K
Как и просили в комментариях к предыдущей статье о EmBlocks, сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:

Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Заставим их перемигиваться
Всего голосов 24: ↑19 и ↓5+14
Комментарии35

Em::Blocks 1.20

Время на прочтение2 мин
Количество просмотров7.8K
Вышла Em::Blocks 1.20, в которой довольно много вкусностей:
  • Semihosting as library option for EmBlocks Bare-metal ARM
  • Semihosting checkbox in debug interfaces JLink and STlink
  • Live data implemented on memory watch and debugger variable tooltip.
  • New STlinkGDB server with live data and semihosting support
  • Syntax highlight on GNU linker scripts
  • Yagarto toolchain replaced by Generic GCC (Yagarto project is cancelled)
  • C++ library linker option and C++ compiler options added
  • Make file tool entry is replaced by CPP tool entry.
  • Device list updated for JLinks
  • STmicro project wizard is changed so that the debug interfaces are preconfigured at the beginning.
  • Breakpoint on-the-fly is now working
  • Run to main() is working smoothly
  • Pre-compiled headers is supported
  • File manager plugin added to the installation package
  • EnergyMicro project wizard is using the preinstalled header files from EM instead of copying all the files with the wizard.
  • Project wizard can also use ZIP archive as template storage.
  • Bug fix STmicro project wizard
  • Bug fix EnergyMicro project wizard
  • and a lot of minor fixes.

В связи с этим я сделал новую сборку с версией 1.20
Преимущества EmBlocks я описывал ранее.
Быстрый старт с EmBlocks на примере простого blink.
Читать дальше →
Всего голосов 6: ↑3 и ↓30
Комментарии4

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

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

STM32 — правильно используем встроенный flash

Время на прочтение2 мин
Количество просмотров95K
Предисловие

Давно ни для кого не секрет, что STMicroelectronics производит замечательные 32-битные ARM микроконтроллеры STM32. В последнее время они набирают всё большую популярность, и на то есть веские причины, которые в рамках этой статьи я повторять не намерен. Кому интересно — раз, два и три.

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

Именно о таком моменте я и хочу рассказать. А именно — как правильно использовать возможность записи во встроенный flash нашего МК. Добро пожаловать под кат.
Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии36

UART в ATtiny13 или Как вывести данные из МК за 52р

Время на прочтение3 мин
Количество просмотров75K
(цена за 10 шт магазина Чип и Дип на момент публикации)

Я никогда не мог удержаться от покупки разных электронных штук, и однажды у меня стало на 10 очень мелких МК больше. Я люблю ATtiny13 — дешево и сердито. Когда я их покупал, я твердо помнил, что у них «Даже АЦП есть, не то что таймер!» и сильно радовался их малой цене.
Однако, когда я столкнул ATtiny13 с реальной задачей, оказалось что одной очень важной штуки в нем нету, а именно, интерфейсов для передачи данных (разумеется, не считая GPIO). Ну а если GPIO есть, то написать все что угодно можно! Подумал я и пошел гуглить… И красивого готового решения под avr-gcc не нагуглил… О создании (надеюсь) такого решения, данная статья — добро пожаловать под кат.
Читать дальше →
Всего голосов 24: ↑22 и ↓2+20
Комментарии78

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

Время на прочтение15 мин
Количество просмотров371K
Данная статья является первой в планируемом цикле статей по изучению программирования микроконтроллеров. Изучая различные материалы я отметил, что практически все они начинаются с того, что новичку предлагается скачать (или использовать идущую со средой разработки) библиотеку для работы с периферийными устройствами и использовать ее для написания своей первой программы (обычно мигание светодиодом).

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

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

STM32CubeMX — продвинутый генератор проектов для STM32

Время на прочтение3 мин
Количество просмотров104K
Пару недель назад STMicroelectronics выкатили обновление своей программы MicroXplorer, которая позволяла графически настроить инициализацию портов в конкретном STM32 для своих нужд, в том числе и делать ремап портов и визуально видеть что занято\свободно на текущий момент.
Выглядела эта программа следующим образом:
image
И позволяла на выходе получить *.c, *.h файлы в которых содержались функции по инициализации портов в соотвествии с заданными требованиями с использованием Standard Peripheral Library.
Что же решили изменить на этот раз?
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии8

Параллельное программирование с CUDA. Часть 1: Введение

Время на прочтение11 мин
Количество просмотров128K

Еще одна статья о CUDA — зачем?


На Хабре было уже немало хороших статей по CUDA — раз, два и другие. Однако, поиск комбинации «CUDA scan» выдал всего 2 статьи никак не связанные с, собственно, алгоритмом scan на GPU — а это один из самых базовых алгоритмов. Поэтому, вдохновившись только что просмотренным курсом на Udacity — Intro to Parallel Programming, я и решился написать более полную серию статей о CUDA. Сразу скажу, что серия будет основываться именно на этом курсе, и если у вас есть время — намного полезнее будет пройти его.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+23
Комментарии36

Установка загрузчика grub4dos на флешку из linux-консоли

Время на прочтение2 мин
Количество просмотров40K
Описанное мной ниже крайне просто и очевидно, но, я надеюсь, это хоть кому-то поможет сэкономить пару часов времени.

На просторах интернета можно найти много статей по созданию мультизагрузочных флешек. Все они сводятся, в основном, к использованию grub4dos и syslinux. Что может быть проще: скачать, например, grub4dos, распаковать, запустить и нажать пару кнопок? Это работает, только работает под Windows.

А что если у меня linux? Здесь возникает ситуация, когда вопросов на форумах о том, как из linux установить загрузчик в MBR чуть больше, чем ответов. Я, признаюсь, и сам мучился до сегодняшней ночи.
Читать дальше →
Всего голосов 11: ↑7 и ↓4+3
Комментарии4

Файловая система Linux полностью на tmpfs — скорость без компромиссов

Время на прочтение4 мин
Количество просмотров121K

Предыстория


Так сложилось, что уже пять лет мой раздел ntfs с операционной системой Windows располагается на рамдиске. Решено это не аппаратным, а чисто программным способом, доступным на любом ПК с достаточным количеством оперативной памяти: рамдиск создается средствами загрузчика grub4dos, а Windows распознаёт его при помощи драйвера firadisk.

Однако до недавнего времени мне не был известен способ, как реализовать подобное для Linux. Нет, безусловно, существует огромное количество линуксовых LiveCD, загружающихся в память при помощи опций ядра toram, copy2ram и т. д., однако это не совсем то. Во-первых, это сжатые файловые системы, обычно squashfs, поэтому любое чтение с них сопровождается накладными расходами на распаковку, что вредит производительности. Во-вторых, это достаточно сложная каскадная система монтирования (так как squashfs — рид-онли система, а для функционирования ОС нужна запись), а мне хотелось по возможности простого способа, которым можно «вот так взять и превратить» любой установленный на жесткий диск Linux в загружаемый целиком в RAM.

Ниже я опишу такой способ, который был с успехом опробован. Для опытов был взят самый заслуженный дистрибутив Linux — Debian.
Читать дальше →
Всего голосов 83: ↑74 и ↓9+65
Комментарии167

Защита устройств от неправильной подачи полярности питания

Время на прочтение3 мин
Количество просмотров212K
image
При проектировании промышленных приборов, к которым предъявляются повышенные требования по надёжности, я не раз сталкивался с проблемой защиты устройства от неправильной полярности подключения питания. Даже опытные монтажники порой умудряются перепутать плюс с минусом. Наверно ещё более остро подобные проблемы стоят в ходе экспериментов начинающих электронщиков. В данной статье рассмотрим простейшие решения проблемы — как традиционные так и редко применяемые на практике методы защиты.
Читать дальше →
Всего голосов 41: ↑41 и ↓0+41
Комментарии71

Прототип. От идеи до опытной партии. Литье в силикон

Время на прочтение2 мин
Количество просмотров182K
В прошлой статье я описал мой путь по созданию опытной партии изделия, в ней я литье в силикон отдал на аутсорс. Пока я ждал выполнения моего заказа, потихоньку сам начал осваивать это ремесло. Статья будет полезна тем, у кого допустим есть плата какого-нибудь девайса, но нету красивого корпуса, 3д-печать не подходит по характеристикам, а делать сразу промышленную пресс-форму очень дорого.


Читать дальше →
Всего голосов 168: ↑166 и ↓2+164
Комментарии75

Лекции Технопарка. 1 семестр. С/С++

Время на прочтение6 мин
Количество просмотров110K
Мы продолжаем наши еженедельные публикации учебных материалов Технопарка. Предыдущие лекции были посвящены web-технологиям в целом, а также алгоритмам и структурам данных. В третьем блоке лекций рассказывается о языках С и С++.

Лекция 1. Язык С. Основы организации и использования оперативной и сверхоперативной памяти


Лекция начинается с введения в язык С: рассказывается об истории его появления, особенностях, преимуществах и недостатках, о сферах применения. Описываются основы препроцессорной обработки, рассматриваются вопросы управления памятью (модели управления памятью, области видимости объектов хранения) и производительность программ на языке С. Обсуждается связывание объектов хранения и их инициализация. Затем рассказывается о классах памяти в языке С. Следующая часть лекции посвящена проблематике указателей, а также работе с одномерными массивами. В заключение рассматривается стандарт POSIX и вопросы переносимости.


Читать дальше →
Всего голосов 72: ↑70 и ↓2+68
Комментарии83

Assembler вместе с C++ в Visual Studio 2013

Время на прочтение4 мин
Количество просмотров107K
Идея этой статьи отнюдь не новая, но, поскольку мне пришлось потратить два дня на разбор всех ошибок компиляции и линковки, а также поиск ответов на свои вопросы, решил, что читатели Хабра заслуживают экономии времени. Тех, кто желает быстро узнать, как использовать одновременно *.asm и *.cpp файлы в проекте, как вызывать методы C++ из ассемблера и наоборот, прошу пожаловать под кат.
Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии29

Обмен данными с использованием MPI. Работа с библиотекой MPI на примере Intel® MPI Library

Время на прочтение9 мин
Количество просмотров36K


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

Мы приведем краткое описание того, как организован обмен данными в параллельных приложениях на основе MPI, а также ссылки на внешние источники с более подробным описанием. В практической части вы найдете описание всех этапов разработки демонстрационного MPI-приложения «Hello World», начиная с настройки необходимого окружения и заканчивая запуском самой программы.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии9

Штампуем окна: автоматизированное развёртывание виртуальных машин Windows на Hyper-V при помощи Vagrant (часть 3)

Время на прочтение8 мин
Количество просмотров17K
В предыдущих (раз, два) публикациях я рассказал, как подготовить гипервизор и бокс для последующего автоматизированного разворачивания. В последней части этой трилогии я хотел бы раскрыть тему, собственно, деплоя и провижионинга подготовленных боксов. Также здесь я подведу итоги проделанного и в конце вы можете найти все ссылки по теме.
Читать дальше →
Всего голосов 17: ↑17 и ↓0+17
Комментарии0

Паяльная станция своими руками на базе Arduino

Время на прочтение6 мин
Количество просмотров286K
Всем привет! Как-то я затронул тему паяльной станции на Arduino и сразу меня завалили вопросами (как/где/когда). Учитывая массовость запросов, я решил написать обзор простой паяльной станции (только паяльник) на базе Arduino.
Читать дальше →
Всего голосов 52: ↑45 и ↓7+38
Комментарии73
1

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность