Pull to refresh
25
0
Пётр @artp

User

Send message

Подсказки Природы — облачный ночник

Reading time4 min
Views17K
image


Здравствуй, сообщество!

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

За основу взял дешёвый микроконтроллер ATmega8-16PU. Код написан на С без Ардуино и реализует несколько световых эффектов с управлением от общей освещённости пространства и с управлением звуком.

Подробности и фотки — далее…
Читать дальше →

Чтение на выходные: материалы о настройке аудиотехники и проектировании акустических систем

Reading time5 min
Views11K
Это — дайджест нашего «Мира Hi-Fi». Он расскажето теории и практике создания аудиосистем. Из материалов вы узнаете, как организовать акустическую систему дома (или даже на улице), как выбрать наушники или аудиоплеер, и что из себя представляет «ПК меломана».

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

Создание GIF-анимации с помощью OpenCV

Reading time16 min
Views13K


Из этого туториала вы узнаете, как создавать анимированные GIF-файлы с помощью OpenCV, Python и ImageMagick. Затем объедините эти методы, чтобы создать генератор мемов с OpenCV!

Нам всем нужно время от времени посмеяться. И, возможно, лучший способ найти лулзы — это мемы. Некоторые из моих любимых:

  • Лягушка Кермит: «Но это не мое дело»
  • Сварливый кот
  • Эпик фейл
  • Хороший парень Грег

Но лично для меня ни один из этих мемов не сравнится с мемом ”Deal With It" («Смирись с этим» или «Разбирайся сам»), пример которого приведён в начале статьи.
Читать дальше →

Как сделать расширение на PHP7 сложнее, чем «hello, world», и не стать красноглазиком. Часть 1

Reading time9 min
Views12K

Зачем?


Я пишу эту статью для того, чтобы путь, который у меня занял в общей сложности не меньше года, читатель смог пройти за пару часов. Как показал мой личный опыт, просто программировать на Си несколько легче, чем заставить работать серьезное расширение для PHP. Здесь я максимально подробно расскажу вам о том, как сделать расширение на примере библиотеки libtrie, реализующей префиксное дерево, более известное как trie. Я буду писать и параллельно выполнять описываемые действия на свежеустановленной системе Lubuntu 18.04.

Начнем.
Читать дальше →

Загрузка ядра Linux. Часть 1

Reading time12 min
Views63K
От загрузчика к ядру

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

Мне очень интересно разобраться, как работают низкоуровневые штуки: как программы запускаются на моём компьютере, как они расположены в памяти, как ядро управляет процессами и памятью, как работает сетевой стек на низком уровне и многое другое. Итак, я решил написать еще одну серию статей о ядре Linux для архитектуры x86_64.

Обратите внимание, что я не профессиональный разработчик ядра и не пишу код ядра на работе. Это всего лишь хобби. Мне просто нравятся низкоуровневые вещи и интересно в них копаться. Поэтому если заметите какую-то путаницу или появилятся вопросы/замечания, свяжитесь со мной в твиттере, по почте или просто создайте тикет. Буду благодарен.
Читать дальше →

Сверлильный станок из 3D-принтера и конвертер карты сверления PCAD в G-Code

Reading time16 min
Views8.5K
Здравствуйте, уважаемые хаброжители.

Сегодня я хочу поделиться небольшой наработкой, призванной конвертировать PCAD-овские карты сверления в G-код. Гибко, просто и open-source. Правда, прости-осспади, на Qt. Писать на нем, конечно, приятно, но вот деплоить и собирать чужие коды…
Читать дальше →

Вся правда об ОСРВ. Статья #17. Группы флагов событий: введение и базовые службы

Reading time10 min
Views1.4K


