Сообщество - Arduino & Pi

Arduino & Pi

1 493 поста 20 825 подписчиков

Популярные теги в сообществе:

18

Прошу помощи: Матричные часы с "погодной станцией" на Ардуино

Привет всем ардуиноводам.

Решил я создать небольшой проект. Который правда уже раз двести создавали, но для меня это хорошый опыт работы с ардуино.

Решил я собрать часы на esp8266 с матричным диплеем. Вот таким:

В самих часах будет модуль BME280, DS3231, и радио приемник на 433 МГц. А также будет внешний блок для измерения уличной температуры и влажности на arduino pro mini (в дальнейшем попробую заменить на ATtiny85) и DHT22 с радио передатчиком на 433 МГц.

Пишу для обоих контроллеров в Arduino IDE.
Уже написал немного говнокода для передачи показаний dht22 с внешнего модуля на основной блок часов по радио.
Для работы с радио модулем использую библиотеку RCswitch.
Раз в энное количество времени с внешнего блока идет отправка 16ти пакетов, 8 с показанием температуры и 8 с влажностю. Пакет состоит из 6 знаков первые три это кодировка типа пакета, 300 для температуры и 303 для влажности. Температура умножается на 10 для избавления от дробной части и пртбавляется 500 для избавления от отрицательных значений. Влажность только умножается на 10. Это последние символы пакета.

Вот с радио передачей этих пакетов собственно и возникла пока сложность. Дольность совсем не радует, максимум 6 метров по прямой и все пакеты теряются.
Для передатчика использую штырьевую четверть-волновую антенну ~16,5 см, для приёмника использую спиральную проводник сечение 0.5 мм, количество витков 17, внутренний диаметр спирали 0.5 см и длинна спирали ~3 см. Катушку индуктивности крутил, непомогает.
К коду вроде притензий нет, почти стандартный из примера, немного модифицированный. А вот антенна вызывает сомнения.

Есть у кого опыт работы с этим радио модулем?
Прошу помощи.

Показать полностью 2
7099

18 подробнейших уроков по программированию Arduino

Друзья, наконец-то я закончил съёмку этого курса уроков! Думаю многие про него уже знали, и ждали окончания. В общем, спасибо за поддержку и приятного просмотра!

Ну вот, теперь оставлю после себя что-то реально полезное =)

Показать полностью 17
1146

"Станок с ЧПУ из говна и палок за 5k"

Авторское описание:
"В этом видео ты увидишь станок с ЧПУ стоимость которого не превышает 2.5 степендий, один из дорогих компонентов заменен на мебельные направляющие, а корпус выполнен из фанеры низшего качества..."
За видео благодарим товарища "Andrey Prygun":
https://www.youtube.com/channel/UCZdlCcnyY43PqLT7OAS5RiQ

Показать полностью
195

Ambilight через HDMI. Часть 2 - настройка HyperCon.

Всем привет!

Ленту мы уже подключили, теперь осталась калибровочка. Сегодня я расскажу:

- как откалибровать получаемую (через граббер) картинку;

- как установить Hypercon;

- как настроить Hypercon;

- как откалибровать цвет.


*Текст - картинка.


Но для начала немного вернёмся к прошлому посту.

Были и мусор, и более полезные советы. Что из этого хотелось бы отметить:

1. Это не подсветка для ПК. У ПК всё в разы проще. Как сделать? Открываете Youtube, пишите "ambilight для ПК" и всё. Готово! Изич! Вам понадобятся Arduino Nano и лента с чипом WS281 (фото ниже: три контакта, шесть ножек, по три блока на отрезок). Софт на выбор: либо AmbiBox, либо Prismatik.

2. Да, есть более простые варианты сборки, без ардуинки, на ПИ зеро и т.д. и т.п. Но мне попался такой (который описан в первом посте). Как собрать проще?

Пожалуйста: @UmnikOne уже описал сей способ в этом посте, советую к прочтению.

