Notice: Memcache::get(): Server localhost (tcp 11211) failed with: Connection refused (111) in /home/a146/www/we.easyelectronics.ru/engine/lib/external/DklabCache/Zend/Cache/Backend/Memcached.php on line 134
Сообщество EasyElectronics.ru

GP для построения графиков

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


Читать дальше

Системы сборки glink. Записки охотника за кирпичами или немного о сборке софта.

Системы сборки glink. Записки охотника за кирпичами или немного о сборке софта.

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

Я не сторонник универсализации. Универсальные инструменты сложны в понимании, а внесение изменений в них практически невозможно, даже если всем очевидно, что у инструмента есть слабые стороны. Универсальные инструменты популярны и общеприняты, и это как их достоинство, так и недостаток. Вы не сможете просто изменить синтаксис Makefile, убрать скобки из лиспа, изменить раскладку qwerty, отменить существование реестра в Windows, или уменьшить количество опций gcc. Попытка переизобретения универсального инструмента, имеющего недостаток, всегда приводит к появлению универсального инструмента, имеющего недостаток. Нужно понимать это.

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


Читать дальше

Клон дисплея Adafruit, экономим выводы микропроцессорных устройств.

Всем привет! Сегодня я расскажу как мне удалось сэкономить порты своей Raspberry Pi. Давно хотел подключить строчный дисплей к этому одноплатному компьютеру, и даже попробовал это сделать используя библиотеку wiringpi, но уж очень много выводов занимает такое подключение. Первое, что пришло в голову, было использование сдвиговых регистров, но все же я решил посмотреть в сторону шины I2C или SPI. Почитав топики в интернете нашел классное решение — RGB LCD SHIELD KIT W/ 16X2 CHARACTER DISPLAY — ONLY 2 PINS USED!. На плате используется всего два пина для управления SDL и SCK по шине I2C, плюс еще места хватило для пяти тактовых кнопок. В данном устройстве скорость не так сильно важна, поэтому шина I2C мне вполне подошла. «Сердцем» платы является микросхема компании Microchip, расширитель портов MCP23017.



Читать дальше
  • +2
  • 27 декабря 2016, 15:55
  • Jman
  • 2

OLED sh1106

Волны, поднятые Чорной Пятниццой, выбросили на наш гостеприимный берег новый OLED-экранчик.
1.3" с SPI интерфейсом, на контроллере sh1160.



Читать дальше

ОС как библиотека

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

Но и тормозить основной цикл тоже как-то не очень хорошо. На этот случай есть известное решение — ОС.

Но если требуется допилить уже существующий проект с минимальным вмешательством в остальной код?
Вот мне стало интересно сделать мини-ОС, которая подключается к проекту как библиотека. То есть, делаем вызов какой-нибудь функции os_Init() и получаем возможность создавать потоки, не вмешиваясь в работу основного цикла. Он продолжает работать, как будто никакой ОС и нет, просто иногда управление передаётся дополнительным потокам.



Читать дальше

Редактор шрифтов

Часто бывает надо поменять какой-нибудь символ в шрифте, добавить иконку или что-то такое, но квадратики в тетрадочке закрашивать лень, высчитывать номер байта и бита в гигантском массиве тоже… На такой случай и была сделана программка для редактирования шрифтов прямо в .c/.h файлах. Естественно, для тех форматов, которые попадались под руку — а то больно их много всяких.

Открыл файлик font14x8.c прям в папке проекта, поменял растр буковки — и сохранил. Прелесть.


Читать дальше

Подключаем проветриватель Aeropac SN к датчику CO2 AZ-7798 (UART)

AZ-7798
Появились новые версии проветривателей Aeropac с кнопочным управлением и дисплейчиком — Aeropac SN.
Старая доработка работать уже не будет.
Поэтому пришлось разрабатывать новую…
Управлять проветривателем будет веб-сервер на базе esp8266 + nRF24L01 для передачи данных. Он подключен к AZ-7798 через UART.
В проветриватель встраивается Atmel AVR Attiny44A + nRF24L01 для задание оборотов вентилятора.



Читать дальше

Контроллер BLDC выпуск rev2

7 фото
image
Дополз до второй ревизии. Хотелось бы на ней и остановится, но разве может быть, чтобы не было ошибок. Только я пока о них не знаю, потому, что сделано еще мало тестов. Как обычно проверил формы напряжений в силовой части, проверил нагрев на токе 30А, его нет. Не хватает тестов при питании выше 12в, где бы взять. Нужен мотор мощнее, этому 30А уже много, да и проп 12x4.5 наверно уже порвет выше 6000 об./мин. А еще все это дома в комнате, шум, пыль, кот боится и убегает. И это всего то ~200 Вт мощности. Не придется ли мне собирать стенд двигатель-генератор с двумя контроллерами, чтобы экономить энергию а не распылять ее. А может быть рискнуть запитать контроллер от двух литиевых аккумуляторов шуруповерта, получится ~29в.

Показать все 7 фото →

STM8S103 и энкодер

На примере STM8S103F3

Инициализация

TIM1_TimeBaseInit(0, TIM1_COUNTERMODE_UP, 0xFFFF, 0);
TIM1_EncoderInterfaceConfig(TIM1_ENCODERMODE_TI12, TIM1_ICPOLARITY_FALLING, TIM1_ICPOLARITY_FALLING);
TIM1_Cmd(ENABLE);

0xFFFF максимальное значение, до которого будет крутиться энкодер. Далее переходит в ноль и начинается все сначала.

Получение текущего положения

position = TIM1_GetCounter();


Подключение

И не забываем

"CeleronTimer" C library топик-ссылка

Библиотека "Программных Таймеров" (реализация синхронных и асинхронных задержек в прошивке микроконтроллера). Особенности: Кроссплатформенность. Микроконтроллеры любой разрядности. Удобное и функциональное API. Нетребовательная к ресурсам МК. Дискретность отсчёта = 1мс. Достаточна для реализации пользовательского интерфейса (и прикладной логики) в устройствах на микроконтроллере.