Группы флагов событий уже упоминались ранее в одной из предыдущих статей (#5). В Nucleus SE они похожи на сигналы, но являются более гибкими. Они предоставляют малозатратный и гибкий способ передачи простых сообщений между задачами.
Читать дальше →

Изучаем netfilter: пишем свой match-модуль на базе xt_string для поиска нескольких шаблонов

Reading time11 min
Views9.8K

Введение


Недавно заметил, что на хабре мало информации по разработке модулей ядра. Всё что я нашёл:


Всегда удивляло то, что люди, более-менее знающие C, боятся и избегают даже читать ядерный код, как будто он на 60% состоит из ассемблера (который на самом деле тоже не такой уж сложный). Собственно я планирую написать серию статей, посвящённую разработке или доработке существующих модулей netfilter и iptables.

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

Что будем делать


Как сказано в названии статьи — мы напишем простой модуль iptables на базе xt_string. Xt_string — это модуль netfilter, умеет искать последовательность байт в пакете. Однако ему, на мой взгляд, не хватает способности осуществлять поиск нескольких последовательностей байт в заданном порядке. Ну, а так как лицензия GPL, то что мешает ему эту возможность придать?
И таки придаём!

Защита от DoS/DDoS атак с помощью фильтрации по номеру автономной системы (ASN)

Reading time9 min
Views32K

Введение


В свете новогодних праздников с их неотъемлемым атрибутом — повышенной активностью DoS/DDoS атак хотелось бы поднять один довольно редко используемый (но при этом довольно эффективный) способ отражения атак — блокировка на основании принадлежности блоков IP адресов определенному провайдеру/Дата Центру.

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

Следование линии на основе OpenCV

Reading time4 min
Views17K
Сейчас очень популярны курсы по созданию автопилотов для машин. Вот эта нано-степень от Udacity — самый наверное известный вариант.

Много людей по нему учатся и выкладывают свои решения. Я тоже не смог пройти мимо и увлекся.

Разница в том, что курс предполагает разработку алгоритма на основе предоставляемых данных, а я делал все для своего робота.
Читать дальше →

Как я делал передачу звука на Raspberry Pi

Reading time2 min
Views42K
Привет!

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

Шаг 0. Подготовка
Читать дальше →

Всего каких-то $4950 и вы пилот реактивного ранца

Reading time3 min
Views41K
«На Луне людей побывало больше, чем полетало на реактивном ранце»

image

Прошло всего три года с тех пор, как Дэвид Мейман впервые облетел вокруг статуи Свободы на своем джетпаке JB-9, таким образом официально положив начало эпохи реактивных ранцев. Три года! Они могут показаться вечностью в эру быстрого технологического прогресса, когда похоже, что следующая итерация (версия) любого коммерческого продукта появляется на свет всего через 6 месяцев.

И дела действительно идут быстро, ведь на многочисленных публичных выступлениях Дэвид Мэйман поднимается в воздух уже на глубоко-модернизированной шеститурбинной версии ранца JB-11, в перерывах между полетами работая над дизайном летающей машины. Но, хотя Jetpack Aviation фактически готова продавать безрассудным храбрецам JB-10, модель способную развивать «дикие» 150 миль в час (240 км/час) и поднимать пилота на 18 000 футов (5400 метров), компания будет придерживаться более осторожной стратегии, до тех пор, пока не разработает систему безопасности с «защитой от дурака» в качестве последнего рубежа, которая при катастрофическом отказе сможет взять на себя управление.

Это не значит, у вас или у меня нет шансов прокатится на джетпаке. Были времена, когда только Дэвид Мэймен был единственным, кто вообще летал на JB, но вскоре он начал обучать других сотрудников своей компании, а затем даже одного совершенно постороннего человека, который выиграл конкурс. И вот теперь Мейман открывает свое учебное заведение для широкой публики

Колонки RADIOTEHNIKA S-30 от старых к новым

Reading time2 min
Views59K
image

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

Эта история началась в старом, темном и страшном подвале. В котором я обнаружил
древние советские колонки RADIOTEHNKIKA S-30. Которые мне достались от моего деда.

Выбрасывать их было жалко, поэтому я решил их восстановить. Сделать возможность прослушивания музыки с телефона и тд. тп. Кому интересно, добро пожаловать под кат.

ВНИМАНИЕ!!! Много фото и видео.
Читать дальше →

Мой «Hello World!» на FPGA или очередная версия UART

Reading time15 min
Views26K
Мой Hello World! на FPGA или очередная версия UART

Наконец-то у меня дошли руки до изучения ПЛИС. А то как-то неправильно получается: драйвера на железо под Linux пишу, микроконтроллеры программирую, схемы читаю (и немного проектирую), надо расти дальше.

Так как мигать светодиодами мне показалось не интересно, то решил сделать простенькую вещь. А именно написать модули приемника и передатчика для UART, объединить их внутри FPGA (заодно понять как использовать IP Core), ну и протестировать это все на реальном железе.
Читать дальше →

Установка FreeSWITCH 1.8 на Debian 9 (Raspbian Stretch, базовый образ системы «Умного дома» MajorDoMo на Rasbperri Pi)

Reading time8 min
Views16K
Продолжаю небольшой цикл статей посвященному созданию «Умного дома» и пошаговых инструкций для самостоятельной установки/настройки.

Но сейчас речь пойдет в основном про Freeswitch и IP телефонию.

В августе разработчик открытой VoIP платформы IP телефонии FreeSWITCH, компания Signalwire опубликовал публичный релиз новой версии ПО – 1.8. (на данный момент уже выпущена 1.8.2).
В связи с выходом этой версии платформы IP телефонии Freesfitch 1.8, появилось решение установить его у себя на Raspberry 3 с установленным базовым образом системы умного дома MajorDoMo, под операционной системой Raspbian (Debian 9 Stretch) с некоторыми элементами автоматизации дома.



Под катом, описание установки платформы VoIP из исходных кодов с небольшими заметками и пояснениями.
Читать дальше →

Написание собственной работоспособной ОС за полгода

Reading time4 min
Views90K
image

Предыстория


Здравствуйте! Всех категорически приветствую, сегодня хотел бы рассказать Вам о своём опыте написание работоспособной ОС под архитектуру x86.

Как-то весенней ночью у меня родилась гениальная идея — попробовать себя в написании собственной ОС, которая может позволить запускать программы, работать с устройствами, да и в общем выжимать всю мощь из Intel'овской архитектуры в своих нуждах: к примеру, для своей фабрики или чего-либо иного. Моей целью было и есть написание такой ОС, которая могла бы позволить максимальную производительность для каких-то конкретных задач, не тратя процессорное время на всяческие излишества. В основном я преследую лишь спортивный интерес, получение опыта для себя в системном программировании и написания драйверов для устройств, которые используются повсеместно. Что из этого вышло — решать вам, сразу говорю, что не надо писать комментарии про создание собственного дистрибутива линукса, и преследовал интерес написать всё «From scratch» — с нуля, дабы хорошо погрузиться в тему ОСдева. Сразу хочу выразить огромную благодарность Бенджамину Лунту и форуму OSDev, так же как их Вики. Бен помог мне разобраться с EHCI, что несомненно внесло огромный вклад в мою ОС — USB устройства, они везде! Так же передо мной стояла задача создать собственную архитектуру, удобную мне, не исключая использование стандартов ELF-файлов.
Читать дальше →

Это электробус: что мы знаем о транспорте с батарейкой

Reading time8 min
Views33K


После появления первого электротранспорта в XIX веке и второго всплеска популярности в 70-х годах XX века электробусы вновь вышли на улицы городов. О том, что повлияло на их развитие и как изменились технологии: от создания ёмких аккумуляторов до развития зарядной инфраструктуры — можно узнать в нашей новой статье.
Читать дальше →

Метеостанция на Arduino от А до Я. Часть 5

Reading time10 min
Views22K

Окончание. Предыдущая часть.


Оглавление:



Заоконный датчик. Программное обеспечение


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


Напомню, что сервер — это центральный, домашний блок, который может общаться с интернет через WiFi, а клиент — это удалённый, заоконный датчик, который передаёт данные на сервер по радиоканалу.


Исходный код как для сервера, так и для клиента находится здесь.
Исходные тексты снабжены подробными комментариями.


На клиенте почти ничего настраивать не надо.

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

Метеостанция на Arduino от А до Я. Часть 4

Reading time3 min
Views26K

Продолжение. Предыдущая часть.
Оглавление:



Заоконный датчик. Железо


Надо сразу признать, что первая версия заоконного (удаленного) датчика получилась не совсем удачной в плане электропитания и энергопотребления. Как я уже писал, у меня под рукой был только модуль Arduino Pro Mini на 5 В. И я использовал Ni-MH аккумуляторы.


При том, что я подсоединил ещё и солнечную батарею вся конструкция у меня проработала автономно около 25 дней. Очень отрицательно на ёмкость аккумуляторов повлияли низкие, часто отрицательные температуры на улице конца зимы.


Чтобы у вас всё работало гораздо дольше, произведите следующие замены:


  • Купите Arduino Pro Mini на 3,3В
  • Используйте Li-ion аккумулятор типа Panasonic NCR18650A на 3,7 В, 2 шт. примерно за $14 на 3100mAh. Можете попробовать CR123, CR123A батареи. И помните о том, что 9В батарея (типа "Крона") плохой источник питания.
Читать дальше →

Information

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