Делаем самую маленькую игровую консоль из Raspberry Pi Zero
В видео автор расскажет и покажет как установить софт и собрать прототип игровой консоли из Raspberry Pi Zero.
Задать вопросы по разработке и одноплатникам можно в Telegram чате @proARM
Как установить RetroPie, Rasbian на Raspberry pi (все версии)
В этой статье пойдёт речь о том как установить ОС на Raspberry pi.
Для начала нам нужно иметь при себе некоторые вещи, а именно: ПК с Windows, микро СД картачку минимум на 4 гб, лучше 8 и более также она должна быть 10 класса или больше (для ранних версий просто СД карту), картридер, интернет, а также саму плату raspberry pi для проверки правильности образа СД карточки.
Шаг 1: подключение СД карты
Вставте микро СД карту в картридер, а его в свою очередь воткните в ПК.
Шаг 2: фотрматирывание карточки
Желательно скачать программу "SD card formatter" но можно и стандартной опцией Windows, я расскажу как это сделать при помощи программы.
Загружаем программу с левого сайта например вот сылочка: https://sdformatter.ru/, далее устанавливаем.
Как только мы зашли в программу она сразу определит вашу карту (если она конечно вставленна в ПК) далее выбираем режим quick format и жмём кнопку "Format"
Ждем окончания процесса форматирывания (примерно 5-20 сек).
Шаг 3: подготовка к установки образа
Качаем программу Win 32 Disk Imager вот сылочка на оф. сайт: http://disk-imager.ru/download.html далее устанавливаем программу.
Шаг 4. Теперь идёт небольшое развлитвление на две части одна про RetroPie, другая про Rasbian.
ПодШаг 1: установка RetroPie
Заходим на оф. сайта: https://retropie.org.uk/download/ и выбираем версию своей платы (есть для плат с нулевой по третью) далее скачиваем образ. Так как он поставляется в архиве, его нужно распаковать и запихнуть в пустую строчку в программе Win 32 Disk Imager
Выбираем свою СД карту здесь:
И жмём кнопку "Write"
Теперь ждём окончания работ по записи всех файлов на карту.
Все готово, бежим встовляем карту в плату подключаем питание и у вас должна пойти загрузка системы RetroPie.
ПодШаг 2: установка образа Rasbian
Заходим на оф. сайта: https://www.raspberrypi.org/downloads/ и выбираем из двух окон (Boobs и Rasbian) выбираем тот самый Rasbian (рис. 1), потом выбираем что хотим его с гравическим интерфейсом(весит примерно 5 гб) (рис. 2) далее скачиваем образ.
Если хотим съэкономить нервы то скачаиваем Noobs (рис. 1), выбираем Noobs Lite (рис. 3) или просто Noobs (рис. 4) и загружаем. Далее делаем всё по инструкции ниже
Рис.1
Рис.2
Рис.3
Рис.4
Так как он поставляется в архиве, его нужно распаковать и запихнуть в пустую строчку в программе Win 32 Disk Imager.
Выьераем свою СД карту здесь:
И жмем кнопку "Write"
Теперь ждём окончания работ по записи всех файлов на карту.
Все готово, бежим встовляем карту в плату подключаем питание и у вас должна пойти загрузка системы Rasbian или Noobs, смотря что вы выбрали (если Noobs Lite, то при первом запуске необходимо подключение к интернету).
Шаг 5: можно пойти и со спокойной душой пойто пить чай
Спасибо за чтение этого поста!
PS: статья будет редактироватся.
Фонд Raspberry Pi открыл первый розничный магазин в Кембридже
Фонд Raspberry Pi Foundation, ставший известностным благодаря выпуску одноплатных компьютеров для разработчиков, открыл в четверг 7 февраля, свой первый магазин в городе, где был изобретен компьютер Raspberry Pi.
Вопреки тренду в направлении онлайн-ретейла команда Raspberry Pi Foundation открыла «экспериментальное пространство» в Кембридже. В продаже есть новый стартовый комплект деталей в дополнение к компьютеру.
Основатель Raspberry Pi Foundation Эбен Аптон (Eben Upton) выразил надежду, что магазин привлечёт внимание поклонников этого бренда.
Источник: bbc.co.uk
Python + Raspberry Pi + Pixhawk и квадрокоптер. Или как не надо делать роботов
Привет, меня зовут Алексей, уже 7 лет я ведущий разработчик Smart TV-решений в «Центре Высоких Технологий». Каждый год у нас проводится конкурс новогодних украшений, и каждый раз мы ничего не украшаем, а пилим всякие технологичные штуки. В этот раз скрестили дрон и Smart TV-приложение. А что из этого получилось — читайте ниже.
Идея была вполне реализуемая. Хотели сделать квадрокоптер в виде саней Деда Мороза, который бы сам и под музыку развозил по офису подарки для сотрудников. При этом ориентироваться в пространстве он должен был с помощью анализа ArUco-меток, взаимодействуя с приложениями для телевизоров («сдувание» работающими винтами дыма из труб, выбегание зверушек для встречи или провожания квадрокоптера).
И на всё три месяца. Конечно же, мы не успели.
Хотя в разное время над проектом работали до семи человек, результат оказался далек от идеала. В общем, мы научились только запускать коптер и написали приложение для телевизоров. Настроили взаимодействие квадрокоптера с телевизорами. Но обо всём по порядку.
Не помню в чьей больной голове (точно не в моей, но это не точно) зародилась идея запустить квадрокоптер-бомбардировщик в стенах офиса. Задача новая и непростая, однако ничего сверх наших сил мы в ней не обнаружили.
Да, мы перерыли интернетики с целью найти библиотеку для управления контроллером коптера. Да, надо было передавать в клиент стримом изображение с веб-камеры и анализировать его на сервере. Да, нужно было сделать бомболюк. Да, надо в целом написать оболочку, которая бы это всё в себе собирала. Ну и что? Мы всё это уже делали (кроме управления контроллером). Поэтому проекту дали зеленый свет.
Устройство
Каждая надсадно жужжащая у вас над головой эволюционная ошибка вертолета, в принципе, состоит из одного набора механизмов и схем. Это:
— контроллер;
— двигатели с винтами;
— аккумулятор;
— регулятор скорости (ESC);
— антенна телеметрии;
— GPS-модуль и компас;
— камера.
Последние два пункта опционально. Схему устройства винтокрылого друга можно увидеть вот тут:
Это добро ставится на корпус. Впрочем, корпус решили сделать свой. Потому что:
— Сами с усами;
— Нуждались в корпусе именно в виде саней;
— Уже неприлично дорого получалось.
Контроллер
Самая важная часть любой личинки вертолета. Имеет акселерометры по трем осям, программную прошивку, входы для установки периферийного оборудования и подключения двигателей, выход для управления. Без него ни один дрон не поднимется в воздух.
Штука настолько важная, что устанавливается на специальную амортизирующую платформу, чтобы снизить влияние вибрации и ударных нагрузок. Примерно такой:
Мы выбрали относительно мажорский контроллер. «Относительно», потому что я потом внимательнее посмотрел на монстров, которые предлагаются для серьёзных дядей… Тем не менее, контроллер имеет GPS, компас, автопилот, всякие прочие хорошие плюшки, поддерживает до восьми двигателей.
Строго говоря, такие контроллеры предназначены не только для вертикально взлетающей братии. Их можно устанавливать на любые движущиеся платформы, начиная от вертолетов, самолетов, заканчивая машинками и лодками. Вариантов использования куча. Но мы несколько отвлеклись.
Двигатели
Этих друзей превеликое множество. Круглых, квадратных, кривых, косых, больших, маленьких, дорогих и дешевых. Основное отличие: максимальная потребляемая мощность, сила тока и количество оборотов в секунду. В идеальном представлении сани должны были уметь поднимать банку пива (0,5 кг).
Прикинув общий вес конструкции, рассчитали примерную потребную подъемную силу и взяли качественные мощные двигатели. Как оказалось потом, они ни разу не запускались на полную мощность. Но лучше больше, чем меньше.
Аккумулятор
Единственный источник энергии, посредством которого потенциальный камикадзе будет держаться в воздухе. В процессе эксплуатации выяснились несколько любопытных моментов.
Во-первых, жужжащий огрызок технологий жрет энергию как бесплатную. Банка высаживается в момент, а заряжается долго.
Во-вторых, он не только жрет, но ещё и умеет оставлять заряд «про запас». Идея хорошая, потому что при достижении порогового значения напряжения, машина прерывает полет и совершает мягкую посадку, но выражается это в том, что банка «высаживается» ещё быстрее.
Регулятор скорости
Маленькая микросхема, без которой двигатели попросту работать не будут. Предназначена для распределения напряжения с банки на двигатель. Очень важная штука, обычно идет в комплекте с покупаемым мотором.
Антенна телеметрии
В сущности, периферийное оборудование, однако без неё управлять тупиковой ветвью развития летающих предметов не получится. Помимо этого, телеметрия используется не только для управления, но и для передачи видеосигнала с камеры, поэтому антенн ставится обычно две.
Кстати, телеметрия осуществляется посредством подачи и передачи сигналов на список каналов. Программно ими тоже можно управлять, но это категорически не рекомендуется, потому что так мы фактически отказываемся от вшитого автопилота и пишем свой. На коленке. И вещества и палок. В последний вечер. Как мы любим.
GPS-модуль
Основной и практически единственный способ позиционирования летающего уничтожителя нервов в пространстве. Обычно GPS-модуль содержит в себе ещё и компас. Чтобы на него ничего не влияло в полете, модуль ставится на специальную штангу, чтобы вот совсем ничего не влияло. Мы его использовали только ради компаса, потому что в помещении GPS не очень хорошо ловит. Поддерживает и другие системы позиционирования.
Как любой уважающий себя GPS, умеет ошибаться. Ошибка варьируется от нескольких метров до нескольких материков. Но в целом необходимый прибор на улице для осуществления миссий на удалении.
Камера
То, ради чего всё и делается. Гроза английских аэропортов умеет не только болтать под собой камеру. Контроллер может стабилизировать, удаленно управлять ею и предоставить очень развернутые настройки и инструменты для ее управления. Но мы это всё не использовали. В другой раз.
Управление
Все поделки инженерной мысли сапиенсов, использующие контроллеры, в сущности управляются одной программой: Mission Planer. Выглядит она примерно так:
Подробнее об этом здесь.
В ней представлен широчайший набор возможностей и настроек. Есть планирование полетного задания, геопозиционирование, ручное управление, всевозможные настройки и калибровка оборудования.
Правило №1: используй только то, что тебе понадобится
Да, программа нужная и полезная. В принципе. Но не для нашей задачи, потому что рассекатель воздуха должен управляться программно, а мы кучу времени угробили, чтобы разобраться с этим планировщиком.
Само ручное управление можно осуществлять чем душе угодно. Есть настройки для пульта, для джойстика. Можно вывести управление на мышку и клавиатуру. Основное требование — откалибровать пульт управления. Ну и управлять вручную. Поскольку мы ленивые разработчики, то управлять вручную не хотелось. Хотелось, чтобы винтокрылый побочный результат мыслительной деятельности сам летал.
Программный контроль
На просторах интернета нашли только эту библиотеку, предназначенную для программного управления подобием летательных аппаратов. И написана она (барабанная дробь) на питоне. В общем случае для версий 2.x, но и на питоне 3.5 она работала вполне стабильно. Библиотека обладает богатым функционалом и относительно хорошей документацией. Но прежде чем начинать писать свой мегауправляющий дроном код, сначала надо... Да, надо подключиться к контроллеру.
В качестве управляющей программной компоненты был применен микрокомпьютер Raspberry Pi, на котором развернут веб-сервер на фреймворке aiohttp.
Схему и инструкцию подключения «малины» и контроллера можно посмотреть вот тут.
Схематично это выглядит так:
Способ подключения такой. Контроллер и малина соединяются проводами по указанной схеме. Таким образом эмулируется радиосигнал отправляемый и принимаемый контроллером. На малине необходимо запустить прокси-сервер, который будет цепляться к контроллеру и передавать с него данные. Подключение может быть сделано через телеметрию, либо через USB. Для них используются разные COM-порты. На рисунке представлен способ через телеметрию.
Правило №2: неполная документация. Часто не пишут самые очевидные вещи
Например, для соединения из питона с контроллером необходимо указать адрес и порт: connectionString = ’127.0.0.1:14540′.
Но оказалось, что этот адрес и порт необходимо указать и в строке запуска прокси-сервера. Вот тут:
mavproxy.py —master=/dev/ttyAMA0 —baudrate 921600 —aircraft MyCopter
Да, это очевидно, но ни разу не очевидно. И мы кучу времени потратили, чтобы с этим разобраться. Однако и после запуска прокси с правильной строкой и после успешного коннекта к дрону из питона, чудо враждебной техники не хотело запускаться. То есть данные с коптера мы получаем, видим их, но команды будущая небесная угроза человечества исполнять отказывается.
В последний момент выяснилось, что данных для подключения к дрону надо существенно больше. Условно, он должен начать отдавать данные в подключенную телеметрию, в противном случае, он её просто не подключал и сидел довольный.
Отсюда правило №3: используй USB
Да, документации по ней было сильно меньше, но стабильность подключения однозначно была бы выше. Потому что не пришлось бы использовать пины малины.
Тестовый полет
И тут внезапно выяснилось, что:
— Коптер летает неровно;
— Ошибки его телеметрии +/- метр и более;
— Для полета адекватны задачи типа: поднимись на 10-20 метров, пролети 100 метров на север и так далее.
Напомню, что эта конструкция, созданная под влиянием вертолетов из фильма «Аватар», запускалась в стенах офиса, где много оргтехники, с потолка свисают лампы, вентиляция и декор. Ну ещё и сотрудники имеются. В общем, очень быстро выяснилось, что серьезный полет в помещении чреват 160 отрубленными головами.
Правило №4: используй нормальные тестовые условия
Если летающий танк размером 50х60 см, то его нахождение в воздухе в замкнутом пространстве неминуемо приведет либо к его повреждению, либо повреждению находящихся рядом с ним. Идеальной тестовой зоной будет помещение размером со спортзал.
Компьютерное зрение
Отдельным порталом в ад стала задача компьютерного видения. Идея заключается в считывании ArUco-меток, каждая из которых имеет записанную позицию в плане комнаты, и относительно которой коптер определяет свое положение в пространстве, а также положение относительно текущей точки маршрута.
Пример меток:
Для реализации использовалась библиотека openCV. Она используется для распознавания вообще всего, что только есть, в частности: лиц людей, предметов, автомобильных номеров, ну и наших меток. Установка библиотеки на операционную систему малины — Rasbian — стала сущим кошмаром, с которым поочередно бились четыре человека.
Тем не менее, мы её успешно решили, и теперь машина «научилась» распознавать метки в видеопотоке с веб-камеры. Но опять-таки не хватило времени всё настроить. Например, из двух и более меток библиотека возвращала распознанные номера всех меток, а данные только по одной. Почему так? Тайна велика есть.
Правило главное: выделяй достаточно времени на доводку решения
Прочие органы чувств
Чтобы мутант крыльев Икара не втыкался в возникающие внезапно препятствия, хотели применить датчики расстояния. Они предполагались к нахождению по всем сторонам машины и должны были сигнализировать о приближении препятствия, вследствие чего коптер должен остановиться, сделать «шаг в сторону» и продолжить движение дальше по маршруту.
Этот функционал мы не успели сделать совсем.
Маршруты
Мы много говорили про маршруты движения коптера. А что же это за звери такие? Скажу сразу, этот функционал был реализован самым первым и в полном объеме, но... не пригодился.
Маршруты движения представляют собой связный граф с вершинами, у каждой из которой записана её трехмерная координата в пространстве помещения. Соответственно коптер должен следовать от стартовой точки до финишной, в последней выполнять полетное задание. Следует он путем перемещения от текущей вершины до следующей.
Поскольку для каждой вершины мы знаем её координаты, а у коптера мы знаем его расположение (компас) и положение (метки), то вычислить куда надо лететь — чисто технический вопрос. Задача поиска пути между стартовой точкой и финишной решена рекурсивной функцией. Маршруты, ребра и вершины хранятся в развернутой на малине БД.
Правило последнее: делай только то, что нужно для реализации
Технологический стек
Коптер: Raspberry Pi, Rasbian, OpenCV, Python 3.5, aiohttp, DroneKit, RPi.GPIO, SQLite.
Сервер с динамикой для ТВ: node.js, Express, socket.io.
Приложения для ТВ: JavaScript ES6, webpack 2, Canvas.
Репозиторий с кодом коптера вот тут. За звездочки — плюсы в карму.
Пару слов, чтобы пояснить термины (любые оценки прошу считать субъективными).
— Raspberry Pi. Полноценный микрокомпьютер с имеющимися пинами и выходами для специальной камеры и сенсорного экрана. Именно на нем расположен управляющий код, веб-сервер, openCV библиотека. По сути коптер — это летающий сервер.
— Rasbian. Линуксовая операционная система для «малины». Их несколько и вообще можно ставить любые, но лучше ставить специально предназначенные, иначе могут возникнуть проблемы со взаимодействием с оборудованием компьютера, с теми же пинами, к примеру. Есть даже адаптированная версия десятой Windows.
— OpenCV. Библиотека для распознавания элементов в видеопотоке. Также умеет стримить видеопоток, что используется в проекте для выдачи изображения на клиент (да, у коптера есть свой веб-клиент).
— Python 3.5. Питон. 3.5. Не 2.*.
— Aiohttp. Асинхронный фреймворк для веб-сервера, написанный на питоне. Почему-то он понравился больше Django. Но тут на выбор.
— DroneKit. Библиотека для подключения к контроллеру коптера из программы. Весьма богатый функционал, помноженный на относительно неплохую документацию. При условии отсутствия аналогов — блестящий инструмент.
— RPi.GPIO. Библиотека на питоне для взаимодействия с пинами «малины». Позволяет включать и выключать пины, слушать их значения. Не умеет передавать значения, отличные от 0 или 1. Или я не нашел.
— SQLite. СУБД + БД + дрова, объединенные в один файл. Идеально подходит для учебных и непродовых проектов, если не надо разворачивать что-нибудь высоконагруженное. Удобно вносить изменения.
— Node.js. Серверный JavaScript.
— Express. Фреймворк для веб-серверов, написанный на node.js. Весьма удобен и минималистичен.
— Socket.io. Серверная и клиентская библиотека для реализации протокола webSocket. Основной плюс — стабильность работы и обширный предоставляемый функционал.
Выводы
В исходной формулировке задача реализуема, хоть и требует существенно больше времени и усилий. Из-за того, что автопилот и методы управления коптером чуть менее, чем полностью завязаны на GPS, от них нужно отказаться в сторону прямых команд в каналы управления. Это влечет необходимость написания своего автопилота, что задача решаемая. А потом — тестировать, тестировать и тестировать.
Лично мне было интересно. И автоматизированный бомбардировщик-наноситель подарков я всё равно сделаю так или иначе. А всем заинтересовавшимся, пожалуй, оставлю:
Правило единственное: ставь высокие и сложные цели и иди к ним!
Удачи всем!
Новый Raspberry Pi CM 3+ в продаже от $25
Компания Raspberry Pi представила новый одноплатный компьютер Compute Module 3+ (CM3+). Линейка Compute Module появилась в 2014 году. Такие ПК выпускаются в виде модуля SO-DIMM.
В основе новинки лежит процессор Broadcom BCM2837B0, работающий на частоте 1,2 ГГц. Оперативной памяти у компьютера 1 ГБ, а объём флэш-память зависит от модификации. У базовой версии Lite такой памяти нет вообще, а у топовой версии её 32 ГБ.
По информации с официального блога компании, новая плата в 10 раз мощнее первой версии.
Экскурс в историю
7 апреля 2014 года Фонд Raspberry Pi выпустил первую версию своего компьютера в новой вариации - в формате в виде модуля SO-DIMM с одноядерным процессором Broadcom BCM2835 (ARM11 с тактовой частотой 700 МГц), 512 МБ оперативной памяти и 4 ГБ флэш-памяти для хранения информации.
Почти через три года свет увидела плата на основе четырехъядерного ЦП BCM2837A1.
Компьютер эволюционировал
Хотя разработчики значительно улучшили производительность, объем ОЗУ и объем флэш-памяти платы, некоторые вещи остались прежними: CM3+ - эволюция CM3 и CM1, обеспечивающая новые функции при сохранении форм-фактора, совместимости, ценовой категории, и простоты использования.
Со слов разработчиков, цель нового модуля состояла в том, чтобы предоставить основные возможности Raspberry Pi в новом форм-факторе, что позволило другим пользователям легко включить его в свои продукты.
Компьютер для бизнеса
Разработчики говорят, что серия CM подходят для бизнеса из-за надежных компонентов: флеш-память eMMC на вычислительном модуле более надежна, чем обычные SD-карты, поэтому плата больше подходит для промышленного использования. Помимо этого,в плате серии СМ больше интерфейсов, чем в обычном Raspberry Pi, поддержка двух камер и двух дисплеев, а также дополнительный GPIO порт.
Что нового в CМ 3+?
СМ3+ основан на плате CM3, но включает в себя улучшенный процессор BCM2837B0 от Raspberry Pi + 3B. За исключением небольшого увеличения толщины платы, новинка призвана заменить СМ3 с точки зрения энергопотребления и форм-фактора. Обратите внимание, что из-за ограничений источника питания, максимальная частота процессора остается на уровне 1,2 ГГц, для сравнения, в Raspberry Pi 3B+ 1,4 ГГц.
Платы CM1 и CM3 поставлялись с 4 ГБ флэш-памяти, и хотя разработчики поклонники философии Генри Форда («вы можете иметь любой цвет, если он черный»), было очевидно, что требуется больше вариантов для выбора.
В модели CM3 + доступные три объема флеш-памяти:
CM3+/Lite - $25
CM3+/8GB - $30
CM3+/16GB - $35
CM3+/32GB - $40
Поскольку CM3 + ещё новый продукт, для корректной работы нужна последняя версия прошивки Raspberry Pi (и ОС, например, Raspbian).
Благодаря улучшенному тепловому дизайну печатной платы и процессору BCM2837B0, CM3+ имеет лучшие тепловые характеристики по время нагрузки. Компьютер может отводить тепло от процессора быстрее, чем в CM3. Это может привести к более низким средним температурам и/или более длительной работе под большой нагрузкой до того, как процессор достигнет 80°C и начнет снижать тактовую частоту.
Помогите, IT`шники, пожалуйста!
Доброго времени суток! Ситуация такая - есть малинка на Raspbian, ноут на Win10, WiFi-роутер 4G от Мотив. Задача - прямым кабелем подключить малинку к ноуту, поднять на малинке точку доступа, ноут, соответственно, подключить к Инету посредством роутера. То есть инет в малинку должен приходить по кабелю, SSH и RDP тоже с ноута.
Ключевой момент - монитора у малинки нет, то есть всё сделать надо по SSH.
Пробовал и всяко, и разно. В итоге малинку не видать ни по WiFi, ни по Ethernet. Придётся переставлять Raspbian. Помогите, пожалуйста...
Торговый (вендинговый) автомат на Raspberry Pi
Приветствую, уважаемые подонки.
Предлагаю всем посетителям приколоться над идеей самостоятельной сборки и ввода в эксплуатацию торгового автомата для продажи воды в розлив в тару покупателя.
Рассматривается только управляющая электроника. Исполнительные устройства: насос, э\м клапан, обогреватель и т.п., а также корпусные изделия - отдельная тема.
Выполнить данную работу под силу одному человеку в течение недели. Необходимы умения: травить однослойные платы вплоть до размера 10х15см, паять, прошивать микроконтроллеры семейства Arduino, немножко писать на c# (совсем немножко, ибо все уже написано).
До момента опубликования были проданы 2 опытных образца, вроде нормально работают. Проблемы возникают в основном по причине высокой влажности или некачественной пайки., достигнут приемлемый для коммерческого использования уровень в плане стабильности. В любом случае, все в ваших руках, включая исходники. Далее выдержка из ридми:
Система обеспечивает сбор, хранение и систематизацию телеметрии и отчетов о продажах, а также удаленное управление автоматами (переключение режимов работы, смена некоторых настроек). Обмен данными защищен стойкой криптографией. Устройства разделены на группы, доступ к которым ограничен только учетной записью владельца личного кабинета. Администратор сайта доступа к данным пользователей не имеет, выполняет функции мониторинга. На одном сервере управления можно создать практически неограниченное количество акаунтов (личных кабинетов) пользователей, каждый из которых может зарегистрировать любое количество устройств (в пределах выданной администратором сайта лицензии).
ссылка на код и остальное: https://github.com/perdidor/RaspberryVending - распространяется свободно
Конечно же, никто не несет ответственности за любые последствия вашего рукожопства, кроме вас самих. Да прибудет с вами сила)































