Category: техника

Category was added automatically. Read all entries about "техника".

Крыса

Собрал еще один электровелосипед.

Решил собрать очередной электровелосипед. Вот как это было:

В качестве донора я взял уже немолодой велосипед Stels Classic. Очень люблю эту модель, по сути это аналог советской "украины" - большие колеса на 28 дюймов, жесткая цепь без передач, задний тормоз и цена в 3000 рублей. Короче не жалко, тем более старый.

До переделки велосипед выглядел вот так:


Для переделки я купил литиевый аккумулятор (36V, 10 А*ч). За цену 10к кроме аккумулятора мне достался монструозный багажник-держатель, комплект ключей, который блокирует питание и не дает снять аккумулятор с крепления и зарядное устройство. Аккумулятор очень цивильный, с ручкой, встроенным датчиком заряда и предохранителем. Делает какая-то AcmePower.

Collapse )
Крыса

Твик камеры в Galaxy S3

Оказывается, с помощью Galaxy S3 можно снимать видео 120 кадров/сек, т.е. slow motion. Для этого на него нужно поставить небольшой твик, который заменяет родную софтину на аналог от Galaxy Note 2. После этого можно рассматривать всякие процессы, которые обычно кажутся мгновенными. Вот, например, взлет квадракоптера:



И еще прыжок котэ, правда это уже не мое:



Прошивку взял здесь.
Крыса

Будущее за одиночками

То что вчера могли позволить себе только крупные страны, сегодня делают корпорации (например, полеты в космос). То что вчера могли делать крупные корпорации, сегодня делают маленькие компании и стартапы (например, разработка новых устройств для массового рынка (Raspberry Pi, Leap Motion), создание проектов с более чем миллионом пользователей). То что раньше могли сделать маленькие компании, сегодня делают одиночки или небольшие группы людей на некоммерческой основе. И мне кажется, что они в ближайшее время станут одним из важных факторов научно-технического прогресса.

Почему я верю в одиночек? Потому что компании заинтересованы только в получении прибыли, а государства - в укреплении своего положения. А в чем заинтересован "Кулибин"? Да ни в чем, ему просто нравится процесс или у него есть какая-нибудь идея-мечта, которую он может вынашивать в течении всей жизни. Их гораздо меньше сдерживают цепи копирайта, целесообразности, тиражируемости и продвижения. Они просто могут взять и сделать. Если спросить очередного самоделкина, зачем он это сделал, то самым популярным будет ответ "потому что мог" или "just fot lulz".



Интерес и прогресс в области DIY (сделай сам) очень высоки. Новые платформы сегодня изначально ориентируется на нулевой порог входа. Простота использования выигрывает у производительности и эффективности. Простые универсальные мемы понемногу вытесняют сложные, эффективные и узконаправленные. Например JavaScript активно теснит другие языки на их территориях (достаточно посмотреть на NodeJS, MongoDB). USB теснит I2C. HTTP и XML обертки поголовно встречаются там, где нужно переслать 1 бит информации.

10 лет назад одиночкам стало доступно создание конкурентноспособного ПО,

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

Сегодня появились крайне доступные универсальные микрокомпьютеры с нулевым порогом входа. Raspberry Pi, серия mk802 и т.д. Для решения какой-то частной задачи больше не нужно разрабатывать очередную платформу или собирать x86 компьютер с громоздкой ОС. Дешевле купить миникомпьютер и все сделать на нем.

Я ожидаю, что в течении ближайших 5 лет любой желающий сможет практически даром создавать устройства реального мира, благодаря появлению дешевых домашних 3д принтеров и станков с ЧПУ.

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

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

Крыса

Домашний говорящий куб

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



Теперь это не просто программа на моем ноутбуке, а законченное устройство, которое достаточно включить в розетку.
Крыса

Аномалия

Вот что бывает, когда в доме становится слишком много wi-fi точек и гаджетов. Будь я суеверным, уже звонил бы корреспондентам какого-нибудь Хрен ТВ.

Вот что случилось:


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

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

Экраны

С BIC прислали карманный "микроскоп". Ничего серьезного разглядеть в него нельзя, но вот экраны различных устройств получаются отлично. Чем я и занялся. Вот что получилось:

Начал с Samsung Galaxy Note. Разнобой пикселей, это пресловутый PenTile.


А вот экран у Samsung Galaxy 3. Тот же PenTile, но плотность пикселей немного выше. 



Collapse )




Крыса

Приехали на дачу, а там...