3. "Дешевле будет купить ТВ". Ну.. Самый дешёвый ТВ Филипс с Амбилайт - 50к рублей, пожалуйста.

4. "Но ведь есть готовые варианты". Когда я только начинал собирать (случилось это всё не за один вечер), проект, который только ленивый не закинул в коммент, был ещё на кикстартере. А вариант для 4к вообще находился в разработке.

Ещё здесь? Налили чаёк? Ну тогда пошла жара =D

Позже нам понадобятся: Putty, WinSC (либо Total Commander) и HyperCon.jar.

Сеть на Raspberry Pi3

Во время настройки я рекомендую использовать LAN, так как он стабильный и можно не переживать, что сетка отвалится. Настройки сети происходят во вкладке Settings (интерфейс интуитивно понятный, так что найдёте) =)

Выписываем IP-шник от RPi3, он нам ещё пригодится.

Установка HyperCon

С помощью Java запускаем HyperCon.jar.

- Во вкладке SSH выбираем ось, которую мы поставили на Малинку;

- вписываем IP;

- порт 22;

- логин и пароль (для openelec: root / openelec);

- нажимаем Connect.

После успешного коннекта, нажимаем Inst./Upd. Hyperion.

В консоли ХайперКона будет видно когда закончится установка.

Корректируем настройки и чекаем получаемое видео

В корне SD-карточки лежит config.txt туда необходимо дописать пару строк, что бы поддать жару на USB.

Запускаем Putty. Подключаемся к малинке через SSH по порту 22.

Логин и пароль (от openelec): root / openelec

Проверяем подключенные девайсы:

lsusb

ls /dev/video*

Включаем HDMI-устройство и смотрим, что к нам приходит. Для этого в путти вбиваем команду:

LD_LIBRARY_PATH=/storage/hyperion/bin /storage/hyperion/bin/hyperion-v4l2 /storage/.config/hyperion.config.json --crop-top 0 --crop-left 0 --crop-bottom 0 --crop-right 0 --size-decimator 8 --frame-decimator 2 --screenshot

Скриншот смотрим через winSCP или TC.

Если есть чёрные отступы, то вбиваем эту команду и смотрим скрин повторно:

LD_LIBRARY_PATH=/storage/hyperion/bin /storage/hyperion/bin/hyperion-v4l2 /storage/.config/hyperion.config.json --crop-top 40 --crop-left 50 --crop-bottom 0 --crop-right 30 --size-decimator 8 --frame-decimator 2 --screenshot

Это особенность дешёвый китайских грабберов. К примеру: на UTV007 отступы были, а вот на STK1160 их не было.

Если вторую команду использовать пришлось, то обратите внимание: изменились параметры

crop-top, crop-left, crop-right - их нужно будет внести в HyperCon.

Настройка HyperCon

Вкладка Hardware:

- Имя не меняем;

- Type: Adalight;

- Output: /dev/ttyUSB0;

- Baudrate: 500000;

- RGB byte order: если при тестировании у нас перепутались цвета, то выбираем подходящий для нас пункт.

Далее идёт настройка светодиодов и их полей захвата.

Первые четыре галки отмечают светодиоды в углах;

Далее количество светодиодов по горизонтали, слева и справа;

Bottom Gap - отмечает промежуток в ленте (обычно там ножка у ТВ);

Ниже отмечаем где у нас находится первые светодиод (начало ленты).

Настройка площади захватываемого поля и наложение друг на друга.

Вкладка Grabber:

Первую галку вырубаем, вторую врубаем.

Настройки остаются такими же как на скрине. Видео стандарт должен быть таким же, какой установлен на HDMI to AV конверторе.

*Если в пункте "Корректируем настройки и чекаем получаемое видео" Вам пришлось смещать видео, то вносим эти настройки в соответствующие строки Corp... .

Вкладка External:

Всё как на скрине.

Вкладка SSH:

Подключаемся к Малинке.

- В самом низу окна нажимаем Create Hyperion Configuration;

