Pull to refresh
0
0
Alexander Ivanov @gagmaker

User

Send message

Самодельный Фурье-спектрометр

Reading time16 min
Views104K
image Однажды я прочитал в Википедии статью про Фурье-спектрометр, и мне захотелось самостоятельно сделать такой. Эта задача совсем не простая, но действующий макет спектрометра все же удалось сделать. Сразу предупрежу — это не инфракрасный спектрометр, так что особенно интересных измерений им не провести.

О том, как же работает Фурье-спектрометр, и как его можно сделать в домашних условиях — далее (осторожно, много картинок!).
Читать дальше →
Total votes 63: ↑63 and ↓0+63
Comments39

Сборка Embedded Linux от Yocto для QEMU x86 и первое приложение к нему

Reading time7 min
Views41K
Эта статья — быстрый старт с картинками для тех, кому нужно собрать Embedded Linux с помощью Yocto.
Если вы собрались собирать Embedded Linux для специфичных аппаратных средств, например, для SoC на FPGA, то, наверное, как и я столкнётесь с проектом Yocto.

Yocto — проект, объединяющий
  • инструментарий разработчика;
  • систему сборки;
  • набор программных интерфейсов;
  • коллекцию мета-пакетов, расширяющих возможности платформы;
  • плагины для Eclipse и Anjuta.

Я постарался описать процесс так, чтобы вам можно было меньше тратить времени на проблемы с настройкой и подготовкой и поскорее приступить к творчеству.
Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments4

Управление ресурсами с помощью явных специализаций шаблонов

Reading time14 min
Views24K


RAII – одна из наиболее важных и полезных идиом в C++. RAII освобождает программиста от ручного управления ресурсами, без неё крайне затруднено написание безопасного с точки зрения исключений кода. Возможно, самое популярное использование RAII – это управление динамически выделяемой памятью с помощью умных указателей, но она также может с успехом применяться и к другим ресурсам, особенно в мире низкоуровневых библиотек. Примеры включают в себя дескрипторы Windows API, файловые дескрипторы POSIX, примитивы OpenGL и тому подобное.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments17

Сделаем код чище: Пару слов об управляемых ресурсах в ядре Linux для драйверов устройств

Reading time4 min
Views15K
Наблюдая за появляющимися драйверами в ядре Linux, не могу не отметить, что разработчики недостаточно хорошо знают инфраструктуру ядра, точнее внутренний API, значительно упрощающий жизнь при написании драйверов устройств. Сегодня я коснусь темы, посвящённой управляемым ресурсам. В частности поясню каким образом они работают и как упрощают разработку драйверов.
Читать дальше →
Total votes 29: ↑28 and ↓1+27
Comments0

Реанимация роутера TP-LINK 3020

Reading time3 min
Views61K
Доброго времени суток всем.

Решил поделиться своим опытом реанимации Wi-Fi роутера TP-LINK 3020.

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

Не надо так делать.

Читать дальше →
Total votes 28: ↑20 and ↓8+12
Comments25

Заметки о вращении вектора кватернионом

Reading time5 min
Views109K

Структура публикации


  • Получение кватерниона из вектора и величины угла разворота
  • Обратный кватернион
  • Умножение кватернионов
  • Поворот вектора
  • Рысканье, тангаж, крен
  • Серия поворотов


Получение кватерниона из вектора и величины угла разворота


Ещё раз – что такое кватернион? Для разработчика – это прежде всего инструмент, описывающий действие – поворот вокруг оси на заданный угол:

(w, vx, vy, vz),

где v – ось, выраженная вектором;
w – компонента, описывающая поворот (косинус половины угла).
Читать дальше →
Total votes 24: ↑19 and ↓5+14
Comments23

История создания еще одного робота. Часть первая, проектировочная

Reading time4 min
Views46K
В этой серии публикаций я хочу поделиться с вами историей создания своего первого робота под управлением микроконтроллера, а также об ошибках и упущениях, которые я допустил во время всего процесса. Скажу сразу, что программная часть робота еще не доделана и реализована только часть функций, но я продолжаю бороться с багами и ленью и в будущем обязательно доделаю все, что задумал, прошу строго не судить. Если я вас заинтересовал — прошу. Часть первая, проектировочная.
Читать дальше →
Total votes 22: ↑21 and ↓1+20
Comments9