... а там сперли колёса от приуса, косилку и пару инструмента :( Приемник Триколор ТВ и мою недособранную сигнализацию для дачи на базе симбиан :/

Вот такая фигня. Теперь придется заморачиваться защитой. Страховку уже сделали, но, конечно, уже поздно.

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

Очередная самоделка "на выходные"

Собрали с Юрой себе на выходных очередную игрушку - ноутбук на колёсиках.

С помощью этой штуковины можно удалённо ездить по квартире и смотреть, что происходит в соседних комнатах.


Однажды я такую штуку уже собирал, но она работала по blooetooth и в соседней комнате шли лаги. Эта версия работает через WiFi и позволяет заехать гораздо дальше, а наличие на борту полноценного PC и Arduino позволяет этому "роботу" самому смотреть на мир. И он его видит примерно таким:

Технически этой мой любимый древний eee PC 701 и радиоконстурктор pop bot с arduino на борту. Привод работает от 4-х батареек AA, которые со скрипом но всё-таки тянут всю эту бандуру, даже порожки переезжают.

Софт: Java -> USB -> COM -> Arduino для управления, Radmin для удалённого управления (мне стыдно) и JavaCV для видео, реального применения которому я пока не придумал.

Ещё на выходных сходили таки на Заркану, окончательно перешил телефон на ICS и только что замечательно покатались на машине по заснеженному по уши городу. 
Крыса

Голосовое управление умным домом

Вот ещё один компонент умного дома, который можно собрать на коленке буквально за час! Распознование голоса делается силами гугла. Это удобно не только потому, что гугл это делает лучше всех, но ещё и потом, что для управления умным домом нужен беспроводной микрофон, который всегда с собой, а телефон, это именно он и есть.



Алгоритм:
1. Запускаем распознавание голоса (3 строчки года с Google API).
2. Если в распознанной фразе есть ключевые слова - синтезируем ответ (6 строчек).
3. Телефон отправляет HTTP-запрос с командой на компьютер, подключенный к Arduino. (Или сразу на саму Arduino, если на ней есть ethernet-дырка).
4. Arduino управляет релюшками для включения света. Ну или как в моем случае, просто зажигает свой диод.

Если кому нужен этот пример - поделюсь.
Крыса

Умный дом своими руками

Под умным домом я понимаю возможность включать/выключать различные устройства с помощью web-интерфейса, а так же иметь возможность создавать события, которые сделают это автоматически. Самый первый прототип, который я вчера показывал, позволяет управлять положением дельфинчика в аквариуме через web-интерфейс. Расскажу, из чего он состоит:

Видео
Видео организовано так: к компьютеру подключена веб-камера, которая каждую секунду делает фотку и сохраняет её на диск. Я использовал софтину WebCamImageSave, а чтобы не грузить зря SSD, создал диск в оперативной памяти с помощью RAMDriv.

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

Изначально я хотел транслировать видео, а не картинки. Тут есть два подхода: стриминг своими силами (VLC + HTML5) и использование специального сервиса для трансляции видео хоть с телефона. Стриминг своими силами жрет уйму ресурсов. Один человек ещё может смотреть, что происходит, но когда людей двое, то компьютер затыкается, в видео начинаются накапливаться зарержки и через 10 секунд уже никто ничего не видит, кроме рассыпающихся квадратов.

Стриминг через сервер позволяет любому количеству людей наблюдать за тем, что происходит в аквариуме, но при этом задержка равна 10-15 секундам. Это неплохо подходит для передачи видео с митинга, но полностью не совместимо с ситуацией, при которой надо чем-либо управлять, так что я выбрал подход с обновлением картинок. Кстати, уличные веб-камеры работают точно также.

Сам веб-сервер написан на NodeJs и занимает всего 50 строчек и ещё 5 строк занимает JS код обновления картинки на web-странице. Если кому вдруг нужны исходники для реализации такой же задачи - поделюсь.

На фото web-камера, смотрящая в аквариум:


Управление
Управление сделано на Arduino. Arduino, это программируемый микроконтроллер для тех, кто не знает, что всё это значит :) Проще говоря, Arduino это платка, которая:
1. Стоит дешево
2. Программируется на языке высокого уровня
3. Её сложно попортить
4. Есть куча примеров, API и IDE для работы.

Для моей задачи понадобилась сама плата Arduino ($15) и серво-машинка от самолётика ($2.5), которая у меня уже была. 

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



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

На фото плата ардуино, на которую установлена плата для подключения устройств. Без неё вполне можно обойтись, все нужные контакты есть и на нижней плате, но верняя - удобней:


Arduino подключена к компьютеру по USB. При этом на компьютере создается виртуальный COM-порт, в который я отправляю управляющие команды - 1 - вниз, 2 - вверх :)

Самым сложным для меня оказалась запись в com-порт. NodeJs не умеет этого делать под windows, так что мне пришлось делать это, вызывая напрямую команды OS (благо это NodeJS умеет). Причем OS Windows, как оказалось, тоже не умеет работать из командной строки с портом выше четвертого - пришлось прибегнуть к помощи powershell. Если кто-нибудь когда-нибудь тоже будет этим заниматься, то вот пример отправки "1" в 10-й com-порт:

powershell "$port= new-Object System.IO.Ports.SerialPort COM10,9600,None,8,one; $port.open(); $port.WriteLine("1"); $port.Close()"

Выход в сеть
Тут ничего нового, просто маленький экскурс для тех, кто не знает, как с помощью домашенго компьютера (роутер, NAT, динамический IP) поднять сайт, видимый в интернете:
1. Ставим веб-сервер, добиваемся, чтобы работало через localhost.
2. Регистрируемся на no-ip, ставим программу-клиент, выбираем желаемое имя.
3. Если в сети используется DHCP, то идем в роутер и настраиваем его так, чтобы компьютеру с веб-серверам всегда выдавался один и тот же локальный IP.
4. На роутере создаем виртуальный сервер так, чтобы порт 80 вел на нужный локальный ip.