Как-то совсем внезапно вышла третья версия Raspberry Pi.
Я её взял, да и купил.
Коротко — вещь! Пишу обзор частично прямо с неё, производительность очень приятная и не вызывает острого желания перетыкать клаву-мышку в мой основной, довольно неплохой ПК Core i5 4,5GHz с SSD.
Не коротко — прошу под кат.
Куплена плата была импульсивно, после продолжительных страданий в попытке как-то пользоваться Orange Pi One. Но сама идея заинтересовала, хотя и практических применений для себя пока не особо вижу, это не Ардуино, которое позволило собрать пару мечт времен детства. Но обучение новому — это тоже весело.
А тут вот Raspberry Pi 3 выкатили, которая обязана работать образцово, ибо является популяризатором самой идеи ARM-платок. Ну и купил, не смотря на высоковатую цену (а в общем-то, Raspberry Pi 2 где-то за столько и продавалась, по обещанным $35 её не особо купишь).
На Orange Pi One крест тоже не ставлю, на днях обещают новую версию Armbian с поддержкой драйвера видеоядра. Но поглядим. Пока же всё плохо.
Спецификации новой модели:
SoC: Broadcom BCM2837
CPU: 4× ARM Cortex-A53, 1.2GHz
GPU: Broadcom VideoCore IV
RAM: 1GB LPDDR2 (900 MHz)
Сеть: 10/100 Ethernet,
2.4GHz 802.11n wireless
Bluetooth: Bluetooth 4.1 Classic, Bluetooth Low Energy
Накопитель: microSD
GPIO: 40-pin
Порты: HDMI, 3.5mm аудио-видео, 4× USB 2.0, Ethernet, Camera Serial Interface (CSI), Display Serial Interface (DSI)
Как видим, отличие от модели 2 — новый процессор 64 бита, беспроводная сеть и Bluetooth. Неплохо.
Механические размеры идентичны модели 2, все корпуса подойдут.
Бенчмарки на Линуксах гонять не умею, так что вот вам выдержки из официального журнала.
Процессор:
3D графика:
Производительность GPIO:
Потребление энергии.
Вот это проверил легко, подключением через Доктора. Не врут:
Рассмотрим железо
Итак. Купил в чешском интернет-магазине, доставили в Прагу из Чешских Будеёвиц (родина Budweiser, да) на следующий день. Люблю я чешскую почту.
Запаковали нормально, родная коробочка обмотана пупыркой и уложена в еще одну транспортировочную коробку. Хотя это и излишне, мне даже 2,5" жесткие диски в бумажном конверте (!) доходили нормально.
Внутри сама платка в антистатическом пакетике и скучный листок о сертификации.
Коробка почти аналогична по размерам коробке от Orange Pi.
Да и сами платки сопоставимы по размерам.
Вот он, новый процессор Broadcom BCM2837:
USB реализованы встроенным хабом, что не очень хорошо. На нем же висит и проводная сеть.
С нижней стороны у нас вход питания (удобный micro-USB, а не убогий соосный коннектор), полноразмерный HDMI, комбинированный аналоговый аудио-видео выход в виде джека 3,5мм.
Справа 4 USB порта и 10/100 мегабит проводная сеть.
Снизу единственная микросхема оперативной памяти, объемом 1Гб. Хотелось бы видеть 2Гб, но если честно, я так и не смог забить память до свопа при реальном использовании.
Память не греется, радиатор снизу платы нам не понадобится.
Тут же слот microSD.
«Стекляшка» сверху — наш новый беспроводной адаптер.
Микроскопическая антенна сверху платы.
Но уровень сигнала нормальный, сопоставим со смартфоном, скажем.
После включения я обрадовался тому, что процессор особо не греется. Но радовался недолго, при интенсивной нагрузке температура бодро полезла вверх, пальцем трогать стало некомфортно. Вздохнул, пошарился в ящике с радиодеталями и налепил небольшой алюминиевый радиатор. В дальнейшем нагреть проц выше 71 градуса не вышло.
Софт
Операционная система ставится просто до безобразия.
Качаем образ, пишем программой
Win32 Disk Imager.
Доступны куча систем, я выбрал основную, поддерживаемую производителем — Raspbian. Она достаточно симпатично выглядит, стабильна и поддерживает все основные функции. Кроме Bluetooth — пока честно анонсировано, что он еще не поддерживается, плата совсем новая.
После загрузки системы открываем консоль и создаем пароль для root:
sudo passwd
Далее настроим систему.
sudo raspi-config
Тут нас интересуют пункты:
1 — расширяет раздел на всю карточку памяти.
5 — можно настроить язык и раскладки клавиатуры. Я оставил английский.
9 — отключаем overscan (черные поля на мониторе), выбираем распределение оперативной памяти под GPU, включаем шину I2C для подключения сенсоров.
Далее обновляем пакеты:
sudo apt-get update
sudo apt-get upgrade
После настройки, перезагружаемся. Скорее всего, всё будет работать нормально, Малинка умная и сама подбирает нужное разрешение монитора по HDMI.
Собственно, и всё. Система готова к работе.
Работает всё отлично, окошки перетаскиваются без лагов и лесенкок, как было на Orange Pi.
Памяти тоже достаточно. 5 вкладок в браузере с кучей графики и встроенный Minecraft в окне — вообще без проблем. Почти половина оперативки свободна.
(Minecraft не скриншотится почему-то. Но он там есть. :3 )
По ощущениям, конечно, не современная система с SSD, а что-то уровня маломощных Core2 с жестким диском, или BayTrail на eMMC. Но пользоваться в качестве десктопа реально можно, ничего критичного.
Запускал Quake III, работает идеально на максимальных настройках, ~90FPS.
Из коробки мы также имеем неплохой браузер с аппаратным ускорением видео. YouTube играется без проблем.
Однако мне привычнее Firefox, так что накатил его форк Iceweasel.
sudo apt-get install iceweasel
Видео аппаратно не декодирует, YouTube смотрибелен до 480p. Зато все плагины от Windows версии отлично работают.
Потестим пропускную способность сети.
С проводной всё нормально:
А вот Wi-Fi выдает как-то маловато:
Не знаю, почему. Плату и роутер крутил и так, и эдак — разницы нет.
Думаю, причиной является некоторая сырость софта. Так-то адаптер n-стандарта.
Что касается проигрывания видео — всё стандартно для ARM и аппаратных декодеров.
Всё играется, кроме h264hi10p — аниме традиционно в пролёте, софтовый декодер такое осилить не может. Но нормальных людей это волновать не должно, да.
На удивление, из коробки нет плеера, который бы играл файлы по обычному двойному клику.
Есть консольный omxplayer, но такое юзабилити за гранью моего понимания.
Для более-менее комфортного просмотра видео нужно установить Kodi:
Но это не «плеер по клику», а оболочка-медиацентр.
В принципе, ничего страшного. Зато играет всё отлично: субтитры, дорожки переключаются.
GIPO и радиогубительство
Конечно, такое покупают не как замену десктопу, а для всяких классных вещей, которые на PC делать нельзя или не рационально.
Потыкаем в GPIO!
Для начала, подключу датчик давления-температуры BMP180. Он на 3,3 вольта, потому подключается совсем напрямую.
Устанавливаем софт:
sudo apt-get install python-smbus
sudo apt-get install i2c-tools
Сканируем шину I2C:
sudo i2cdetect -y 1
У меня там не только BMP180 (об этом далее), но суть в том, что должны увидеться адреса устройств. BMP180 это 0x77. Если видится — отлично.
Далее используем библиотеку от Adafruit:
learn.adafruit.com/using-the-bmp085-with-raspberry-pi/using-the-adafruit-bmp-python-library
sudo apt-get update
sudo apt-get install git build-essential python-dev python-smbus
git clone https://github.com/adafruit/Adafruit_Python_BMP.git
cd Adafruit_Python_BMP
sudo python setup.py install
И запускаем:
cd examples
sudo python simpletest.py
Работает! Не сложнее Ардуины.
Далее подключим по I2C LCD-дисплей, например.
Тут внимание: Raspberry Pi не дружит с напряжением 5 вольт, дисплей и прочие устройства 5 вольт надо подключить через конвертер уровня логики.
Копеечная штука на Али:
aliexpress.com/item/Free-shipping-4-channel-IIC-I2C-Logic-Level-Converter-Bi-Directional-Module-5V-to-3/32592515127.html
Легким движением руки копипастим пример от Adafruit в
пример по подключению дисплея:
Код
import smbus
import time
import Adafruit_BMP.BMP085 as BMP085
from time import sleep, strftime
from datetime import datetime
sensor = BMP085.BMP085()
# Define some device parameters
I2C_ADDR = 0x3f # I2C device address
LCD_WIDTH = 20 # Maximum characters per line
# Define some device constants
LCD_CHR = 1 # Mode - Sending data
LCD_CMD = 0 # Mode - Sending command
LCD_LINE_1 = 0x80 # LCD RAM address for the 1st line
LCD_LINE_2 = 0xC0 # LCD RAM address for the 2nd line
LCD_LINE_3 = 0x94 # LCD RAM address for the 3rd line
LCD_LINE_4 = 0xD4 # LCD RAM address for the 4th line
LCD_BACKLIGHT = 0x08 # On
#LCD_BACKLIGHT = 0x00 # Off
ENABLE = 0b00000100 # Enable bit
# Timing constants
E_PULSE = 0.0005
E_DELAY = 0.0005
#Open I2C interface
#bus = smbus.SMBus(0) # Rev 1 Pi uses 0
bus = smbus.SMBus(1) # Rev 2 Pi uses 1
def lcd_init():
# Initialise display
lcd_byte(0x33,LCD_CMD) # 110011 Initialise
lcd_byte(0x32,LCD_CMD) # 110010 Initialise
lcd_byte(0x06,LCD_CMD) # 000110 Cursor move direction
lcd_byte(0x0C,LCD_CMD) # 001100 Display On,Cursor Off, Blink Off
lcd_byte(0x28,LCD_CMD) # 101000 Data length, number of lines, font size
lcd_byte(0x01,LCD_CMD) # 000001 Clear display
time.sleep(E_DELAY)
def lcd_byte(bits, mode):
# Send byte to data pins
# bits = the data
# mode = 1 for data
# 0 for command
bits_high = mode | (bits & 0xF0) | LCD_BACKLIGHT
bits_low = mode | ((bits<<4) & 0xF0) | LCD_BACKLIGHT
# High bits
bus.write_byte(I2C_ADDR, bits_high)
lcd_toggle_enable(bits_high)
# Low bits
bus.write_byte(I2C_ADDR, bits_low)
lcd_toggle_enable(bits_low)
def lcd_toggle_enable(bits):
# Toggle enable
time.sleep(E_DELAY)
bus.write_byte(I2C_ADDR, (bits | ENABLE))
time.sleep(E_PULSE)
bus.write_byte(I2C_ADDR,(bits & ~ENABLE))
time.sleep(E_DELAY)
def lcd_string(message,line):
# Send string to display
message = message.ljust(LCD_WIDTH," ")
lcd_byte(line, LCD_CMD)
for i in range(LCD_WIDTH):
lcd_byte(ord(message[i]),LCD_CHR)
def main():
# Main program block
# Initialise display
lcd_init()
while True:
# Send some test
lcd_string("Hello, mySKU.me",LCD_LINE_1)
lcd_string((datetime.now().strftime('%b %d %H:%M:%S ')),LCD_LINE_2)
lcd_string('Temp = {0:0.2f} *C'.format(sensor.read_temperature()),LCD_LINE_3)
lcd_string('Pressure = {0:0.0f} Pa'.format(sensor.read_pressure()),LCD_LINE_4)
time.sleep(0.5)
if __name__ == '__main__':
try:
main()
except KeyboardInterrupt:
pass
finally:
lcd_byte(0x01, LCD_CMD)
Запускаем:
sudo python /home/pi/Desktop/lcd_i2c.py
И получаем вывод с датчика на дисплей.
Ну, как-то так.
Я новой игрушкой доволен, как её применить в дальнейшем — придумаю.
Благодарю за внимание.
LibreOffice стоит из коробки.
~600мА без учета периферии, абсолютный максимум наблюдал 1А.
Скорость накопителя определяется скоростью карточки, у меня карточка с записью до 20 МБ/с, лагов при работе с ФС не замечено. Рекомендуют карты не менее 10 класса.
Стереозвук по HDMI работает точно.
А под Raspbian всё норм.
Без доп. охлаждения в корпус уже не поставишь.
Если в корпус, то стоит поставить посерьезнее моего. Но активное охлаждение точно не нужно, если в совсем глухую коробку не ставить.
Собственно, корпус уже заказал, проверю, как оно будет в нем жить.
Этот Broadcom-овский SoC(процессор, по простому) выполнен по старому 40nm тех.процессу.
Будет грется, тратлить и отключать ядра, если его награзить чем-то
существенным.
Ну не знаю. Включил софтовое декодирование 1080p hi10p (100% загрузка ЦП, почти не дышащая система), ушел погулять, выше описанного 71 градуса не нагрел. В Q3 тоже ничего не перегрелось. Радиатор тонюсенький, можно прилепить раза в три длиннее и выше.
Тут же, выше, термографии приведены.
geektimes.ru/post/272198/
Разработчик «малинки»: нет, ваш Raspberry Pi 3 не будет перегреваться
При кодировании видео GPU снимает нагрузку с CPU
Впрочем, ТС указал, что использовал софтверный декодинг.
Разработчик «малинки»: нет, ваш Raspberry Pi 3 не будет перегреваться Однако при сильных нагрузках процессор будет сбрасывать частоту.
Но производительность ведь существенно снижается в таких случаях.
a. Они станут больше
b. Они станут быстрее
c. Они будут занимать больше RAM
И тут 1Gb Ram сыграет свою роль.
И кстати меня всегда удивляля «жадность» ARM разработчиков до памяти.
512Mb 1Gb ну макс 2Gb.
Вот почему нельзя взять что-то типа Orange Pi с 4Gb на борту и поставить туда нормальный mysql с нормальными innodb буферами.
Ан нет.
Ну и 64bit ядер сносного качества ещё практически нет.
Odroid C2 (Amlogic S905) вроде подает какие-то надежды.
Ну и linux-sunxi комьюнити «пилит» 64bit ядро под Allwinner A64.
Будет использоваться старый 32-х битный софт, ещё и ARMv6.
Не вижу смысла.
:)
IoT Core. Без графического интерфейса, правда. =)
Только Windows
уже не Windows.
Где у Windows, без графики, собственно — Windows? :)
WiFi работает, у меня даже тянула 2 wifi стика одновременно на 2.4 и 5 Ghz. У коллеги wifi не завелся без внешнего питания. Жаль, что нет разъема для raspi камеры, у меня было пару идей для такой мелкой платки.
Резюмируя, компактность рулит, но если нужна usb периферия, проект начинает обрастать проводами и становится явно больше габаритов zero. Для всего остального — просто супер, учитывая цену, компактность, поддержку сообщества.
Практика, кстати показывает, что с запитанным от 5-ти вольт дисплеем, Rpi 2 нормально коммуницирует и без преобразователя уровней. Однако в официальной документации так и не нашел подтверждения толерантности чипсета к 5 вольтам. Пока платка преобразователя едет, запитал от 3.3-х.
На Raspberry лучше или на базе роутера?
Если нужен умный дом на Raspberry то majordomo.smartliving.ru/Main/SetupRaspberryPi
У меня сейчас Raspberry Pi 2 в свое время перешел с Raspberry B+, хотел сейчас перейти но буду ждать 4 версию.
www.raspberrypi.org/documentation/remote-access/vnc/README.md
Есть бесплатный TightVNC.
Либо вообще можно сейчас купить мультимедиа плеер с пультом блоком питания и всем необходимым ценою чуть более 2 тысяч рублей и производительностью в антуту 20к+.
Думал сделать себе мультимедиа плеер на оранж пи пк в корпусе ДВД плеера, но потом понял что смарт тв и так всё пережевывает. Остановился на ФТП, днла сервере в корпусе двд плеера с nexx 3020h внутри, осталось питание сделать нормальное.
Ну так вот зачем они сейчас эти платы вообще??? Сам хочу оранж пи пк, но каждый раз останавливает то, что не знаю зачем она мне.
А) качественный маркетинг, много денег влито в рекламу
Б) большое коммюнити с нубскими гайдами по которым даже ребенок 6 летний сделает себе робота с вебкамерой, блекджеком и шлюхами
В) незнание об альтарнативах, нежелание возиться с другими платами и экспериментировать самому
Такая себе альтернатива Ардуино, только дороже.
Хотя Orange Pi One приемлемо работает на Андроиде — где еще можно купить Андроид-плеер к телевизору за 10-то баксов? Вполне себе вариант.
Касательно Raspberry vs Orange — это как Xiaomi vs трешевый ноунейм. Железо-то подобное/одинаковое, но софт делает большую разницу. Xunlong вообще не особо помогает сообществу, худо-бедно рабочие образы Линукса собрали на энтузиазме буквально пара людей с помощью магии и реверс-инженеринга (а поддержку уже с год, как дропнули — энтузиазм иссяк).
Даже Андроид утянут с какой-то медиаприставки с похожим железом.
Хотя объявился новый энтузиаст, у меня большие надежды на Armbian.
(я с такими пк еще не работал)
Максимум, с USB или родной вебкамеры можно записывать. Нуачо, экранка это тоже видеозахват!
Но если кто планировал покупать свою первую платку, то выбор очевиден.
когда допилят софт, ну и хорошо что WiFi отдельно не требуется.
как сделают lan и usb независимыми куплю сразу. не знаю для чего, но куплю)
как-нибудь
ОС записывается на карту и все.
Софт из репозитория или создает себе иконки, или работает в консоли.
Монитор — через HDMI. Ноутбук никак, у него нет видеовхода. Разве что по сети GUI расшарить.
ОС установил-реагирует миганием красной и зелёной.а также показывает LAN соединение, что говорит о
правильной установке.Но я не могу увидеть его на мониторе (HDMI) и AV на ТВ.
>После загрузки системы открываем консоль<Что вы ещё загружаете и на каком экране открывать?
Чего Вы там вообще делаете?
Образ ставится Win32 Disk Imager на флешку как есть, со всеми разделами. Можно вставлять флешку в Pi и запускать.
Если нет изображения, то в /boot/config.txt (прямо из-под Windows можно) поправьте разрешение/режим.
Вся инфа на официальном сайте: www.raspberrypi.org/documentation/configuration/config-txt.md
P.S. Извиняюсь если не по адресу.
Выложите, пожалуйста, для полного набора информацию по данным о процессоре Raspberry Pi 3 Model B.
Например, в Raspbian (и не только) команда cat /proc/cpuinfo.
Прошу:
Может дело в большом разрешении монитора?
А чудеса могут быть из-за несварения карты памяти.
Проблема обширная: elinux.org/RPi_SD_cards
Я сначала купил какой-то топовый Кингстон с лютой скоростью записи, так на нем тупо ФС рассыпалась.
Поменял на такую и всё у меня хорошо:
В общем, китайская рулетка. Если не жалко времени и умеете вести диспуты в PayPal, можно и сыграть.