- Local Config Path - выбираем только что сохранённый файл (так надёжней);

- Send Config;

- Stop, Start.

После старта, лента должна приблизительно выдавать цвета с экрана.

Могут путаться местами красный, зелёный и синий, как это исправить я описал выше. После исправление сохраняем конфиг, заливаем его, Stop, Start и проверяем.

Калибровка цвета

Вкладка Process:

Началось самое интересно - калибровочка =D

Smoothing - плавность переливания цветов. Частоту советую оставить 30, а вот с временем можете поиграться.

Далее качаем архив с цветами. Если стенка за ТВ у вас цветная, то аккуратно закрепляем пару белых листов А4, так "честнее" будет цвет.

Сразу ставим галочку Send Continuous - это позволит обновлять настройки в реальном времени.

1. Whitelevel

- Открываем на весь экран белый фон;

- Корректирую КЗС ползунки, так что бы получился белый свет из светодиодов.

2. Gamma correction

- Далее перебираем задники с градацией серого;

- Корректируем значения, пока не получится более плавный переход света от белого к чёрному (выключенному).

3. Корректировка каждого канала отдельно

- Листаем red FF0000, green 00FF00, blue 0000FF, cyan 00FFFF, magenta FF00FF, yellow FFFF00;

- Корректируем значения красного, зелёного, синего каналов.

*Возможно понадобится чутка подкорректировать гамму

4. Дополнительные настройки

Luminance gain - яркость, чем выше показатель, тем больше белого;

Saturation gain - насыщенность цветов;

Backlight - лента будет светится, даже если экран чёрный. Чем выше показатель, тем ярче будет светить. Можно сделать его совсем небольшим, что бы в тёмных сцена не сидеть совсем в темноте.

Temperature - позволяет сделать цвета более тёплыми или холодными. По-тыкайте настройки своего монитора, что бы увидеть как это работает.

Всё что собрали аккуратно складываем в коробочку:

*Скорей всего в будущем переделаю её, сделаю более компактной

Итог (к сожалению, мобилка не передаёт всю яркость происходящего):

Спасибо за прочтение и критику. Я постарался разжевать всё, но исключено, что я что-то да пропустил.

Показать полностью 12 2
29

Еще один скрипт для подготовки образов для Raspberry Pi

Всем привет! В этой статье я хочу рассказать о ключевом компоненте сервиса CusDeb под названием Pieman, который мы недавно опубликовали на GitHub под лицензией GPLv3. Pieman представляет собой скрипт для подготовки образов для нескольких моделей Raspberry Pi. С самого начала этот проект задумывался как универсальное решение, которое должно поддерживать более одного устройства, более одной операционной системы и более одной архитектуры. На данный момент нам удалось частично этого добиться: скрипт готовит как 32-битные, так и 64-битные образы на базе Raspbian 9 «Stretch» и разных выпусков Ubuntu, но пока только для Raspberry Pi. В данный момент мы работаем над добавлением Alpine, в качестве новой операционной системы, и Orange Pi PC Plus, в качестве нового устройства.

Еще один скрипт для подготовки образов для Raspberry Pi

Когда мы только начали работать над CusDeb, сервисом для кастомизации образов ОС для одноплатных компьютеров, мы постоянно откладывали работу над компонентом, который должен был непосредственно заниматься сборкой. Затем мы приняли решение использовать в качестве сборщика скрипт rpi23-gen-image, который предлагал кастомизировать образы для Raspberry Pi 2 или 3 на базе Debian Jessie или Stretch. Ограничения этого решения были очевидны, но на первых порах нас все устраивало. Однако сразу после публикации нескольких посвященных CusDeb'у постов на популярных ресурсах (в том числе Пикабу), нас стали просить расширить список устройств платами Orange Pi и Banana Pi, и добавить поддержку архитектуры ARM64. Это можно было сделать как минимум тремя разными способами:

* найти еще пару сторонних скриптов, к примеру, для сборки образов для устройств, отличных от Raspberry Pi, и задействовать их в CusDeb;