Детальный взгляд на наследие Лейбница

Reading time15 min
Views43K

Перевод статьи Стивена Вольфрама (Stephen Wolfram) "Dropping In on Gottfried Leibniz".

На протяжении многих лет меня интересовала личность Готфрида Лейбница, в частности из-за того, что он хотел создать что то на подобие Mathematica, Wolfram|Alpha и возможно даже A New Kind of Science но на три столетия раньше. Поэтому когда в недавнем прошлом я посетил Германию, то мне страстно захотелось побывать в его архивах в Ганновере.

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

post_55_1.gif
Читать дальше →
Total votes 71: ↑65 and ↓6+59
Comments30

Реверс-инжениринг драйверов USB-устройств на примере машинки на радиоуправлении

Reading time10 min
Views54K
Перевод статьи DRIVE IT YOURSELF: USB CAR

image

Один из аргументов любителей Windows перед любителями Linux – недостаток драйверов для оборудования под эту ОС. С течением времени ситуация выправляется. Сейчас она уже гораздо лучше, чем 10 лет назад. Но иногда можно встретить какое-то устройство, которое не распознаётся вашим любимым дистрибутивом. Обычно это будет какая-нибудь USB-периферия.

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

Процесс по сути будет реверс-инженирингом. Сначала мы подробно изучим устройство, затем сохраним данные, которыми оно обменивается с драйвером в Windows, и попытаемся понять, что они означают. Для нетривиальных протоколов вам может потребоваться как опыт, так и удача.
Читать дальше →
Total votes 78: ↑70 and ↓8+62
Comments18

OpenWRT + OpenVPN для Asterisk. Бюджетный способ организации VPN сети

Reading time4 min
Views27K
imageЭто очередная статья о роутере MR3020, OpenWRT и OpenVPN. Бонусом я выкладываю готовую прошивку для этого роутера с установленным OpenVPN, текстовым редактором Nano и wget. В прошивке отключено всё лишнее, включая вэбинтерфейс, ipv6 и WiFi.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments4

Спектральный анализ сигналов

Reading time8 min
Views284K
image

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

Под катом краткий обзор метода выделения гармоник из произвольного сигнала с помощью цифрового гетеродинирования, и немного особой, Фурье-магии.
Читать дальше →
Total votes 56: ↑52 and ↓4+48
Comments22

Зоопарк коммуникационных протоколов для GPS-трекеров (часть 1)

Reading time4 min
Views15K
Цель данной статьи — познакомить читателя с различными сетевыми протоколами прикладного уровня, которые используются в GPS-трекерах. Практически каждый производитель оборудования для GPS-мониторинга считает своим долгом изобрести новый протокол для взаимодействия между устройством и сервером мониторинга. Часто при разработке оных инженеры прибегают к изощренным решениям для экономии трафика или упрощения жизни разработчикам прошивки устройств.
Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments4

Стандартный тест RFC2544

Reading time4 min
Views49K
imageВсем привет!

В этот раз подошло время рассмотреть стандартный тест RFC2544: для чего используется, как проводится, его достоинства и недостатки.

Disclaimer
Со времени прошлой статьи ко мне поступили отзывы коллег с предложением писать ближе к делу: меньше воды — больше специфики. Так что предлагаю эту статью считать экспериментальной. В конце материала небольшой опрос.


Читать дальше →
Total votes 15: ↑12 and ↓3+9
Comments11

Сделаем код чище: Специальные расширения vsnprintf() в ядре Linux

Reading time3 min
Views19K
Смотря на кучу исходного кода, который засылают программисты в списки рассылки подсистем ядра Linux иногда хочется плакать. С одной стороны бывает ужасный и непотребный код, с другой — люди, возможно, впервые пытаются что-то сделать для ядра, поэтому не знают всех его особенностей.

