Search
Write a publication
Pull to refresh
63
0
Глеб Ницман @gleb_l

Инженер

Send message

Подключение дисплея DVD плеера к микроконтроллеру

Reading time6 min
Views59K


Начну с предыстории, зачем же мне все это нужно. Я задался целью сделать себе HTPC компьютер на базе корпуса от DVD плеера Daewoo DV-500, внешне он мне нравится, и свободного места в нем достаточно для установки необходимого железа внутрь. Но помимо всего, я задумал оставить родной индикатор и задействовать его для отображения различной информации. О том, как я подключал дисплей к микроконтроллеру и расшифровывал протокол обмена этого дисплея, пойдет в этой статье.
Читать дальше →

Самодельный велокомпьютер, или как Arduino на улицу попал

Reading time10 min
Views91K

Здравствуй, Хабр! Мне хотелось бы поделиться историей о создании велокопомпьютера своими руками. После покупки велосипеда я решил как-то фиксировать свой прогресс, но мобильные трекеры оказались не самым удобным решением, а из Китая ко мне уже летел заранее заказанный там BOGEER 823, что делало покупку на месте бессмысленной. Поэтому я решил попытаться сделать велокомп своими руками, заодно заложив в него основу для расширения: управление обвесом велосипеда (передний и задний свет, звонок).
Дочитать про создание велокомпьютера

COOLRF: дайджест новостей проекта #2

Reading time4 min
Views33K


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

Что же произошло за два месяца «молчания»? В сегодняшнем «выпуске»: презентация проекта, два новых модуля системы (термостат NB1 и датчик протечки WS1), облачный компилятор для NRF24LE1 и интерфейс управления умным домом.
Читать дальше →

«Не навреди», или Как не стать корпорацией

Reading time4 min
Views38K


Привет, хабровчане! Меня зовут Михаил Завилейский, я — генеральный директор замечательной компании DataArt. Мы занимаемся IT-аутсорсингом вот уже много лет, и все эти годы делаем все возможное, чтобы по духу оставаться все той же группкой профессионалов, собравшейся зарабатывать любимым делом, с которой все когда-то и начиналось. И пусть сейчас нас уже больше тысячи, мы отчаянно стараемся не превратиться в «корпорацию».

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

Откуда в компаниях берутся лишние рутины, бесполезные функции и менеджеры, бесцельные отчеты и ритуалы? В основном, это следствие трех причин:

1. Излишняя систематизация.
2. Инерция и шаблонность.
3. Управленческие ошибки.

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

Миникомпьютер из роутера с OpenWRT: разрабатываем USB-видеокарту

Reading time25 min
Views188K

Добрый день, уважаемые хабровчане. В этом цикле статей мы с вами пройдем достаточно длинный, но весьма интересный путь по превращению обычного роутера в мини-компьютер с LCD-дисплеем. Для этого мы разработаем сначала USB-видеокарту на базе микроконтроллера STM32F103, потом тестовый драйвер, который позволит нам выводить на него графику, и, наконец – полноценный драйвер фреймбуффера, благодаря которому можно будет запустить настоящие графические приложения, такие как x-сервер. Заодно мы научимся включать наш код в дерево исходников OpenWRT, допиливать его ядро и делать прочие полезные вещи.
Ну а в самом конце мы получим результат, который, я надеюсь, вызовет ностальгическую слезу у многих читателей. Я постараюсь излагать материал таким образом, чтобы в конце каждого этапа мы получали осязаемый результат, не дающий угаснуть энтузиазму. Итак, начнем.
Читать дальше →

«Аюша» — контроллер на процессоре 6502

Reading time4 min
Views65K
Arduino, RaspberryPi,… Эти слова всё чаще встречаются в Сети в контексте создания управляющих контроллеров для всякого применения, от умного дома до мигания светодиодами. Несмотря на техническую навороченность, эти железки до ужаса скучные. Посудите сами: подал питание, загрузил программу,… и всё! А что делается внутри кремния, установленного на печатную плату — сие нам не ведомо. Или неинтересно?
Поводом решения проблемы «неинтересности» стала любовь к процессору 6502, на котором собирались первояблоки и еще кое-кем помнимые «Агаты», а также кучка валяющихся без дела микросхем. Схем на этом процессоре в Интернете много, но тех, которые могли бы быть полезными в хозяйстве — практически нет. Результат работы — контроллер «Аюша», уже готовый захватывать управлять миром, помогать нам в любительской лаборатории, схемотехнику которого мы знаем, можем изменять по своим прихотям, и который в большинстве случаев применения заменяет *дуины и аналогичные борды.
image
И как оно там дальше?

Беспроводные коммуникации «умного дома»

Reading time13 min
Views150K
Когда начинающие (или продолжающие) «радиолюбители» наигрались со светодиодами и устали поворачивать сервы в различные положения, некоторые из них начинают прикладывать полученные знания к обычной бытовой сфере.
Как правило, это применение находится в двух областях — автомобиль или дом.
«Тюнить» авто лично мне как-то не интересно, а вот сделать собственное жилье чуточку «умнее» и комфортнее — достойный выбор.

