Обновить
0
0
Alexander Ivanov@gagmaker

Пользователь

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

Основы работы с IOKit. Тонкости программирования драйверов

Время на прочтение8 мин
Охват и читатели21K

В рамках поддержки блога разработки под Mac OS X, я представляю свою статью о низкоуровневой разработке под Mac OS X. Обычно тема разработки драйверов не столь популярна, однако и здесь Mac OS X выгодно выделяется из ряда прочих операционных систем. Да, писать драйвера для Mac O S X – просто! Проще чем когда-либо ранее!
Поехали

Ещё один программный UART на ATtiny13

Время на прочтение3 мин
Охват и читатели53K


Привет всем хаброюзерам. Совсем недавно, товарищ Himura опубликовал свою статью UART в ATtiny13 или Как вывести данные из МК за 52р, и тут я вспомнил, что имею кроме предыдущих наработок по этой теме, а именно Трёхканальный UART АЦП на ATtiny13, есть ещё кое-что, часть которой я вырезал из довольно таки любопытного проекта Happy Christmas and Happy New Year wishes from Attiny13, там есть и программный UART, как чтение так и отправка, и ещё кое что по SPI, вообщем рекомендую заглянуть всем кто заинтересовался, правда ресурс англоязычный.
Вот видео работы:


Заглянуть под капот

Ламповый усилитель

Время на прочтение2 мин
Охват и читатели178K


Коротко, в основном фото (перезалил в хорошем качестве). Сразу скажу, что опыта и познаний в радиотехнике было мало, сделал много ошибок. Не являясь фанатичным любителем теплого лампового звука, для меня был интересен сам процесс сборки.
Читать дальше →

Знакомство с отладочной платой Realtek RTL8954C

Время на прочтение6 мин
Охват и читатели28K

Многочисленным пользователям PС тайваньская компания Realtek известна по своим контроллерам сетевых (Ethernet) и беспроводных (WiFi) карт, а также по микросхемам AC97-аудиокодеков. Однако у Realtek есть процессоры не только для применения в PC, но также для сетевого оборудования.

В рамках данной статьи мы познакомимся с отладочной платой и сетевым процессором Realtek RTL8954C, соберём и запустим базовое ядро Linux, а также выполним тест пропускной способности Ethernet-портов.
Читать дальше →

Как работает мозг?

Время на прочтение8 мин
Охват и читатели121K
Этот пост написан по мотивам лекции Джеймса Смита, профессора Висконсинского университета в Мадисоне, специализирующегося в микроэлектронике и архитектуре вычислительных машин.

История компьютерных наук в целом сводится к тому, что учёные пытаются понять, как работает человеческий мозг, и воссоздать нечто аналогичное по своим возможностям. Как именно учёные его исследуют? Представим, что в XXI веке на Землю прилетают инопланетяне, никогда не видевшие привычных нам компьютеров, и пытаются исследовать устройство такого компьютера. Скорее всего, они начнут с измерения напряжений на проводниках, и обнаружат, что данные передаются в двоичном виде: точное значение напряжения не важно, важно только его наличие либо отсутствие. Затем, возможно, они поймут, что все электронные схемы составлены из одинаковых «логических вентилей», у которых есть вход и выход, и сигнал внутри схемы всегда передаётся в одном направлении. Если инопланетяне достаточно сообразительные, то они смогут разобраться, как работают комбинационные схемы — одних их достаточно, чтобы построить сравнительно сложные вычислительные устройства. Может быть, инопланетяне разгадают роль тактового сигнала и обратной связи; но вряд ли они смогут, изучая современный процессор, распознать в нём фон-неймановскую архитектуру с общей памятью, счётчиком команд, набором регистров и т.п. Дело в том, что по итогам сорока лет погони за производительностью в процессорах появилась целая иерархия «памятей» с хитроумными протоколами синхронизации между ними; несколько параллельных конвейеров, снабжённых предсказателями переходов, так что понятие «счётчика команд» фактически теряет смысл; с каждой командой связано собственное содержимое регистров, и т.д. Для реализации микропроцессора достаточно нескольких тысяч транзисторов; чтобы его производительность достигла привычного нам уровня, требуются сотни миллионов. Смысл этого примера в том, что для ответа на вопрос «как работает компьютер?» не нужно разбираться в работе сотен миллионов транзисторов: они лишь заслоняют собой простую идею, лежащую в основе архитектуры наших ЭВМ.

Моделирование нейронов


Кора человеческого мозга состоит из порядка ста миллиардов нейронов. Исторически сложилось так, что учёные, исследующие работу мозга, пытались охватить своей теорией всю эту колоссальную конструкцию. Строение мозга описано иерархически: кора состоит из долей, доли — из «гиперколонок», те — из «миниколонок»… Миниколонка состоит из примерно сотни отдельных нейронов.



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

STM32. Медицинское применение. Тонометр. Введение и аппаратная часть

Время на прочтение6 мин
Охват и читатели69K
Одним из интересных профилей применения современного МК, безусловно, является медицина. Спектр приборов здесь достаточно широк, начиная от простых термометров, где можно применить простой STM8L с ЖК экраном, заканчивая навороченными кардио-мониторами, измерителями ЭКГ, холтерами с возможностями дистанционного сбора и отправки информации по эйзернет или беспроводно с коек пациентов прямо в кабинет глав-врачу. Сегодня мы поговорим о возможности применения МК STM32 при неинвазивном измерении артериального давления осциллометрическим методом. Всех заинтересованных прошу под кат.
Читать дальше →

STM32 и FreeRTOS. 5. Приносим пользу и добро!

Время на прочтение5 мин
Охват и читатели64K
На всякий случай, а то вдруг санкции применят (смаил). Описываемый случай не имеет никакого отношения к реальности и является целиком и полностью выдумкой автора

Раньше было про потоки, семафоры, очереди и HAL

Как-то раз попросили меня посмотреть на одно очень дорогостоящее устройство. Проблема была одна: среди использующих это устройство возникло стойкое убеждение, что 99,99% его цены происходит от того факта, что производитель этого устройства монополист в своей сфере и деваться пользователям этого устройства некуда.



Вооружившись осциллографом, я полез внутрь.
Читать дальше →

Давайте изобретать велосипеды

Время на прочтение3 мин
Охват и читатели20K
Мотивации пост.



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

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

В этом посте я постараюсь показать, почему нужно изобретать велосипед.
Читать дальше →

STM32 и FreeRTOS. 4. Шаг в сторону HAL

Время на прочтение5 мин
Охват и читатели89K
HAL 9000: I'm completely operational, and all my circuits are functioning perfectly.
или это должно быть первой статьей, но я почему-то всегда пишу подобное ближе к концу

Раньше было про потоки, про семафоры и очереди

Одним из основных препятствий для перехода на STM32 является обилие текстов, инструкций и мануалов, описывающих работу с контроллером. Виновником этого обилия стала сама STMicroelectronics, которая поначалу планомерно запутывала своих пользователей, а затем предлагала неверные варианты выхода.

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

Но не так давно ST поняла, в какую яму она угодила и начала усиленно из нее выбираться, привлекая новые силы. И именно благодаря этому сейчас время старта сократилось до несуразно маленьких величин. Как это выглядит на практике? Добро пожаловать под кат.
Читать дальше →

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

Время на прочтение6 мин
Охват и читатели18K
Одна из наиболее популярных идей, появившаяся в индустрии разработки в последние годы, — это концепция Minimum Viable Product, сокращенно MVP. В двух словах, это стратегия разработки минимального по функциональности продукта, позволяющего получить обратную связь от пользователей. Но можно ли переносить эту концепцию в сферу мобильных приложений и если нет, то есть ли альтернатива? Мы в Alconost перевели отличную статью, отвечающую на этот вопрос. Всем, кто имеет дело с мобильной разработкой — читать обязательно.


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

Raspberry Pi 2: 4 ядра, гигабайт ОЗУ, в шесть раз больше производительности

Время на прочтение2 мин
Охват и читатели273K

Возможно, цена останется прежней — 35 $


Без особых подготовок глава Raspberry Pi Foundation Ибен Аптон рассказал изданию The Register о новой модели Raspberry Pi. Согласно его заявлению, теперь это относительно полноценный компьютер, оглядываясь на характеристики которого не нужно повторять «он стоит всего лишь 35 долларов».

Основные изменения новой модели под названием Raspberry Pi 2 Model B: однокристальная система Broadcom BCM2836 с четырьмя ядрами ARMv7 Cortex-A7 частотой 900 МГц и Broadcom VideoCore IV 250 МГц, 1 гигабайт ОЗУ, как минимум в шесть раз больше производительности, чем у B+, и бесплатная Windows 10. Вот результаты выдачи команды uname -a новой платы.
Читать дальше →

Робот на RaspberryPi, Arduino и RaspiCam + OpenCV. Часть 1 Обзорная

Время на прочтение5 мин
Охват и читатели129K
Очень часто на хабре появляются статьи о том как использовать Raspberry Pi как медиацентр, передвижную видеокамеру, удаленную web камеру и… собственно все. Очень странно, что в такой большой IT тусовке — довольно мало информации о том — как его программировать и использовать одноплатный компьютер там, где он действительно довольно полезен — во всяких встраиваемых системах, где есть ограничения по размеру и стоимости, но также есть потребность в производительности. В нескольких статьях постараюсь описать на примере создания мобильного колесного робота с компьютерным зрением — как можно использовать малинку для создания роботов(штук с интеллектом на борту, а не управляемых с андроида машинок с веб камерой).
image
Читать дальше →

STM32 и FreeRTOS. 3. Встаем в очередь

Время на прочтение6 мин
Охват и читатели61K
Раньше: про потоки и про семафоры

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