Книга Linux Device Drivers устарела, а новая версия выйдет нескоро. Поэтому мне хочется заполнить пробелы в знаниях тех программистов, которые пишут код в ядро.
Читать дальше →
Total votes 51: ↑49 and ↓2+47
Comments8

Что плохого в изменении *_defconfig при работе с исходниками ядра Linux

Reading time2 min
Views8.3K
По следам моей первой публикации хочу сделать небольшую заметку об изменении файлов i386_defconfig или x86_64_defconfig, входящих в поставку исходников ядра Linux.

Читать дальше →
Total votes 18: ↑16 and ↓2+14
Comments2

Термометр на Raspberry pi с беспроводным датчиком на rf 433 и МК attiny85

Reading time6 min
Views53K
Данная статья описывает мой опыт создания беспроводного датчика температуры на базе МК Attiny85 + ds18b20 + rf 433 TX, работающего от батареек. Прием данных и программирование Attiny85 сделано на основе Raspberry pi B+.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments21

Простая Bluetooth машинка на Arduino

Reading time3 min
Views116K
Широкое распространение и дешевизна платформы Arduino и различных робоплатформ позволило любителям создавать радиоуправляемые машинки на любой вкус. А широкое распространение смартфонов позволило использовать их в качестве контроллеров этих машинок. Главной проблемой для многих любителей Arduino является отсутствие опыта в программировании под Android. Сегодня я расскажу, как легко решить эту проблему, используя среду визуальной разработки android-приложений App Inventor 2.


Читать дальше →
Total votes 32: ↑28 and ↓4+24
Comments10

Дискретные структуры: матан для айтишников

Reading time4 min
Views223K


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

Хотя раньше такого понятия, как «дискретная математика» вовсе не было, это не значит, что не возникало дискретных задач: Абель, Дирихле, Фибоначчи, Эйлер, чьи имена возникают по ходу изучения дискретной математики, — отнюдь не наши современники! Но просто в те времена для выделения самостоятельной ветви математики ещё не сложилось критической массы задач и приёмов, не было видно взаимосвязей между ними. А большое количество плодотворных взаимосвязей между, на первый взгляд, различными понятиями, — то, что математики в своей науке очень ценят.

Ну хорошо, математикам всё математическое интересно. А зачем дискретная математика программисту?
Читать дальше →
Total votes 63: ↑59 and ↓4+55
Comments43

Ликбез: почему дома интернет по Wi-Fi тормозит

Reading time5 min
Views285K


Классическая схема включения услуг Интернет в многоквартирном жилом доме выглядит следующим образом: ТКД (точка коллективного доступа) — витая пара — роутер в квартире клиента, к которому подключены клиентские устройства по проводу и по Wi-Fi.

Характерные жалобы абонентов – скорость ниже тарифа, и возникают регулярные «замирания» при работе в интернете, что выражается долгим открыванием страниц в браузере, прерываниями видео, потерей связи с игровыми серверами и т.д. Данное поведение носит нерегулярный характер, а наиболее часто возникает в часы наибольшей пользовательской активности примерно с 18:00 до 23:00 в зависимости от города.

Есть несколько простых шагов, которые позволят определить возможную причину подобных проблем и решить 90% пользовательских ситуаций. Они ниже.
Читать дальше →
Total votes 87: ↑54 and ↓33+21
Comments164

FreeRTOS + STM32F4 на С++ под Linux

Reading time5 min
Views52K
Доброго дня! Прошло много времени с тех пор как я последний раз программировал под AVR и вот, решил восстановить в памяти такую, без сомнения интересную и увлекательную область разработки — разработку под микроконтроллеры. В качестве платформы был выбран ARM STM32, и, чтобы не мелочиться, сразу Cortex-M4. Отладочная плата STM32F4DISCOVERY с STM32F407 на борту. Мегабайт флеша и 128 кб памяти дает возможность не сильно заморачиваться экономией ресурсов и писать на C++.

Итак, задача: научиться с нуля моргать светодиодами под STM32 во FreeRTOS, но делать это модно — на C++, а не на чистом C.
И что из этого вышло?
Total votes 17: ↑16 and ↓1+15
Comments7

Information

Rating
Does not participate
Location
San Diego, California, США
Registered
Activity