Как же до такого дойти...

Рисуем на экране осциллографа

Reading time3 min
Views75K
Hello HabrМоё первое знакомство с осциллографом состоялось в школьном радиокружке, тогда же я узнал про режим X-Y, при котором отключается развёртка и лучом управляется непосредственно напряжениями, подаваемыми на входы X и Y. Снова эта тема всплыла через несколько лет, в университете, когда на лабораторных работах при помощи фигур Лиссажу мы учились определять кратность частот сигналов. Потом пошёл работать в программисты, и следующую пару десятилетий к бегающему по экрану лучику я не возвращался, пока в конце прошлого года мне не позвонили соседи. Наводя порядок в подвале, они наткнулись на старую коробку с электроникой, которую тут же и подарили мне, в обмен на обязательство самому всё забрать. Так мне достался старый аналоговый осциллограф, минимум 25-летней давности. К удивлению, после замены старого сетевого кабеля он сразу же заработал, и я решил применить свои программистские навыки, чтоб нарисовать что-нибудь на экране.
Читать дальше →

Распознавание номеров: от А до 9

Reading time9 min
Views171K
Уже пару раз на Хабре возникали дискуссии на тему того, как сейчас работает распознавание номеров. Но статьи, где были бы показаны разные подходы к распознаванию номеров, на Хабре пока не было. Так что здесь попробуем разобраться, как все это работает. А потом, если статья вызовет интерес, продолжим и выложим работающую модель, которую можно будет поисследовать.

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

Аппаратный модуль USB в ATXMega. Инструкция по реализации HID

Reading time5 min
Views28K
Аппаратный модуль USB в восьмибитных микроконтроллерах от Atmel появился давно. Но четкого руководства «шаг за шагом» на русском языке для контроллеров семейства XMega я не нашел. Поэтому делюсь своим опытом. Опыт достаточно поверхностный, однако позволяет разработчикам, у которых нет возможности вникать в тонкости USB стека, в сжатые сроки обеспечить взаимодействие контроллера с компьютером по интерфейсу USB. На канале Atmel на YouTube есть ролики как это делается. Однако многим удобнее читать, нежели смотреть видео — для этих людей данный пост. Также, я опишу реализацию на стороне ПК.
Читать дальше →

Макрорельсы на MSP430

Reading time4 min
Views32K
Привет, хабр!
Майские праздники шествуют по стране, а значит фотосезон уже открыт. Кто-то едет в дальние страны, кто-то остаётся поближе к природе где-нибудь в деревне, ну а я снимаю всякую мелочь. Как облегчить себе жизнь при макросъёмке? Об этом я сегодня и решил рассказать.
Читать дальше →

Программирование и JTAG-отладка микроконтроллера Atmega16 на языке C в среде IAR, часть 1

Reading time17 min
Views107K


Введение


По моему мнению, чтобы быстро научится программировать практически любой микроконтроллер, существующий в мире, нужно освоить язык C и пользоваться JTAG-отладкой, конечно, помимо изучения технической документации. Поясню свою мысль. Компиляторы языка C существуют практически для всех существующих микроконтроллеров. Поэтому язык С давно зарекомендовал себя, как кроссплатформенный ассемблер. Его знание освобождает от необходимости изучения ассемблерных команд для каждого нового семейства микроконтроллеров. JTAG-отладка, в свою очередь, обеспечивает не только возможность внутрисхемного поиска ошибок, но и помогает изучать микроконтроллер изнутри. Я думаю, что для всех очевиден тот факт, что при просто программировании без отладки даже простых микроконтроллеров мы подходим к изучению системы, как к черному ящику с входами и выходами. Такой подход, особенно на начальном этапе, затрудняет обучение. C другой стороны JTAG-отлдака позволяет забраться во внутрь, посмотреть как выполняется программа по шагам, посмотреть, что происходит в памяти и регистрах, запустить волнение до точек останова, выполнять дизассемблированный вариант программы. Эта возможность позволяет значительно ускорить обучение.
Читать дальше →

Как посчитать 2+2, используя электромагнитные реле

Reading time5 min
Views59K
В прошлый раз я кратко описал то, как создавался первый модуль моего (будущего) компьютера на электромагнитных реле – арифметико-логическое устройство. Сейчас я хочу немного рассказать о принципах работы этого АЛУ, а точнее, как устроено выполнение логических и арифметических операций.


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

Никто не умеет обрабатывать ошибки

Reading time9 min
Views113K
Из одной книги в другую, из статьи в статью кочует мнение о том, что выражение

try {
   //do something
}
catch(Exception ex) {
}

