разработка и программирование электронных устройств

Обзор одноплатного компьютера Raspberry Pi 3

Первопроходцем дешевых одноплатных компьютеров для широкого круга пользователей навсегда в истории вычислительной техники останется одноплатный компьютер Raspberry Pi .

Цель его появления на свет была очень благородной — обучение программированию школьников и всех желающих, предоставив им компьютер по самой низкой цене.
После появления на свет Raspberry Pi появилось большое количество подобных устройств. Некоторые из них даже превосходят Raspberry Pi по техническим параметрам и более дешевой цене. Но тем не менее сообщество пользователей Raspberry Pi продолжает расти.

Выбирая устройство для экспериментов с программированием под Embedded Linux я остановился именно на Raspberry Pi 3. Низкая цена и хорошая производлительность не стали для меня решающими факторами при выборе платы, хотя у Raspberry Pi 3 эти параметры находятся на хорошем конкурентном уровне. Основным и решающим фактором стала доступность информации, большое количество примеров и готовых проектов, огромное сообщество пользователей одноплатного компьютера Raspberry Pi.

Технические характеристики Raspberry Pi 3 находятся на высоком современном уровне :


Процессор и память

  • SoC (System on Crystal) Broadcom BCM2837 на основе 4 — ядерного 64 – битного процессорного ядра ARMv8-A Cortex-A53 с тактовой частотой 1.2 ГГц
  • 1Гб оперативной памяти LPDDR2-900


Видеоподсистема

  • Графическое ядро VideoCore IV 3D с поддержкой Open GL ES 2.0 и Open VG


Беспроводные интерфейсы

  • 802.11n Wirelless LAN
  • Bluetooth Low Energy


Проводные интерфейсы

  • 4 порта USB 2.0 с повышенной максимальной нагрузкой до 1,2А
  • Порт 10/100 Mb Ethernet
  • Full HDMI порт для подключения монитора/телевизора


Дополнительные разъемы

  • Разъем для подключения карты памяти microSD с образом операционной системы
  • 40 -контактный разъем расширения PLD-40 (GPIO, UART, I2C, SPI)
  • Аудио разъем 3.5 мм
  • Разъем для подключения CSI камеры
  • Разъем для подключения LCD дисплея
  • Разъем microUSB для подключения к плате питания 5В 2,5 А

Сразу хочу развеять миф о недоступности документации на процессоры Broadcom, которые используются во всем модификациях Raspberry Pi. На сайте производителя процессоров такую документацию действительно невозможно найти, что может отпугнуть многих пользователей, нацеленных на глубокое изучение Raspberry Pi.

Документацию данного рода тяжело найти, но она существует.
Вся документация состоит из описания процессорного ядра Cortex-A53, которое можно загрузить с сайта компании ARM и описания периферии BCM2837. И пусть вас не смущает в документе “BCM2835 ARM Peripherals” название процессора BCM2835, периферия осталась прежней.

Внешний вид и расположение основных компонентов Raspberry Pi 3 показаны на следующих рисунках.

  • 1 – разъем расширения PLD-40
  • 2 – разъемы USB-A(4 шт)
  • 3 – Ethernet разъем
  • 4 – совмещенный хаб USB 2.0 с 10/100Mb Ethernet контроллером
  • 5 – выходной аудио разъем 3.5мм
  • 6 – разъем для подключения CSI камеры
  • 7 – выходной HDMI разъем
  • 8 – система на кристалле Broadcom BCM2837
  • 9 – входной разъем питания microUSB
  • 10 – разъем для подключения LCD дисплея

  • 1 – 1Гб оперативной памяти LPDDR2-900
  • 2 – контроллер WLAN и Bluetooth
  • 3 – держатель карты памяти формата microSD

В качестве основной операционной системы используется Raspbian Linux, созданная на основе Debian Linux специально для Raspberry Pi.

Кроме Raspbian поддерживается еще несколько дистрибутивов операционной системы Linux.
Загрузить желаемый образ операционной системы можно на странице загрузки с официального сайта.

На плате Raspberry Pi 3 нет встроенной Flash – памяти, образ операционной системы храниться на карте памяти microSD , которая не входит в комплект поставки.

Заказывая Raspberry Pi 3 вам необходимо позаботиться о дополнительных компонентах, таких как карта памяти microSD, внешний адаптер питания 5В 2,5А для подключения к разъему microUSB , кабель HDMI-DVI для подключения к монитору с входом DVI или кабель HDMI-HDMI для подключения к телевизору с HDMI входом.
Также необходимо установить радиаторы на процессор и Ethernet контроллер для того, чтобы обеспечить отвод тепла от этих элементов, которые достаточно сильно нагреваются в процессе работы.

