• Изобретаем библиотеку vusb

      Введение


      После прочтения названия может возникнуть закономерный вопрос: зачем в наше время изучать программную реализацию low-speed USB, когда существует куча дешевых контроллеров с аппаратным модулем? Дело в том, что аппаратный модуль, скрывая уровень обмена логическими уровнями, превращает протокол USB в своеобразную магию. Для того же, чтобы прочувствовать как эта «магия» работает, нет ничего лучше, чем воспроизвести ее с нуля, начиная с самого низкого уровня.


      С этой целью попробуем изготовить на основе контроллера ATmega8 устройство, прикидывающееся USB-HID'ом. В отличие от распространенной литературы, мы пойдем не от теории к практике, от самого нижнего уровня к верхнему, от логических напряжений на выводах, и закончим «изобретением» той самой vusb, после каждого шага проверяя, работает ли код как ожидалось. Отдельно отмечу, что не изобретаю альтернативу этой библиотеке, а напротив, последовательно воспроизвожу ее исходный код, максимально сохраняя оригинальную структуру и названия, поясняя, для чего служит тот или иной участок. Впрочем, привычный для меня стиль написания кода отличается от стиля авторов vusb. Сразу же честно признаюсь, что помимо альтруистического интереса (рассказать другим сложную тему) имею и корыстный — изучить тему самостоятельно и через объяснение выловить для себя максимум тонких моментов. Отсюда же следует, что какой-то важный момент может быть упущен, или какая-то тема не до конца раскрыта.


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


      Также отмечу, что рассматривается только low-speed USB, даже без упоминания, чем отличаются более скоростные разновидности.

      Читать дальше →
    • Mini-Desktop своими руками

      Update: Версия 2.0 здесь.

      Немного лирики:


      Лет пять назад у меня появилась мечта самому сделать домашний мини сервер. Изучив существующие на то время железки, я остановил свой выбор на материнской плате Intel D945GSEJT с процессором Atom N270. Корпуса, которые были в продаже для этой материнской платы мне совершенно не понравились, по этому я привинтил все это дело к картонке вместе с жестким диском, поставил Хакинтош и повесил за шкаф. Все это дело провисело пару лет, интенсивно качая и раздавая файлы и интернет по всей квартире.
      Все бы хорошо, но быстродействия этого агрегата хватало только на дать и взять, никакой речи о проигрывании, или конвертировании HD видео, или помощи при тонировании 3D графики речи быть не могло. А хотелось бы.
      Мысль сделать домашний мощный-мини-сервер заела меня окончательно в начале этого года. Просто спать по ночам не мог. И что бы избавиться от этой навязчивой идеи было решено:
      1. Сделать не так как у всех
      2. Сделать самый маленький Desktop из ныне существующих
      3. Сделать проект не индивидуальным, а с учетом промышленных стандартов, а так же с обоснованием адекватной стоимости дальнейшего серийного производства.
      Читать дальше →
    • Настройка Eclipse для работы с Arduino Uno

      Преамбула


      У меня дома стоит масляное отопление. Для измерения уровня масла в баке используется допотопный датчик со стрелкой и поплавком на веревке. Принцип работы датчика поражает свой неточностью. Но так как мы с вами живем в далеком будущем, по отношению к моему детству, то мне захотелось сделать датчик, который выполняет следующие условия:
      • Датчик должен быть цифровым.
      • Его показания должны сохранятся для последующей обработки.
      • Данные должны быть доступны для меня всегда и везде.
      • Все устройство должно быть дешевле 200€.
      Вот с такой спецификацией я и начал поиск подходящих компонентов. Выбор довольно быстро упал на платформу Arduino. Само железо устраивало меня полностью, но вот среда разработки была просто ужасна. Поэтому было принято решение перейти на Eclipse.

      Можно было, конечно, перейти на горячо любимую Visual Studio, но в данный момент я открываю заново для себя линукс, поэтому виндоуса нет в наличии.

      Сегодня, я хочу поделиться с вами о том, как настроить Eclipse для работы с Arduino Uno под Ubuntu 10.10.
      Читать дальше →
    • Arduino за 1$



      В качестве вступления, я не буду пространно рассказывать о том, как люди, в руках паяльника не державшие, слова «программатор» не знающие, вместе с детьми радостно втыкают провода в разъемы электронного «конструктора» под названием Arduino. И никаким словом не помяну лагерь «хардкорщиков», считающих это баловством и/или надругательством над самой идеологией микроконтроллеров.

      Скажу за себя — мне Arduino нравится. Тем, что можно быстро что-нибудь работающее соорудить. По сути, мне не нравятся только цены. Ну, дорого же. Модуль на порядок дороже использованного в нем микроконтроллера. Такие размышления неоднократно подталкивали меня к тому, чтобы «соскочить», но потом я открывал Aliexpress и заказывал очередную порцию. Китайская версия Arduino Nano — 3-4$. Pro Mini (без USB) — 2-3$.

      Потом стало интересно — а где предел минимальной розничной (или микрооптовой) цены. Но так, чтобы можно было работать, а не искать хаки с целью сэкономить пару байт. Пара вопросов к всемирному разуму, кратчайшее изучение матчасти, решение: «Буду ковыряться с ATTiny, но чтобы с Arduino».
      Стоя и в гамаке
    • Реле с дистанционным ИК управлением на ATtiny13A

      Привет, Хабр!

      Появилась необходимость выключения старой, но вполне рабочей акустической системы с пульта от телевизора, не вставая с дивана. Подумав, я решил использовать ИК приёмник, некогда выкрученный со старого телевизора. ИК приёмник оказался без опознавательных знаков. Определив выходы методом тыка выяснил, что он из серии TSOP4xxx, если верить картинке:


      Читать дальше →
    • Основы создания 2D персонажа в Unity 3D 4.3. Часть 3: прыжки (и падения)

      • Tutorial
      Часть 1: заготовка персонажа и анимация покоя
      Часть 2: бегущий персонаж
      Часть 3: прыжки (и падения)

      Всем привет. Продолжаем серию уроков по созданию 2D персонажа. В предыдущих двух частях мы сделали персонажа, который может находиться в двух состояниях: покой и бег вправо-влево. Возможно, для очень простой игры этого будет достаточно. Но мы не будем останавливаться на достигнутом и сегодня научим нашего персонажа прыгать.
      Читать дальше →
    • Белый Куб на страже чистоты воздуха, часть 1

        Устройство для мониторинга параметров домашней среды с передачей данных по Wi-Fi.

        image

        В статье описывается устройство для измерения, индикации на встроенном дисплее и передачи в сеть по Wi-Fi параметров окружающей среды:

        • уровень СО2 (углекислый газ)
        • уровень СО (угарный газ)
        • содержание паров этилового спирта (С2Н5ОН)
        • уровень горючих газов (LPG)
        • уровень аммиака (NH3)
        • содержание водорода(H2)
        • значения атмосферного давления
        • влажности и температуры воздуха
        • уровня освещенности
        • уровня магнитного поля по трем осям
        • уровня гравитации по трем осям
        • уровня ускорений по трем осям
        • температуры произвольного количества цифровых датчиков температуры типа DS18B20.
        Читать дальше →
      • Tasker tutorials. Часть 1: Добавляем свои команды в Google Now

        • Tutorial
        Первая статья из цикла, направленного на превращение обычного смартфона в настоящий продвинутый гаджет для истинного гика.
        Цель этого цикла статей — научить максимально автоматизировать действия, связанные со смартфоном и показать интересные сферы применения смартфону.
        Таскер-это мощнейший инструмент автоматизации действий телефона и его взаимодействия с окружающим миром.
        Можно выполнять различные действия как реакцию на приложения (запуск/остановка), время, дату, смену местоположения, показателей датчиков телефона или событий (в том числе различных плагинов).
        В первой части цикла будут рассмотрена возможность добавления своих команд в Google Now и выполнение различных действий после распознавания команды, что может вывести домашнюю автоматизацию на новый уроверь.

        Google Now


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



        Затем добавили распознавание фразы на любом экране (раньше было только на рабочем столе и в карточках Google Now), хотя официально работает пока только на Английском. На хабре уже была статья с доступными командами да и на YouTube есть много видео с примерами.
        С помощью голоса можно набирать смс, звонить, создавать заметки и ставить таймер/будильник и т.д… Но что делать, если этого не достаточно и хочется добавить свои команды? Например «Выключи вайфай» до сих пор не работает даже на английском. Просто отправляет в настройки.
        Если интересно как добавить практически любую голосовую команду для Google Now без наличия рут прав (сразу оговорюсь, только на поддерживаемых аппаратах), прошу под кат. Это добавит практически безграничные возможности домашней автоматизации да и просто поможет облегчить жизнь и высвободить время.
        Читать дальше →
      • Дети не умеют пользоваться компьютерами… И вот почему это должно вас беспокоить

          Оригинал: http://www.coding2learn.org/blog/2013/07/29/kids-cant-use-computers/

          Многобукв? Что ж, почему бы вам не посмотреть пятисекундное видео с котенком, засунувшим голову в рулон туалетной бумаги, или не прочитать 140-символьное описание блюда, которым ваш друг набил себе рот. «Ням-ням». Этот пост не для вас.

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

          Я улыбнулся и представился, присаживаясь рядом с ней. Она молча вручила мне MacBook, и выражение ее лица сказало всё: «Почини мой компьютер, гик, и побыстрее». Меня путали с техником достаточное количество раз для уверенного распознавания этой гримасы.

          — Придется поторопиться. Через 5 минут у меня урок, — сказал я.
          — Вы преподаете?
          — Это моя работа, просто так получилось, что также приходится управлять командой специалистов по сетям.

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

          Я посмотрел на MacBook. На тот момент у меня не было опыта с OS X. Но Джобс не был идиотом, и то, что отображалось в верхнем правом углу экрана, было общеизвестным символом WiFi. Чтобы подключить устройство к сети, мне понадобилось несколько секунд.

          Вручил MacBook обратно, и женщина открыла Safari. «Интернет не работает», заявила она с презрением.

          Я столько раз слышал эту фразу от учеников и персонала, что у меня уже заготовлена стандартная реакция. Обычно я достаю сотовый телефон, делаю вид, что набираю номер. И подняв трубку к уху, говорю: «Да, соедините меня с офисом Президента Соединенных Штатов… НЕТ, Я НЕ МОГУ ПОДОЖДАТЬ, это чрезвычайное происшествие… Алло, Мистер Президент, боюсь у меня плохие новости. Меня только что проинформировали, что Интернет не работает».

          Но я решил, что молодая женщина, наверное, не оценит сарказм, и забрал MacBook обратно, чтобы добавить настройки прокси-сервера. Без каких-либо идей, как это сделать в OS X. Прокси у нас используется, чтобы убедиться, что персонал и ученики не могут получить из школьной сети доступ к порно. Также он фильтрует насилие, экстремизм, ругательства, социальные сети, алкоголь, курение, хакерство, игры и потоковое видео. Забавно, что когда вы ищете в Google «proxy settings OSX», результаты выдачи будут заблокированы, поскольку содержат слово «proxy», а оно фильтруется.

          «Вы не знаете, где здесь настройки прокси?» — спросил я с надеждой.

          Ответа я не получил. С тем же успехом можно было спросить у нее «Не подскажете, как мне ретикулировать сплайны с использованием гексагональной системы декодирования, чтобы я мог создать GUI на VisualBasic и отследить IP-адрес?»

          корни шутки

          спасибо acherneha — прим. переводчика.


          Настройки прокси я нашел и заполнил за десять секунд. Вернул ей MacBook, и она, буквально, закрыла Safari и открыла его заново, вместо того, чтобы обновить страницу. «Пасиб…». Благодарность была ошеломляющей.

          Я уже уходил, когда она меня остановила. «PowerPoint не работает».

          Не устали? Под катом реально много букв
        • В Китай за покупками?

            Китайские интернет-магазины давно стали нарицательным обозначением огромного ассортимента и низких (реально низких) цен. Многие интернет-пользователи успели оценить справедливость этого мнения. А если кто еще не успел – самое время это сделать. Вам нужна веская причина? Пожалуйста: в преддверии Нового Года сразу четыре крупнейших китайских торговых площадки начали принимать WebMoney. Это Tinydeal, FocalPrice, LightInTheBox и MiniInTheBox. Еще один магазин, Wsdeal, работает с вебманями уже несколько месяцев.

            При оплате через WebMoney некоторые из этих ресурсов обещают покупателям разнообразные бонусы или скидки: так, гонконгский магазин Tinydeal дает в подарок при регистрации купон на 20TD (2$), а FocalPrice предлагает купон, дающий скидку в размере 9$ на заказы от 100$…

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

            Читать дальше →
          • Опыт заказа в китайских интернет-магазинах

              В данной статье хотелось бы поделиться с читателями своим личным опытом о китайских интернет-магазинах, в которых мне (или моим друзьям) приходилось делать покупки. Речь пойдет именно про электронный сегмент товаров. Сразу перейду к сути, и приведу обзоры этих самых магазинов с заключительной оценкой:
              Читать дальше →
            • Роутер + GPRS модем = mini VoIP АТС или GSM шлюз своими руками


              На днях появилась необходимость поднять в удаленном, маленьком, офисе телефонию.
              Стабильного канала Интернет, как и в большинстве удаленных регионов, в городке не нашлось, по этому задача свелась к созданию бюджетной АТС с локальным GSM каналом + VoIP связь с центральной (корпоративной) АТС.
              Читать дальше →
            • Оказывается, в Windows тоже есть перенаправления, пайпы, свой /dev, /dev/null, /etc/fstab, grub.cfg

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

              Перенаправления


              Как обычно:

              echo foo > bar
              echo foo 2> bar
              echo foo > bar 2>&1

              Читать дальше →
            • Windows на RAM-диске


                В наш век мы все любим скорость. Мы любим быстрый транспорт, быстрые службы доставки, скоростной интернет. И, разумеется, быстрые компьютеры. У нас есть шестое чувство, которым мы детектируем милли/микросекундные задержки. Частенько появляется желание что-нибудь да разогнать.
                Вы уже поняли из названия, как именно будем разгонять
              • Воскрешаем FTDI в картинках

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



                  … а из опуса UnknownType вы мало что поняли, добро пожаловать под кат!
                  Читать дальше →
                • Сверхбыстрое распознавание речи без серверов на реальном примере

                  • Tutorial

                  В этой статье я подробно расскажу и покажу, как правильно и быстро прикрутить распознавание русской речи на движке Pocketsphinx (для iOS порт OpenEars) на реальном Hello World примере управления домашней техникой.
                  Почему именно домашней техникой? Да потому что благодаря такому примеру можно оценить ту скорость и точность, которой можно добиться при использовании полностью локального распознавания речи без серверов типа Google ASR или Яндекс SpeechKit.
                  К статье я также прилагаю все исходники программы и саму сборку под Android.

                  Прикручиваем Pocketsphinx к своему Андроиду
                • Из аналога в цифру, или IP-камера своими руками

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

                  Недавно, блуждая по всем известному сайту Aliexpress, наткнулся на модуль для IP-камеры, который предлагался как набор «сделай сам», в магазине продавца были еще разные запчасти для камер. По размеру модуль подходил на место аналогового (38х38), было решено заказать его и попробовать собрать IP-камеру из вышедшей из строя аналоговой. Модуль обошелся в смешные 11 долларов, доехал до меня очень быстро, за пару недель.
                  Что было дальше
                • Android Планшет вместо Авто магнитолы

                    Сейчас многие владельцы автотранспорта сталкиваются с проблемой убогости штатных и космической дороговизны хороших магнитол с современными функциями. Вот и я купив машину 2010 года не смог ужиться с CD проигрывателем и поспешил поставить вместо него таблетку — Планшет. В статье описаны аспекты не освещённые в остальных источниках информации. В частности не как физически врезать планшет в машину, а как всё настроить так чтобы было приятно и удобно пользоваться.
                    image
                    Читать дальше →
                  • Никогда не «не делай» того, о чем пожалеешь или умный дом с CCU.IO

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

                      Хочу представить программную платформу автоматизации для дома на базе Node.js, которую можно скачать со всеми исходниками и установить прямо сейчас практически одним кликом (Windows) или одной командой (Linux/Debian).


                      Подробности