является плохой практикой. Возврат кодов – также плохая практика. Но становится ли нам, программистам, жить легче с этими знаниями и так уж ли они неоспоримы? И самый забавный вопрос – кто-нибудь в мире умеет грамотно обрабатывать ошибки, возникающие по ходу работы приложения? (под этим я понимаю обработку только тех ошибок, которые имеет смысл обрабатывать и вывод сообщений об ошибках, которые соответствуют действительно произошедшей, которые не вводят пользователя в замешательство, а в идеале и предлагают решение возникшей проблемы).
Подробности под катом

Транзакционная память: история и развитие

Reading time14 min
Views48K

Определение


Параллельное программирование сложно. При использовании систем с общей памятью не обойтись без синхронизации доступа параллельных процессов/потоков к общему ресурсу (памяти). Для этого используются:
  • блокировки (mutex);
  • алгоритмы без блокировки (lockless, lock-free);
  • транзакционная память.


Транзакционная память — технология синхронизации конкурентных потоков. Она упрощает параллельное программирование, выделяя группы инструкций в атомарные транзакции. Конкурентные потоки работают параллельно1, пока не начинают модифицировать один и тот же участок памяти. К примеру, операции добавления узлов в красно-чёрное дерево (анимация в заголовке) способны работать параллельно в нескольких потоках.
Скрытый текст
/* Move item from one list to another */
int move(list *from, list *to) {
    __transaction_atomic {
        node *n = pop(from);
        push(to, n);
    }
}

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

Пятьдесят оттенков инфракрасного

Reading time4 min
Views133K
Не знаю как вам, а мне всегда было интересно: как выглядел бы мир, если бы цветовые каналы RGB в глазу человека были чувствительны к другому диапазону длин волн? Порывшись по сусекам, я обнаружил инфракрасные фонарики (850 и 940нм), комплект ИК фильтров (680-1050нм), черно-белую цифровую камеру (без фильтров вообще), 3 объектива (4мм, 6мм и 50мм) расчитанные на фотография в ИК свете. Что-ж, попробуем посмотреть.

На тему ИК фотографии с удалением ИК фильтра на хабре уже писали — на этот раз у нас будет больше возможностей. Также фотографии с другими длинами волн в каналах RGB (чаще всего с захватом ИК области) — можно увидеть в постах с Марса и о космосе в целом.

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

Arduino управляет промышленным грузовым лифтом

Reading time6 min
Views132K
Дисклеймер: Если вы разбираетесь в электронике, то некоторые технические решения, описанные в этой статье повергнут вас в шок и ужас, а также вызовут непреодолимое желание оторвать автору руки. Я предупредил.
Немного о том как устроены грузовые подъемники и небольшая история создания системы управления для шестиэтажного грузового лифта на базе платы Arduino совместимого контроллера Seeeduino (ATmega 328).image
Довольно много картинок и букв!
Читать дальше →

Очередная умная розетка для очередного умного дома

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



Все остальное под катом. Осторожно! Много картинок.
Читать дальше →

Организация многозадачности в ядре ОС

Reading time22 min
Views81K
Волею судеб мне довелось разбираться с организацией многозадачности, точнее псевдо-многозадачности, поскольку задачи делят время на одном ядре процессора. Я уже несколько раз встречала на хабре статьи по данной теме, и мне показалось, что данная тема сообществу интересна, поэтому я позволю себе внести свою скромную лепту в освещение данного вопроса.
Сначала я попытаюсь рассказать о типах многозадачности (кооперативной и вытесняющей). Затем перейду к принципам планирования для вытесняющей многозадачности. Рассказ рассчитан скорее на начинающего читателя, который хочет разобраться, как работает многозадачность на уровне ядра ОС. Но поскольку все будет сопровождаться примерами, которые можно скомпилировать, запустить, и с которыми при желании можно поиграться, то, возможно, статья заинтересует и тех, кто уже знаком с теорией, но никогда не пробовал планировщик “на вкус”. Кому лень читать, может сразу перейти к изучению кода, поскольку код примеров будет взят из нашего проекта.
Ну, и многопоточные котики для привлечения внимания.

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

Подключение VFD дисплея Futaba GP1183A01B к Raspberry Pi

Reading time3 min
Views40K


Для подключения дисплея 16x2 символов к своей Raspberry Pi я выбрал VFD Futaba GP1183A01B. Чем он хорош? Во-первых, это вымирающий вид, дающий «теплый ламповый» люминесцентный свет приятного зеленого цвета (он правда зеленый, это что-то фотоаппарат врет). Во-вторых, для коммуникации он использует последовательный протокол, а значит его можно подключить всего тремя проводами, без использования каких-либо дополнительных приспособлений, а коммуникация с ним будет идти через /dev/tty. В-третьих, питания ему надо как раз 5 вольт, которые уже есть (и даже хватает, правда не всегда).

Я его подключил два года назад, но статью сел писать сейчас — отвалился от дисплея сигнальный провод и я заодно решил рассказать про этот дисплей. Все-таки двольно легко подключается. И они еще продаются!
Читать дальше →

Information

Rating
10,360-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity