Добрый день, уважаемые хабровчане. Так как в последнее время в DIY-проектах стал набирать популярность китайский роутер фирмы TP-Link TL-MR3020 (или его аппаратный аналог для китайского рынка TL-WR703N), я решил написать статью по вариантам его допиливания и конфигурирования для своих проектов, тем более что по работе я развлекался с ним последние несколько месяцев. В статье я постараюсь рассмотреть аспекты, которые не охватывают в большинстве статей для начинающих – а именно – практические примеры по пересборке его прошивки и конфигурировании для себя удобного инструментария разработчика.
Pavel @Shtormov
Пользователь
Система наблюдения в автомобиле за ним же на Raspberry Pi. Часть 1
4 мин
53KВведение
Добрый день.
Однажды я приобрёл Raspberry Pi без каких-то на то целей — как только начались упоминания о нём на хабре. Начал бесцельно запускать фтп-сервера, пробовать Node.js и прочие мелкие серверные дела, пока не приобрёл новый автомобиль. Конечно, заниматься тем, что можно найти на просторах интернета вроде дистанционного открытия гаража я не стал — в силу нормального не знания системы Linux и серверных языков программирования. Автомобиль стал мне дорог и возникла идея — поставить малинку в автомобиль с прикрученными к ней USB девайсами: GPS, Web-камера, 3G-модем — для чего и был куплен 2-ой Raspberry.
В этой статье я опишу подготовку: установку Node.JS, настройку OpenVPN и 3G.
+36
Как я сделал USB-МФУ беспроводным
4 мин
188KВступление
Говорят, ребенку в школе понадобится цветной принтер и сканер. Да и самому хотелось уже на что-то поменять разваливающийся черно-белый лазерник 1996 года выпуска. Критериями выбора стали: цветность, лазерная технология (перерывы между печатью могут достигать месяцев), автоподатчик оригиналов для сканера и копира, автоматическая двусторонняя печать и Wi-Fi, чтобы поставить этот ящик в дальнем углу. По этим характеристикам подобралась какая-то громадина за 25+ килорублей, что показалось неразумным. И вдруг на работе выдали пару подарочных карт одного известного розового магазина, и пришло ощущение, что надо покупать. К сожалению, в его ассортименте было всего три лазерных МФУ с цветной печатью, ни один из которых не отвечал последним двум требованиям. Спустя два месяца аccортимент ничем не пополнился, а наоборот, сократился до двух позиций на всю Москву, и я решил взять то, что было в наличии и не на витрине.Счастливчиком оказался HP Laserjet Pro 100 Color MFP M175a, без автоповорота страниц и с подключением только по USB. Кстати, он оказался не таким большим, как я ожидал, и не таким шумным, как пишут в отзывах.
Задача
Если автоматическую двустороннюю печать добавить к принтеру почти невозможно, то отвязать его от компьютера вполне реально.+31
Интерфейс JTAG? — Это очень просто
6 мин
255KТуториал
Многие знакомы со словом «JTAG», но знакомство это скорее всего поверхностное. В этой статье я хочу перевести Вас на новый уровень, так сказать «во френдзону». Возможно, для многих я не открою ничего нового, но надеюсь тем, кто давно хотел ознакомиться, будет интересно почитать. Итак, от винта.
+82
Бесплатный учебник электроники, архитектуры компьютера и низкоуровневого программирования на русском языке
2 мин
248KГоспода! Я рад сообщить, что наконец-то все желающие могут загрузить бесплатный учебник на более чем 1600 страниц, над переводом которого работало более полусотни человек из ведущих университетов, институтов и компаний России, Украины, США и Великобритании. Это был реально народный проект и пример международной кооперации.
Учебник Дэвида Харриса и Сары Харрис «Цифровая схемотехника и архитектура компьютера», второе издание, 2012, сводит вместе миры программного обеспечения и аппаратуры, являясь одновременно введением и в разработку микросхем, и в низкоуровневое программирование для студентов младших курсов. Этот учебник превосходит более ранний вводный учебник «Архитектура компьютера и проектирование компьютерных систем» от Дэвида Паттерсона и Джона Хеннесси, причем соавтор предыдущего учебника Дэвид Паттерсон сам рекомендовал учебник от Харрисов как более продвинутый. Следуя новому учебнику, студенты строят реализацию подмножества архитектуры MIPS, используя платы с ПЛИС / FPGA, после чего сравнивают эту реализацию с индустриальными микроконтроллерами Microchip PIC32. Таким образом вводится вместе схемотехника, языки описания аппаратуры Verilog и VHDL, архитектура компьютера, микроархитектура (организация процессорного конвейера) и программирование на ассемблере — в общем все, что находится между физикой и высокоуровневым программированием.
Как загрузить? К сожалению, не одним кликом. Сначало надо зарегистрироваться в пользовательском коммьюнити Imagination Technologies, потом зарегистрироваться в образовательных программах на том же сайте, после чего наконец скачать:
+111
Как надо дружиться с STM32
3 мин
355KТуториал
Не, не, не, все не так!
Давайте дружиться с STM32 правильно!
Самая главная ошибка, сделанная автором — это неправильно выбранный инструментарий.
Давайте дружиться с STM32 правильно!
Самая главная ошибка, сделанная автором — это неправильно выбранный инструментарий.
+32
Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вторая. Базовые сведения о платформе. Первая программа
4 мин
128KЕсли в первой статье все получилось хорошо — мы получили базовую программную обстановку для продолжения обучения.
Едем дальше.
Как я говорил ранее, пока что объяснять буду на базе МК PIC16F628A.
Обязательно качаем документацию на него. Рекомендую для поиска — alldatasheet.com
DataSheet — главный документ при разработке на базе МК.
Рекомендую распечатывать основные таблицы и разделы для удобства пользования.
Открываем ДШ.
Наиболее важные сведения о кристалле:
— максимальная рабочая частота — 20МГц;
— 2048х14 бит флеш-ПЗУ;
— 224 байта статической ОЗУ;
— 128 байт энергонезависимой ПЗУ;
— 16 доступных выводов;
— модуль приемо-передатчика;
— 3 таймера.
Данный кристалл — представитель так называемого среднего (Mid-range) семейства МК PIC.
Вкратце расскажу о том, что обязательно нужно понимать.
Едем дальше.
Как я говорил ранее, пока что объяснять буду на базе МК PIC16F628A.
Обязательно качаем документацию на него. Рекомендую для поиска — alldatasheet.com
DataSheet — главный документ при разработке на базе МК.
Рекомендую распечатывать основные таблицы и разделы для удобства пользования.
Открываем ДШ.
Наиболее важные сведения о кристалле:
— максимальная рабочая частота — 20МГц;
— 2048х14 бит флеш-ПЗУ;
— 224 байта статической ОЗУ;
— 128 байт энергонезависимой ПЗУ;
— 16 доступных выводов;
— модуль приемо-передатчика;
— 3 таймера.
Данный кристалл — представитель так называемого среднего (Mid-range) семейства МК PIC.
Вкратце расскажу о том, что обязательно нужно понимать.
+42
Программирование микроконтроллеров PIC16/PIC18 на языке C. Статья вводная
3 мин
83KДоброго тебе времени суток, хороший человек.
Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.
Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.
MPLAB — среда разработки от Microchip. Скачать можно на офсайте. Полностью бесплатна.
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора).
Большинство компиляторов языка C имеют механизмы встраивания в эту среду.
Качаем обязательно.
Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;
Это вводная статья из небольшого цикла о программировании МК PIC16/18 на языке C.
Необходимый минимум:
ПО:
— MPLAB;
— собственно компилятор C;
— Proteus ISIS;
Железо:
— отладочная плата;
— программатор.
MPLAB — среда разработки от Microchip. Скачать можно на офсайте. Полностью бесплатна.
Содержит компилятор с языка ассемблера, позволяет провести полный цикл разработки в том числе и прошивку(при наличии соответствующего программатора).
Большинство компиляторов языка C имеют механизмы встраивания в эту среду.
Качаем обязательно.
Компилятор C.
Здесь уже немного сложнее с выбором.
Список того, на что я советую обратить внимание:
— CCS PICC;
— Micro-C;
— IAR C;
— HT-PICC;
— Microchip C18;
+53
Референсный код
5 мин
26KПеревод
Только дурак учится на своих ошибках, умный предпочитает учиться на чужих
Мой активный корреспондент Чарльз Мэннинг отправил мне ссылку на вопрос с сайта Nordic Semiconductor. Вот этот вопрос, дословно: «Какой BLE профиль будет удовлетворять ЭКГ сигналам наилучшим образом и есть ли пример кода для АЦП из этого профиля? Искал какое-то время и не могу найти его ».
Чарльз, и я вместе с ним, были ошеломлены. Кто-то создает критическую часть медицинского оборудование с, как нам представляется, ограниченным знанием протокола связи, который он будет использовать Он также планирует построить эту часть на референсном (если кто предложит хороший перевод этого термина буду благодарен — «образцовый и эталонный» не очень подходят — в русском языке эти два термина содержат несколько иной смысл, а «примерный» не звучит -примечание переводчика) ( мне подсказали в комментариях демонстрационный код -пп) коде от поставщика.
+16
Первые шаги со Stellaris LM4F120 launchpad evaluation board
9 мин
28KЗавалялась у меня в столе плата Stellaris LM4F120, с которой я решил, наконец, разобраться. Писать будем программу, которая включает-выключает светодиоды, установленные на плату в ответ на нажатия имеющихся на плате кнопок.
+22
Микроконтроллеры семейства Kinetis от NXP-Freescale для встраиваемой электроники. Открываем для себя
7 мин
42KВремя от времени меня тоже охватывает потребность что-то поменять. И чаще всего я меняю в своих разработках семейство микроконтроллеров. И я не одинок в этом. Каждый год не менее 50% разработчиков меняют процессор, на котором будут выполнять следующие проекты. На этот раз я решил попробовать семейство Kinetis.
+24
3D MC3 Мастер v1.1 или как я собрал свой первый 3D принтер
3 мин
60KТак случилось, что свободное время совпало с большим желанием что-то сделать своими руками с нуля. Некоторое знакомство с контроллерами Arduino, автоматизацией процессов и окончание ремонта в доме натолкнули на мысль о создании робота-пылесоса. Все могло закончиться покупкой какого-нибудь готового изделия, но хотелось сделать все самому и с самого начала. Более того, даже спроектировать и изготовить все детали для него захотелось самостоятельно.
3D принтеры, для большинства, являются хобби или игрушкой, и лишь для небольшого процента людей — инструментом в достижении конечной цели. В моем случае такой принтер станет инструментом реализации вполне конкретной задачи: сделать всю механику, крепеж и корпус конечного устройства. Ну а чтобы не было скучно — принтер было решено собрать почти с нуля, то есть из KIT-комплекта. Выбор пал на новый принтер компании «Мастер Кит» 3D MC3 Мастер v1.1. Заехав к производителю, я получил на руки синий чемоданчик и отправился домой, для выполнения первого шага на пути к цели.
3D принтеры, для большинства, являются хобби или игрушкой, и лишь для небольшого процента людей — инструментом в достижении конечной цели. В моем случае такой принтер станет инструментом реализации вполне конкретной задачи: сделать всю механику, крепеж и корпус конечного устройства. Ну а чтобы не было скучно — принтер было решено собрать почти с нуля, то есть из KIT-комплекта. Выбор пал на новый принтер компании «Мастер Кит» 3D MC3 Мастер v1.1. Заехав к производителю, я получил на руки синий чемоданчик и отправился домой, для выполнения первого шага на пути к цели.
+12
Сахарные инжекции в C#
5 мин
42KТуториал
C# — продуманный и развитый язык программирования, в котором предусмотрено немало синтаксического сахара, упрощающего написание рутинного кода. Но всё-таки существует ряд сценариев, где нужно проявить некоторую смекалку и изобретательность, чтобы сохранить стройность и красоту.
В статье мы рассмотрим некоторые такие случаи, как широкоизвестные, так и не очень.
В статье мы рассмотрим некоторые такие случаи, как широкоизвестные, так и не очень.
+22
Делаем ИК-пульт ДУ для фотоаппарата
5 мин
49KКак-то недавно мне понадобилось дистанционно управлять затвором зеркалки. Проводной вариант был отброшен, неудобно. Поискав по магазинам, нашел пульт ML-L3. Но отдавать за него тысячу рублей не хотелось, тем более что выполняемая функция на первый взгляд элементарная. Решил сделать сам. А тут, кстати, подоспели выходные и работа закипела…
+32
Простое управление вашим Arduino через web
6 мин
107KТуториал
Recovery Mode
Эта статья предназначена для новичков. Здесь будет описано как из web приложения при помощи ajax запросов посылать команды phyton скрипту, который будет передавать их через serial port непосредственно на наш arduino.
Вы приобрели себе Arduino, попробовали несколько примеров, поигрались со скетчами. Но вам этого мало, вы хотите управлять, управлять всем этим добром через интернет. Самый простой способ — это приобрести шилдик с Ethernet-портом и подключить его к Arduino (или приобрести платку с уже встроенным Ethernet ). Но она и стоит дороже и в управлении надо поднатаскаться.
Вы приобрели себе Arduino, попробовали несколько примеров, поигрались со скетчами. Но вам этого мало, вы хотите управлять, управлять всем этим добром через интернет. Самый простой способ — это приобрести шилдик с Ethernet-портом и подключить его к Arduino (или приобрести платку с уже встроенным Ethernet ). Но она и стоит дороже и в управлении надо поднатаскаться.
+6
Bubot — очень легкий фреймворк на Python 3 для программирования роботов и домашней автоматизации
10 мин
40KПредыстория
Хотелось создать своего робота, а так же автоматизировать управление светом и климатом дома. С этой целью начал изучать имеющиеся возможности. Для себя я разделил все решения на две группы: системы в которых код на контроллере выполняется в одном главном цикле (arduino, lego и т.п.) и системы состоящие из параллельно работающих процессов обменивающихся между собой сообщениями.
Интуитивно выбрал вторую группу, так как хотелось найти максимально простое решение с дружественным пользовательским интерфейсом. Из наиболее популярных представителей этого «семейства» очень понравились Microsoft Robotics Studio и ROS. Но к сожалению, на текущий момент, привязать их к конкретному железу весьма не просто, да и разобраться в них с нуля так же весьма не тривиальная задача. В итоге принял решение писать сам, но «кодить» на C очень не хотелось, Душа просила чего-нибудь попроще и полегче. В итоге выбрал Python. А учитывая, что по мимо робота и «умного дома» в голову начало лезть куча других идей, то решил сразу сделать небольшой фреймворк, в котором основной упор был бы сделан на простоту разработки.
Концепция
Концептуально фреймворк представляет собой набор поддерживаемых пользователем модулей реализующих различные функции робототехники. При работе Bubot строит сеть из процессов, которые могут асинхронно получать и отправлять сообщения между собой. Так же вы можете построить сеть из роботов, которые будут общаться между собой.
Сеть процессов строится на базе стандартного Python модуля multiprocessing. Система обмена сообщениями и разделяемая память реализованы при помощи Redis.
Каждый Bubot имеет встроенный веб-сервер веб-сервер Tornado, который позволяет контролировать состояние, управлять роботом, на ходу менять параметры (калибровать) робота, а также закладывается возможность обмена данными между роботами.
Bubot не является системой реального времени, хотя Bubot возможно интегрировать с кодом реального времени.
+18
Простая игровая тв-приставка на Arduino
11 мин
61KТуториал
Вступление
При свете дня, а затем и во сне, возникла у меня идея создания собственной регламентированной тв-приставки. Собственно, тут-то открылся передо мной богатый и насыщенный мир радиотехники. Так как ранее я не имел дела с серьезной разработкой электроники, мой выбор пал на более простой вариант — Arduino и ее самая распространенная модель — Uno.
План работы
1. Разобраться с библиотекой
2. Спаять плату видео вывода
3. Написать код
4. Вырезать корпус
Финальная внешняя составляющая не особо важна в случае с подобными проектами.
Шаг 1. Разбираемся, что к чему
После нескольких десятков минут отчаянного гугления пришел к выводу, что создать приставку даже типа Денди у меня не получится. Ну, что тут делать, раз взялся, буду доводить дело до конца.
+25
Командно-ориентированная навигация в xaml-приложениях
5 мин
4.6KНедавно мы уже узнали о принципе прямых инжекции и эффективном связывании вью-моделей с представлениями, а также о том, каким образом создавать расширения привязки. Продолжим исследование библиотеки Aero Framework и рассмотрим ещё один архитектурный вопрос.
Навигация между представлениями (экранами) в xaml-ориентированных приложениях довольно важная и интересная задача. Особенно это касается её реализации в рамках паттерна MVVM. В идеале вью-модели не должны содержать никаких прямых ссылок на представления, чтобы быть кросс-платформенными и сохранялась возможность повторного их использования в нескольких проектах. Сегодня мы узнаем, как этого достичь.
Навигация между представлениями (экранами) в xaml-ориентированных приложениях довольно важная и интересная задача. Особенно это касается её реализации в рамках паттерна MVVM. В идеале вью-модели не должны содержать никаких прямых ссылок на представления, чтобы быть кросс-платформенными и сохранялась возможность повторного их использования в нескольких проектах. Сегодня мы узнаем, как этого достичь.
+11
Превращение Android телефона в сетевую SQL базу данных (MyMobileSQLServer — Utesov)
5 мин
26KТуториал
Недавно я начал делать очередной проект для мобильных устройств. Его побочным продуктом стало приложение, с помощью которого можно развернуть сетевую базу данных на любимом Android телефоне, планшете и т.п… Предлагаемое решение является сетевым провайдером SQLite базы данных.
Приложение многопользовательское, каждый пользователь имеет свою БД, которая недоступна другим пользователям. Код открытый, лицензия Apache 2.0.
Для демонстрации заявленных возможностей написано простое приложение которое позволяет делать SQL запросы на сервер и получать результаты их выполнения, его код рассмотрим здесь. Время освоения — 10 минут. Для тестирования достаточно одного устройства (если используется два и более, то необходимо WiFi подключение). Поехали!
Кадр из к\ф «Весёлые ребята» (доработанный)
Приложение многопользовательское, каждый пользователь имеет свою БД, которая недоступна другим пользователям. Код открытый, лицензия Apache 2.0.
Для демонстрации заявленных возможностей написано простое приложение которое позволяет делать SQL запросы на сервер и получать результаты их выполнения, его код рассмотрим здесь. Время освоения — 10 минут. Для тестирования достаточно одного устройства (если используется два и более, то необходимо WiFi подключение). Поехали!
Кадр из к\ф «Весёлые ребята» (доработанный)
+6
В Android обнаружена опасная уязвимость
1 мин
19KКомпания Palo Alto Networks сообщила об обнаружении опасной уязвимости в компоненте установщика приложений (PackageInstaller) Android версий <5. Эта уязвимость схожа с уязвимостью Masque для iOS, о которой мы писали здесь, и позволяет устанавливать одно приложение поверх другого, причем это новое приложение получит доступ ко всем данным предыдущего. Речь идет об установке приложений из стороннего магазина приложений, а не из Google Play, поскольку, только при таком сценарии злоумышленники могут воспользоваться уязвимостью.
По подсчетам Palo Alto Networks, уязвимость охватывает 49,5% всех устройств, которые работают под управлением Android. Сам эксплойт был успешно протестирован на следующих версиях Android: 2.3, 4.0.3-4.0.4, 4.1.X, и 4.2.x. Уязвимыми являются некоторые прошивки с версиями Android 4.3. Для Android 4.4 эта уязвимость уже была устранена.
По подсчетам Palo Alto Networks, уязвимость охватывает 49,5% всех устройств, которые работают под управлением Android. Сам эксплойт был успешно протестирован на следующих версиях Android: 2.3, 4.0.3-4.0.4, 4.1.X, и 4.2.x. Уязвимыми являются некоторые прошивки с версиями Android 4.3. Для Android 4.4 эта уязвимость уже была устранена.
+11
Информация
- В рейтинге
- Не участвует
- Откуда
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Зарегистрирован
- Активность