Возьмем наиболее яркий и богатый проблемами пример, на котором «валятся» большинство неопытных программистов. Есть мощный и достаточно быстрый микроконтроллер. К нему подключен с одной стороны адаптер com-порта, через который пользователь подает команды и получает результаты, а с другой — шаговый двигатель, который согласно этим командам поворачивается на какой-то угол. И конечно же, прикольная кнопочка, которая тоже что-то этакое значит для пользователя. Где можно наловить проблем?
Читать дальше →

STM32 и FreeRTOS. 2. Семафорим по-черному

Время на прочтение7 мин
Охват и читатели73K
Часть первая, про потоки

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

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

STM32 и FreeRTOS. 1. Развлечение с потоками

Время на прочтение7 мин
Охват и читатели171K
Данный цикл из 5 статей рассчитан на тех, кому стало мало возможностей привычных «тинек» и ардуинок, но все попытки перейти на более мощные контроллеры оканчивались неудачей или не приносили столько удовольствия, сколько могли бы. Все ниженаписанное проговаривалось мной много раз на «ликбезе» программистов нашей студии (которые часто сознавались, что переход с «тинек» на «стмки» открывает столько возможностей, что попадаешь в ступор, не зная за что хвататься), поэтому смею надеяться, что польза будет всем. При прочтении подразумевается, что читающий — человек любопытный и сам смог найти и поставить Keil, STM32Cube и понажимать кнопки «ОК». Для практики я использую оценочную плату STM32F3DISCOVERY, ибо она дешевая, на ней стоит мощный процессор и есть куча светодиодиков.

Каждая статья рассчитана на «повторение» и «осмысление» где-то на один околовечерний час, ибо дом, семья или отдых…



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

Подключаем Ethernet ENC28J60 через SD card-reader для WEB-Servera на Arduino

Время на прочтение2 мин
Охват и читатели60K
Всем привет. Столкнувшись с технической трудностью в построении WEB сервера, придумал сделать переходник которого наверное еще никто никогда не делал(хотя могу ошибаться). Вс§ оказалось просто и довольно таки практично.

image

Для чего это нужно и как это создать я расскажу и покажу, а также покажу видео обзор работоспособности web servera на переходнике.
Читать дальше →

Доработка USB-стека в микроконтроллерах STM32 и TivaC

Время на прочтение5 мин
Охват и читатели31K
Наличие USB порта в современных микроконтроллерах открывает широкие возможности для самостоятельного изготовления разнообразных управляемых с компьютера устройств. На практике, однако, выясняется, что поставляемые производителем библиотеки для работы с USB нуждаются в доработке. Если вам интересен опыт подобной доработки для двух популярных семейств МК — добро пожаловать под кат.
Читать дальше →

Божественный подход к аутентификации

Время на прочтение8 мин
Охват и читатели25K
Я закончил курс в университете Вирджинии в 1992 году по теме “Компьютерные науки в упрощенном виде”. Причина, по которой я выбрал именно упрощенный курс, была в том, что обычный курс CS в университете Вирджинии требует прохождения инженерной школы и я был абсолютно не готов к такому количеству математики и физики. Красота упрощенного курса была в том, что я мог посетить все интересные мне предметы, пропустив остальные.

Одним из моих любимых предметов, по крайней мере он запомнился мне больше всего, был “Алгоритмы”. Я всегда говорю людям, которые меня спрашивают об этом, что этот предмет повлиял на мое становление, как программиста, больше всего. Я точно не знаю почему, но несколько лет назад у меня появилось странное предчувствие, и я почему-то перешел на страницу Рэнди Пауша (автор той самой книги). С удивлением для себя я обнаружил, что он набирает студентов к себе на курс. Время было идеальным: университет Вирджинии, осень 1991, CS461 Анализ алгоритмов и 50 студентов на курсе. Я был одним из них.

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

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

И одна из самых крутых вещей, которой нас обучил Рэнди Пауш, была необходимость задать себе следующий вопрос перед выбором алгоритма:
А какой бы алгоритм выбрал Бог?



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

Hexapod-робот, управляемый с ПК

Время на прочтение3 мин
Охват и читатели65K
После просмотра большого количества статей и видео про роботов-пауков захотелось самому создать подобное. Было решено все сделать «с нуля», то есть создать корпус робота, спаять плату и запрограммировать.

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

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

Беспилотник на базе Raspberry Pi. Часть 1

Время на прочтение2 мин
Охват и читатели116K
Привет, %хабраюзер%. Хочу поделиться историей о своем беспилотнике (БЛА) на малинке.

Перед тем, как начать делать беспилотник, стоял выбор, какую летательную модель брать за основу: квадракоптер или самолет? Так как с коптерами я в свое время наигрался, знаю их основной минус: чаще всего время полета составляет 10-20 минут. Лично для меня это очень мало, поэтому было решено взять за основу самолет.

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

Информация

В рейтинге
Не участвует
Откуда
San Diego, California, США
Зарегистрирован
Активность