* добавить поддержку новых устройств в rpi23-gen-image, значительно переработав проект;

* разработать собственный скрипт «с нуля», в котором с самого начала был бы задел на масштабирование в области новых устройств, операционных систем и архитектур.


Несмотря на изобилие скриптов-сборщиков образов, в разработке которых мы могли бы принять участие, мы решили написать свое решение, которое с самого начала не было бы привязано к какой-то конкретной плате или операционной системе. Более того, мы постарались упростить добавление новых операционных систем и устройств в наш скрипт. Идея очень близка к дистрибутивам GNU/Linux, все программное обеспечение которых расфасовано по так называемым пакетам. У каждого пакета есть свой сопровождающий. Когда вам нужно какое-то конкретное ПО, вы устанавливаете соответствующий пакет, если он есть в дистрибутиве. Если по какой-то причине его там нет, вы пакетируете это ПО и становитесь сопровождающим этого пакета в дистрибутиве, оказывая таким образом неоценимую пользу сообществу. Pieman предлагает примерно тот же самый подход: если скрипт по какой-то причине еще не поддерживает нужную вам плату или не готовит образы на базе вашей любимой операционной системы, у вас есть возможность добавить поддержку целевой ОС или платы в Pieman без переработки всей кодовой базы проекта. Но чтобы стать сопровождающим, сначала нужно стать пользователем, поэтому в следующем разделе я расскажу как установить Pieman.


Установка


Несмотря на то, что родной платформой для Pieman является GNU/Linux, скрипт может быть также запущен на Windows 10 и macOS благодаря подготовленному нами образу Docker-контейнера.

Сначала загрузите образ с Docker Hub'а


$ docker pull cusdeb/pieman


Затем скачайте скрипт https://raw.githubusercontent.com/tolstoyevsky/pieman/master....


После этого не забудьте сделать его исполняемым


$ chmod +x docker-pieman.sh


Теперь для того чтобы собрать первый образ операционной системы с помощью Pieman, просто запустите docker-pieman.sh


$ ./docker-pieman.sh


По умолчанию будет собран образ на базе Raspbian Stretch (32bit) для Raspberry Pi 3. Если вам нужен образ, к примеру, для Raspberry Pi 2 на базе Ubuntu 16.04 «Xenial Xerus», то воспользуйтесь параметрами DEVICE и OS:


$ ./docker-pieman.sh -e DEVICE=rpi-2-b -e OS=ubuntu-xenial-armhf


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


Мы призываем всех владельцев машин под управлением Windows 10 и macOS протестировать Pieman и оставить фидбек. Нам очень важно обеспечить работу проекта как можно на большем количестве платформ.


О сопровождении образов


Сопровождающий в Pieman отвечает за работоспособность той или иной операционной системы на каком-то конкретном устройстве. Так как нашему проекту меньше трех недель от роду, все операционные системы, на базе которых вы можете собрать образы для различных моделей Raspberry Pi, поддерживаются одним человеком, поэтому мы призываем всех неравнодушных к теме кастомизации образов ОС для одноплатных компьютеров присоединиться к нашему начинанию. Нашей основной целью является создание универсального решения, которое объединит как можно большее количество разношерстных устройств под одним интерфейсом. Я не вижу смысла раздувать итак достаточно длинную статью руководством сопровождающего, поэтому, если вам интересна эта тема, предлагаю ознакомиться с этим руководством в нашем блоге.


Заключение


Основная задача этой статьи заключалась в том, чтобы познакомить сообщество с новым проектом как можно раньше. На эту тему есть отличная поговорка: «Если вы опубликовали проект и вам за него не стыдно, значит вы опубликовали его слишком поздно.». Мы хотим, чтобы в первую очередь сообщество Raspberry Pi и других одноплатных компьютеров задавало направление развития этого проекта, поэтому мы ждем ваших замечаний и пожеланий.

Показать полностью 1
Отличная работа, все прочитано!