sense hat emulator что это
Интересные платы расширения для Raspberry Pi
Raspberry Pi — сама по себе интересная и многофункциональная вещь, на базе которой можно реализовать множество проектов.
Но существуют платы расширения, которые делают Raspberry Pi еще более функциональной и расширяют области ее применения.
Краткий обзор-подборку представляющих интерес плат расширения для Raspberry Pi я публикую сегодня на блоге.
Raspberry Pi Sense HAT
Sense HAT — официальная плата расширения от Raspberry Pi Foundation.
Она создана для обучения работе с GPIO и несет на себе:
Sense HAT подойдет для людей с любым уровнем подготовки. Разработчиками выпущена специальная библиотека Python, в которой описаны функции для работы со всеми сенсорами этой платы расширения, а в сети существует множество руководств по практическому использованию этой платы в DIY-проектах.
Самым очевидным DIY-проектом, задействующим Sense HAT, является создание метеостанции. Получаем данные с барометра, датчиков влажности и температуры, используем матричный дисплей для вывода информации исходя из полученных данных.
Освоить работу с GPIO можно и другими способами. Например, купив нужные сенсоры по отдельности, найдя в сети руководства для новичков по программированию на Python и проведя собственные эксперименты. Но использование Sense HAT является наиболее дружелюбным к новичкам методом получения таких знаний и потому отлично подходит для школьников или просто далеких от техники (но интересующихся и желающих познать что-то новое) людей.
Практическое применение: обучение работе с GPIO и Python, создание собственной метеостанции, другие DIY-проекты.
SupTronics X800
SupTronics X800 — модуль для подключения 2,5″ жестких дисков к Raspberry Pi.
Все просто — на плате распаян SATA-интерфейс и отверстия для надежного крепления винтами жесткого диска. Поверх платы закрепляется «малинка», а сопряжение с самой платой происходит посредством установки компактного переходника с USB-порта модуля на USB-порт «малинки».
Жесткие диски можно подключать любой емкости. В описании самого модуля сказано, что поддерживаются диски до 1Тб включительно, но используемый в модуле контроллер GL830 не содержит ограничений по емкости используемого накопителя, а уже купившие SupTronics X800 люди подтверждают, что он работает с дисками и на 2-4Тб.
В качестве приятного бонуса — этот же модуль позволяет побороть один из главных недостатков Raspberry Pi — торчащие на две стороны интерфейсы. Согласитесь, неудобно, когда на одном торце «малины» выведены порты USB и Ethernet, а на боку находятся порты HDMI и microUSB для питания. В результате образуется такой неопрятный ежик из проводов. SupTronics X800 дублирует порты HDMI и microUSB таким образом, что они оказываются выведены на тот же торец, где размещены Ethernet и USB-порты.
Отличная штука для перфекционистов, стремящихся к простоте и завершенности.
Практическое применение: создание домашнего сервера или медиаприставки (tv-box) на базе Raspberry Pi.
SupTronics X400
Не секрет, что у Raspberry Pi довольно плохо обстоят дела с выводом звука.
При выводе звука на аналоговый 3,5мм разъем зачастую появляются помехи и дребезг, особенно на высокой громкости. Если звук идет по HDMI, то помех нет. Но в любом случае установленная в «малине» звуковая карта относится к начальному сегменту и не способна удовлетворить ценителей качественного звучания.
Для потребностей большинства пользователей за глаза хватает и такой звуковой карты. Но если хочется задействовать Raspberry Pi в создании продвинутого медиацентра или автомобильной акустической системы, то не обойтись без модуля SupTronics X400.
SupTronics X400 — это высококачественная звуковая карта, подключающаяся к GPIO-интерфейсу «малины».
На ней установлены:
Выходная мощность составляет 2×20Вт, соотношение сигнал/шум 112дБ, уровень искажений 0,0019%. Вполне аудиофильское решение за не очень большие деньги.
Практическое применение: создание Hi-Fi медиацентра или автомобильного компьютера со встроенной акустической системой на базе Raspberry Pi.
SupTronics X6000
SupTronics X6000 — еще одна звуковая карта от компании SupTronics, специализирующейся на создании качественных модулей для Raspberry Pi.
В отличие от своего младшего собрата (я про X400), SupTronics X6000 может похвастаться уже 4 аналоговыми 3,5мм аудиовыходами для подключения 7.1-канальной акустики, цифровым выходом S/PDIF и поддержкой вывода звука через HDMI-интерфейс.
Пропал ИК-приемник и ручка регуляции звука. Собственный вход для питания с цепью стабилизации остался.
Зато здесь установлено аж 4 ЦАПа ESS Tech Sabre ES9023.
На мой взгляд, X6000 стоит покупать уже более продвинутым ценителям правильного звука, которые понимают что они будут делать с этим модулем. Для нужд обычного домашнего пользователя с запросами чуть выше среднего будет достаточно и модели X400.
Практическое применение: создание Hi-Fi медиацентра, системы «мультирум» или автомобильной акустической системы на базе Raspberry Pi.
Модуль аккумулятора + USB-хаб
Еще один простой и полезный модуль.
На плате установлен аккумулятор на 3800мАч, зарядное устройство для него и USB-хаб на дополнительные 5 портов (четыре обычных USB 2.0 и еще один microUSB OTG).
Питание подается в порт для зарядки аккумулятора, а сама «малинка» запитывается от этого аккумулятора. Учитывая низкое энергопотребление Raspberry Pi, емкости аккумулятора при отключении сетевого источника питания ей хватит надолго.
Практическое применение: создание портативного компьютера на базе Raspberry Pi, другие DIY-проекты, использование в качестве ИБП.
Где купить: GearBest
Модуль GPS
GPS-модуль, совместимый со всей линейкой микрокомпьютеров Raspberry Pi, включая в том числе и Pi Zero.
Обладает низким энергопотреблением и стандартным гнездом под внешнюю антенну. При необходимости идущая в комплекте антенна легко заменяется на любую другую, подходящей мощности и длины.
Практическое применение: создание автомобильного компьютера на базе Raspberry Pi, другие DIY-проекты.
Модуль для подключения VGA-монитора
И еще один функциональный модуль, который просто добавляет VGA-порт на Raspberry Pi.
VGA — устаревший стандарт. Купить с рук монитор с VGA-выходом сегодня можно за символические 500 рублей, а то и вовсе забрать за самовывоз. Но будучи подключенным к Raspberry Pi такой монитор еще может долго и с пользой поработать.
Проблема лишь в том, что на «малине» отсутствует VGA-разъем. И эта проблема решается покупкой дополнительного модуля.
Практическое применение: подключение VGA-монитора к Raspberry Pi
E-Ink дисплей для Raspberry Pi
Все знают, что к Raspberry Pi можно подключать дисплеи. Я даже публиковал статью об этом вскоре после приобретения «малинки».
Но в данном случае речь идет не про обычный дисплей, а про изготовленный по технологии электронных чернил.
E-Ink дисплей обладает ультранизким энергопотреблением. Он обладает высокой контрастностью, не слепнет на солнце и не нуждается в светодиодной подсветке. Подключается по GPIO и совместим с любой «малиной».
Возможности E-Ink дисплея ограничиваются только фантазией его владельца. Например, я читал статью о том, как в одном магазине владельцы полностью заменили бумажные ценники на электронные, изготовленные на базе такого дисплея и Raspberry Pi Zero.
Практическое применение: различные DIY-проекты.
Где купить: AliExpress
Вот такая получилась подборка.
Напоминаю, что вводную статью о том, что есть Raspberry Pi и Arduino можно прочитать здесь, а тут опубликован обзор Raspberry Pi и описание первых шагов по запуску и настройке для начинающих.
Raspberry Pi Sense HAT
Sense HAT — официальная плата расширения от Raspberry Pi Foundation.
Она создана для обучения работе с GPIO и несет на себе:
Sense HAT подойдет для людей с любым уровнем подготовки. Разработчиками выпущена специальная библиотека Python, в которой описаны функции для работы со всеми сенсорами этой платы расширения, а в сети существует множество руководств по практическому использованию этой платы в DIY-проектах.
Самым очевидным DIY-проектом, задействующим Sense HAT, является создание метеостанции. Получаем данные с барометра, датчиков влажности и температуры, используем матричный дисплей для вывода информации исходя из полученных данных.
Освоить работу с GPIO можно и другими способами. Например, купив нужные сенсоры по отдельности, найдя в сети руководства для новичков по программированию на Python и проведя собственные эксперименты. Но использование Sense HAT является наиболее дружелюбным к новичкам методом получения таких знаний и потому отлично подходит для школьников или просто далеких от техники (но интересующихся и желающих познать что-то новое) людей.
Описание Raspberry Pi Sense HAT
Гироскоп-датчик угловой скорости: ±245/500 / 2000 dps
Акселерометр датчик линейного ускорения: ±-2/4/8/16 g
Магнитометр — магнитный Датчик: ± 4/8/12/16 Гаусса
Барометр: 260 — 1260 гПа абсолютный диапазон
Датчик температуры: ± 2 градуса C в 0-65 град C
Датчик относительной влажности
Дисплей матрицы СИД 8×8
5 кнопок
Спецификация Raspberry Pi Sense HAT :
Основная архитектура: AVR
Особенности: 8×8 светодиодный матричный Дисплей, Accelero / гироскоп/Магнето/давление воздуха/температура / влажность I2C датчики, маленький джойстик
Для : Raspberry Pi
Информация об изделиях
Номер ядра: ATtiny88
Кремневое семейство: tinyAVR
Производитель чипа: Atmel
Desktop Sense HAT emulator
If this post gives you a sense of déjà-vu it’s because, last month, we announced a web-based Sense HAT emulator in partnership with US-based startup Trinket.
Today, we’re announcing another Sense HAT emulator designed to run natively on your Raspberry Pi desktop, instead of inside a browser. Developed by Dave Jones, it’s intended for people who own a Raspberry Pi but not a Sense HAT. In the picture below, the sliders are used to change the values reported by the sensors while your code is running.
So, why do we need two versions?
The emulator will come pre-installed in the next Raspbian release but, for now, you can just install it by typing the commands below into a terminal window:
You can then access it from the Desktop menu, under Programming.
The emulator closely simulates the Sense HAT hardware being attached to your Pi. You can read from the sensors or write to the LED matrix using multiple Python processes, for example.
Write your code in IDLE as before; there are also a number of examples that can be opened from the emulator’s built-in menu. If you then want to port your code to a physical Sense HAT, you just need to change
at the top of your program. Reverse this if you’re porting a physical Sense HAT program to the emulator, perhaps from one of our educational resources; this step isn’t required in the web version of the emulator.
There are a number of preferences that you can adjust to change the behaviour of the emulator, most notably sensor simulation, otherwise known as jitter. This costs some CPU time, and is disabled by default on the low-end Raspberry Pis, but it provides a realistic experience of how the hardware sensors would behave. You’ll see that the values being returned in your code drift according to the known error tolerances of the physical sensors used on the Sense HAT.
This emulator will allow more Raspberry Pi users to participate in future Astro Pi competitions without having to buy a Sense HAT: ideal for the classroom where 15 Sense HATs may be beyond the budget.
So, where do you start? If you’re new to the Sense HAT, you can just copy and paste many of the code examples from our educational resources, like this one. You can also check out our e-book Sense HAT Essentials. For a complete list of all the functions you can use, have a look at the Sense HAT API reference here.
You can even install this emulator on other types of Linux desktop, such as Ubuntu! For more information on how to do this, please visit the emulator documentation pages here.
Raspberry Pi Blog
If this post gives you a sense of déjà-vu it’s because, last month, we announced a web-based Sense HAT emulator in partnership with US-based startup Trinket.
Today, we’re announcing another Sense HAT emulator designed to run natively on your Raspberry Pi desktop, instead of inside a browser. Developed by Dave Jones, it’s intended for people who own a Raspberry Pi but not a Sense HAT. In the picture below, the sliders are used to change the values reported by the sensors while your code is running.
So, why do we need two versions?
The emulator will come pre-installed in the next Raspbian release but, for now, you can just install it by typing the commands below into a terminal window:
You can then access it from the Desktop menu, under Programming.
The emulator closely simulates the Sense HAT hardware being attached to your Pi. You can read from the sensors or write to the LED matrix using multiple Python processes, for example.
Write your code in IDLE as before; there are also a number of examples that can be opened from the emulator’s built-in menu. If you then want to port your code to a physical Sense HAT, you just need to change
at the top of your program. Reverse this if you’re porting a physical Sense HAT program to the emulator, perhaps from one of our educational resources; this step isn’t required in the web version of the emulator.
There are a number of preferences that you can adjust to change the behaviour of the emulator, most notably sensor simulation, otherwise known as jitter. This costs some CPU time, and is disabled by default on the low-end Raspberry Pis, but it provides a realistic experience of how the hardware sensors would behave. You’ll see that the values being returned in your code drift according to the known error tolerances of the physical sensors used on the Sense HAT.
This emulator will allow more Raspberry Pi users to participate in future Astro Pi competitions without having to buy a Sense HAT: ideal for the classroom where 15 Sense HATs may be beyond the budget.
So, where do you start? If you’re new to the Sense HAT, you can just copy and paste many of the code examples from our educational resources, like this one. You can also check out our e-book Sense HAT Essentials. For a complete list of all the functions you can use, have a look at the Sense HAT API reference here.
You can even install this emulator on other types of Linux desktop, such as Ubuntu! For more information on how to do this, please visit the emulator documentation pages here.
Кроссплатформенная разработка погодной станции для Raspberry Pi
Как известно, что ни делай под Raspberry Pi, получится либо медиаплеер, либо метеостанция. Постигла эта участь и меня — когда после очередного ливня датчик метеостанции залило, настала пора или купить новую, или сделать самому.
От метеостанции нужны были следующие функции:
Получилось примерно так:
Подробности реализации и готовый проект под катом.
Получение данных погоды
Первое, с чем нужно было определиться — это получение данных погоды. Здесь есть 2 варианта, либо использовать свои датчики, либо брать погоду из интернета. Первое интереснее, но есть несколько «но»:
— Raspberry Pi sense hat
Плата имеет «на борту» термометр, барометр, датчик влажности, гироскоп и акселерометр — но чем думали разработчики, ставя такой «экран» 8х8 светодиодов, непонятно — ничего внятного на нем вывести нельзя. Желаю разработчикам этого модуля всю жизнь UI под матрицу 8х8 писать 🙂
— Raspberry Pi weather hat
Ничего кроме светодиодов здесь нет вообще.
В общем, как ни странно, но нормального готового шилда для метеостанции с хорошим экраном и хорошим набором датчиков так никто и не сделал. Краудсорсеры, ау — рыночная ниша пропадает 🙂
В итоге, не паримся и делаем по-простому — берем погоду из Интернета и выводим на обычный TFT. Как подсказал гугл, самое развитое API сейчас у https://openweathermap.org/api, его и будем использовать.
В комментариях был вопрос про точность интернет-данных. Как можно видеть в коде ниже, для вывода температуры и атмосферного давления используется запрос на получение текущих (current weather data), а не прогнозируемых данных. Их точность можно считать вполне достаточной для бытовых целей, более того, скорее всего она даже выше, чем точность уличного термометра/датчика, размещенного за окном или на балконе.
Регистрация
Для получения данных погоды с openweathermap нужен ключ, его можно получить бесплатно, зарегистрировавшись на вышеупомянутом сайте. Ключ выглядит примерно так «dadef5765xxxxxxxxxxxxxx6dc8». Большинство функций доступны бесплатно, платные API нам не понадобятся. Для бесплатных функций есть ограничение на 60 запросов в минуту, нам этого достаточно.
Чтение данных
Чтение данных весьма просто благодаря библиотеке pyowm.
Получение погоды на данный момент (Python):
Получение прогноза погоды для отображения осадков:
На выходе получаем массив данных со списком дождей и их интенсивностью. Несмотря на название функции three_hours_forecast_at_coords, дожди прописаны на 2-3 дня вперед.
Можно использовать GET-запросы напрямую, например так. Это может пригодиться, например при портировании кода на MicroPython под ESP.
Получение координат пользователя
Как можно видеть выше, для получения данных нужны широта и долгота. Получение координат также весьма просто, и делается в 3 строчки кода:
Собственно, самая сложная часть. На Raspberry Pi используется TFT-дисплей от Adafruit, поддерживающий систему команд ILI9340. Библиотеки под него найти несложно, однако отлаживать код на Raspberry Pi не очень удобно. В итоге было принято решение написать высокоуровневый набор контролов, которых нужно было всего 3 — изображения, текст и линии. При запуске на Raspberry Pi контрол будет рисовать себя на TFT, при запуске на десктопе будет использоваться встроенная в Python библиотека tkinter. В итоге, код будет работать везде — и на Raspberry Pi, и на Windows, и на OSX.
Код одного контрола выглядит примерно так:
Класс «FakeTFT» создает обычное окно программы:
Класс «LCDTFT» использует «настоящий» дисплей (фрагмент кода):
При инициализации автоматически выбирается нужный дисплей, в зависимости от того, где запускается программа:
Все это позволяет полностью абстрагироваться от «железа», и писать код типа такого:
Собственно UI выглядит так:
На экране отображаются текущая температура, график атмосферного давления за сегодняшний день (в следующей версии будет добавлен график температуры), также в случае прогноза дождя, его время отмечается на графике вертикальной синей чертой (на данной картинке дождей нет). Также выводятся время последнего обновления данных и IP-адрес, если понадобится подключиться к устройству.
Желающие ознакомиться с исходником подробнее, могут посмотреть его на guthub.
Установка на Raspberry Pi
Для тех, кто не хочет заморачиваться описанным выше, короткая инструкция по установке под спойлером.
— Если не установлен Python3, ставим:
sudo apt-get install python3
— Ставим дополнительные библиотеки (они нужны для работы с дисплеем):
sudo pip3 install numpy pillow spidev
— Добавляем в автозапуск (sudo nano /etc/rc.local)
Если все работает, то перезагружаемся (sudo reboot) и пользуемся.
В плане добавить еще что-нибудь полезное, например отображение карты облачности, API на openweathermap для этого есть.