Можно также работать с платой через SSH подключение, в этом случае перечисленные выше кабели не понадобятся.
Подключится к информационной сети можно с помощью стандартного Ethernet кабеля или беспроводного WLAN соединения.

Процесс создания загрузочного образа на microSD карте в операционной системе Linux изображен на следующем рисунке.

Название устройства карты памяти в вашей Linux системе может отличаться от показанного на рисунке /dev/sdb. Новая карта памяти по-умолчанию содержит один раздел, отформатированный в формате FAT32. Впервые подключив карту памяти ее название в системе можно определить командой:

petro@petro-Aspire-one:~$ df -h

Карта памяти будет автоматически примонтирована к вашей файловой системе. Ее необходимо отмонтировать с помощью команды :

petro@petro-Aspire-one:~$ umount /dev/sdb1

Далее с помощью команды fdisk /dev/sdb я удаляю все существующие на карте разделы и после этого выполняю посекторное копирование образа Raspbian на microSD карту с помощью команды dd.

После подключения записанной microSD карты и подачи питания на плату выполниться загрузка операционной системы Raspbian.

Для установления беспроводного соединения с вашей WLAN сетью вам необходимо добавить в конфигурационный файл название вашей сети и код доступа . Откройте файл wpa_supplicant.conf с помощью редактора nano :

petro@petro-Aspire-one:~$ sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

Допишите в файл несколько строк с названием сети и кодом доступа :

network={
<символ табуляции>ssid=”<Название вашей сети>”
<символ табуляции>psk=”<Код доступа к сети>”
<символ табуляции>key_mgmt=WPA-PSK
}

После этого необходимо перезагрузить систему и беспроводное соединение с вашей сетью будет устанавливаться каждый раз при загрузке Raspbian.

По-умолчанию в установленной системе будет включен доступ по SSH , поэтому можно проверить соединение с платой. Для этого запустим утилиту putty :

Логин и пароль по-умолчанию pi и raspberry соответственно.

Как я уже написал в начале статьи одноплатный компьютер raspberry pi создавался для обучения программированию. С этой целью в дистрибутив Raspbian была добавлена версия популярной среди школьников игры Minecraft под названием Minecraft Pi с интерфейсом программирования на языке Python.

Minecraft Pi создана на основе мобильной версии Minecraft Pocket Edition, в игре доступен только один единственный режим «творчества». Запустив одновременно с игрой интерпретатор python юный программист может создавать различные предметы в игре , имея возможность сразу же протестировать написанный код. Обучение одному из самых популярных интерпретируемых языков программирования Python происходит в процессе игры.

Напоследок скомпилируем и выполним простую программу на языке C, описанную в моей статье «Обзор одноплатного компьютера BeagleBoneBlack», которая будет осуществлять мерцание зеленым светодиодом на плате Raspberry Pi 3.

Вот слегка модифицированный текст программы led_flash:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/* led_flash.c */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define USR0_PATH   "/sys/class/leds/led0"
 
int main( int argc, char * argv[] )
{
    FILE * fp;
    if ( argc != 2 ) {
        printf("wrong number of arguments\n");
        return EXIT_FAILURE;
    }
    fp = fopen( USR0_PATH"/trigger", "w");
    if ( fp == NULL ) {
        printf("can not open file\n");
        return EXIT_FAILURE;
    }
    if ( strcmp( (const char *) argv[1], "off") == 0 ) {
        fprintf( fp, "none");
    }
    else if ( strcmp( (const char *) argv[1], "on") == 0 ) {
        fprintf( fp, "timer");
    }
    else {
        printf("unknown argument\n");
        fclose( fp );
        return EXIT_FAILURE;
    }
    fclose( fp );
    return EXIT_SUCCESS;
}

Выполняем сборку программы :

pi@raspberrypi:~$ gcc led_flash.c -o led_flash

Далее запускаем на выполнение :

pi@raspberrypi:~$ ./led_flash on

В ответ получаем предупреждение :

can not open file

А все потому, что доступ к файлам устройств разрешен только для учетной записи root.
Получаем права администратора с помощью команды :

pi@raspberrypi:~$ sudo -i

Теперь повторяем попытку запуска ./led_flash on и наблюдаем за мерцанием зеленого светодиода. Остановить эту иллюминацию можно с помощью ./led_flash off.

На этом пожалуй все, всем спасибо за внимание!

Leave a Reply

You must be logged in to post a comment.