Raspberry Pi — одноплатный компьютер размером 55х85мм.
Изначально проект создавался как образовательный. Raspberry Pi отлично подходит для изучения основ программирования и электроники из-за небольшой стоимости (порядка 35$) и наличия практически всех необходимых признаков настоящего компьютера. На основе Raspberry Pi создано множество компьютерных классов. Однако сегодня его назначение вышло далеко за пределы образовательного. Устройство широко используется для создания различных электронных устройств от радиоприемников и медиаплееров до роботов и «умных домов».
Самая мощная на сегодня модель Raspberry Pi 3 Model B имеет разъём HDMI для подключения монитора, 4 USB-порта для подключения USB устройств, Ethernet-порт для подключения к сети, встроенный Wi-Fi и Bluetooth, 4 ядерный 64-битный процессор ARM 1.2Ghz, 1GB оперативной памяти. В отличие от обычных компьютеров на маленькой плате Raspberry есть 40 контактов (пинов) GPIO, который могут использоваться как на вход, так и на выход с применением различных протоколов взаимодействия с внешними устройствами, что и позволяет подсоединять к плате различные датчики и исполнительные приборы.
Raspberry Pi — Что можно сделать? Готовые проекты. Есть ли смысл? Как научиться?
1. Внешний вид, основные элементы, корпус.
Итак, в наших руках Raspberry Pi 3 Model B.
Верхняя сторона выглядит так:
На нижней стороне установлены слот для SD-карты и оперативная память. SD-карта служит постоянным запоминающим устройством и содержит файлы операционной системы, программ и файлы пользователя.
Для удобства обращения с платой предлагается множество различных корпусов, аот детали одного из них, они соединяются между собой без винтов:
Но сначала на процессор и графический чип стоит установить радиаторы, поскольку эти микросхемы прилично греются при активной работе платы:
Вот теперь можно собрать корпус и пометить туда плату микрокомпьютера:
Корпус имеет открывающуюся крышку для удобного подключения камеры, дисплея и контактов GPIO.
1. Подготовка к включению и первый запуск.
Для первого запуска Raspberry необходимо следующее:
- микро SD-карта с установленной операционной системой (OC) Raspbian, рекомендуемой для этого устройства (оптимальная емкость карты – 8Гб, класс скорости — 10);
- монитор с HDMI входом;
- сетевой блок питания с выходным напряжением 5В и током не менее 2А, с выходным разъемом micro-USB;
- USB-мышь и USB-клавитура.
Образ операционной системы Raspbian, созданной на основе Linux Debian 8 Jessi, можно скачать в разделе Downloads сайта raspberrypi.org . Для начала можно воспользоваться образом RASPBIAN JESSIE LITE, как наиболее простым в изучении. Записать образ на SD-карту удобно из-под Windows с помощью программы Win32DiskImager. Способ установки и сама программа описаны на сайте Raspberry по адресу .
Вы также можете воспользоваться файлами, размещенными на нашем сайте в карточке Raspberry Pi 3 или напрямую скачать с Яндекс диска :
- образ операционной системы;
- программа Win32DiskImager.
Дальнейшее описание базируется именно на этом образе.
Raspberry Pi и чашечку Java, пожалуйста! (Часть 1)
Данная статья перевод с английского статьи Vladimir Alarcón и Nathaniel Monson «A Pi and a cup of Java, please!» вышедшей в 14 номере журнала MagPi. Эта статья является первой в цикле статей посвящённых описанию практических основ программирования на Java использую Raspberry Pi.
- Raspberry Pi и ОС Raspbian.
- 150 Мб свободного места на SD карте.
- Базовые знания программирования.
- Базовые навыки использования командной строки.
Вступление
В данной статье я расскажу вам как писать и запускать Java программы на вашем Raspberry Pi.
Java — это объектно-ориентированный язык программирования, транслирующий исходный код программ в байт-код, для запуска их независимо от операционной системы и без необходимости перекомпилляции. Также в Java входит широкий спектр технологий предназначенных для решением задач в таких областях, как запуск кластеров веб-сайтов или высоконагруженных приложений критичных к результату выполнения. В данной статье я затрону только основы данного языка. Как только вы узнаете его основы, вы без труда найдёте в Интернет веб-сайты с более подробным описанием технологий Java и содержащие более сложные примеры по ним.
В начале я покажу, как установить Java на Raspberry Pi. Затем мы создадим пару простых Java программ… И только потом мы их запустим! В первой части статьи вы в общем узнаете как запустить примеры, а затем более подробно я разъясню принципы их работы. Идея в том, что это позволит вам легче увидеть основы написания реальных Java программ, а затем самостоятельно вы сможете попробовать создать для них новые элементы и задать необходимый функционал. Как это можно сделать, я постараюсь объяснить после того, как вы напишите и запустите первую свою программу.
1. Установка
Чтобы написать, копиллировать и запустить программу вам необходимо две вещи: текстовый редактор и JDK. Вы можете использовать любой текстовый редактор для написания Java программ. Я предпочитаю Geany, так как он поддерживает подсветку синтаксиса, но Leafpad или GEdit это тоже делают. В качестве JDK я выбрал OpenJDK 7. Стандартно в пакет JDK входит компиллятор и виртуальная машина Java(JVM). Компиллятор генерирует из исходного кода программы для выполнения, а JVM обеспечивает их запуск.
Установим Geany и OpenJDK 7 открыв окно терминала и набрав:
sudo apt-get install -y openjdk-7-jdk geany
Это займёт около 9 минут на загрузку и установку всех необходимых пакетов, но это может занять и больше времени, так как всё зависит от скорости вашего интернет соединения.
После завершения проверьте, что всё корректно было установлено. Для этого вы можете открыть Geany из вкладки «Programming» основного меню Raspbian. А для проверки OpenJDK 7, откройте окно терминала и наберите:
java -version
На экране должно появится несколько строк начинающихся с:
java version «1.7. OpenJDK .
2. Запуск первой программы
Начнём с создания каталога для хранения наших программ.
Я выбрал для него имя «cupofjava», но вы можете по желанию выбрать любое другое. Открываем окно терминала и набираем:
mkdir cupofjava
Теперь начнём писать нашу первую программу(класс) на Java. Я назову его «HiThere». Пожалуйста помните, что Java, это объектно-ориентированный язык программирования, и что каждая программа является классом, который в свою очередь можно использовать другими классами.
Открываем текстовый редактор(в моём случае Geany) для создания файла HiThere.java и сохраняем его в предварительно созданном каталоге. В этом файле набираем(или копируем) следующий исходный код программы:
public class HiThere < public static void main(String[] args) < System.out.println(«A Java Pi!»); >>
А теперь компилируем его. Используя окно терминала переходим в каталог «cupofjava», где до этого вы создали программу:
cd cupofjava
javac HiThere.java
Команда javac компиллирует программы написанные на Java. Она проанализировав набранный вами исходный код генерирует программу для запуска. Через 15 секунд или около того, данная команда закончит выполнение. Если вы допустили ошибку она об этом сообщит, указав где эта проблема возникла.
Для исправления вернитесь в текстовый редактор, проверьте свой код и исправьте допущенные ошибки, сохраните файл, и попробуйте запустить компилляцию повторно. Если ошибок больше нет, то компилляция выполнена успешно. После чего вы найдёте новый файл HiThere.class в текущем каталоге. Это программа и будет вами запускаться.
Хорошо, теперь запустим нашу программу. В окне терминала набираем:
java HiThere
Вам необязательно указывать расширение .class. А в чём разница? Команда javac компиллирует программы, а команда java их запускает.
Программа будет запущена и выполнена:
Hi there!
Отлично… Поздравляю! Вы написали и запустили вашу первую Java программу на Raspberry Pi.
Наверное вы заметили, что программе потребовалось несколько секунд для того, чтобы написать это сообщение. Почему так долго? На самом деле, Java работает довольно быстро. Программе в целом понадобилось только пара миллисекунд для выполнения, всё остальное время потребовалось на загрузку в начале JVM среды для выполнения Java кода. Но есть и приятная новость, что после загрузки JVM программа будет работать очень быстро.
Ну, а теперь, можем рассмотреть программу более внимательно. В ней по сути выполняется только одна строка. Это строка:
System.out.println(«A Java Pi!»);
В остальных строках задаётся название класса «HiThere» (в строке 1), а также название основного метода в строке 3). В данный класс, как и в любой другой класс Java, может входить много методов, но для данного примера мы используем только один основной метод main.
Усложним задачу #1: Ваши действия. Откройте файл с исходным кодом в текстовом редакторе, измените сообщение в кавычках с «A Java Pi!» на «My name is Name.»(введите своё имя) и сохраните результат. В окне терминала снова скомпилируйте программу и запустите её использованными уже командами javac и java. Если всё сделали правильно, то теперь программа покажет ваше имя. Вы отлично справились!
Примечание: Синтаксис(словарь команд и пунктуация) написания программ на языке Java очень похож на синтаксис языка C. Любой программист знакомый с C сможет легко освоит основы Java.
3. Переменные Java и управляющие конструкции
Следующий пример иллюстрирует применение переменных и управляющих конструкций. В том-же каталоге, где мы сохраняли первую программу, создадим вторую программу назвав её DiceRoller.java. Наберите(или скопируйте) приведённый ниже исходный код:
import java.util.Random; public class DiceRoller < public static void main(String[] args) < Random generator = new Random(); int d = 0; while (d < 4) < System.out.print(«Rolling. «); int face = 1 + generator.nextInt(6); System.out.print(«I got a «+ face + «. «); if (face == 1) < System.out.print(«Wow! An ACE!»); >System.out.println(); d = d + 1; > > >
Сохраним его в файле. Скомпиллируем и запустим нашу новую программу набрав две команды:
javac DiceRoller.java java DiceRoller
Вы увидите что-то подобное:
Rolling. I got a 2. Rolling. I got a 1. Wow! An ACE! Rolling.
I got a 4. Rolling. I got a 5.
Программа будет бросать четыре кубика и тот на котором выпадет единица победит. Вам интересно узнать, как это работает?
На данном примере можно продемонстрировать несколько интересных вещей. Эта программа использует две переменные d и face. Переменная d применяется когда мы делаем только четыре броска, не три и не пять, а переменная face запоминает какое значение было получено при каждом из бросков. Также программа получает набор строк в переменной args. Эта переменная передаёт параметры командной строки, если вы их задали, но в нашем примере их нет.
И ещё, помните классы Java могут использовать другие классы? В нашем примере это переменная generator. Через неё наша программа обращается к внешнему классу Random, который выполняет генерацию псевдослучайных чисел. В нашем случае мы вызываем только один из его методов nextInt() для получения случайного числа в диапазоне от 0 до 5.
Дополнительно в Java применяются фигурные скобки и > определяющие область действия команд вызываемых в блоках. Каждый блок может быть пустой или содержать от одной и более команд. Если это необходимо, вы можете, используя управляющие конструкции, выделять подблоки внутри существующих блоков.
А теперь можно поговорить и об этом. В данном примере используются две управляющие конструкции: if и while. Управляющая конструкция if запускает выполнения блока только в случае если логическое выражение в скобках истина(true). А управляющая конструкция while работает наоборот, её блок выполняется до тех пор, пока логическое выражение в скобках не станет ложным(false). Ещё в Java применяются управляющие конструкции: for, do-while, switch, if-else и т.п.
В нашем примере if проверяет истинность выражения face == 1. По этому сообщения о выигрыше появляется только при выпадении единицы.
Управляющая конструкция while запускает свой блок четыре раза пока значение переменной d меньше чем 4. Первоначальное значение этой переменной равно 0 и с каждым циклом выполнения блока оно увеличивается на 1. Поэтому первые четыре раза(0, 1, 2, 3) блок выполняется успешно, и только в пятый раз(когда переменная d равна 4) он будет прерван.
Усложним задачу #2: Измените программу для 7 бросков кубик, увеличив диапазон возможных вариантов значений до 10. В окне терминала снова скомпилируйте программу и запустите её использованными уже командами javac и java. Если всё сделали правильно, то теперь программа покажет значение для 7 бросков кубика. А теперь, за работу!
Примечание переводчика: Исходные коды, сам текст статьи и вёрстку в Scribus вы можете найти в репозитарии github.com/svininykh/magpi-issue14-ru/tree/master/cup-of-java
Источник: habr.com
Raspberry Pi: первое знакомство. Урок 4. Работа с GPIO, мигание светодиодом, Python
Урок ориентирован на начинающих пользователей и представлен в текстовом и видео-форматах.
Видео четвертого урока:
Также рекомендуем ознакомиться с:
- вводными замечаниями по Rasberry Pi
- первым уроком по установке ОС Raspbian
- вторым уроком по настройке Wi-Fi, Pi Store и LibreOffice
- третьим уроком по работе с консолью, apt-get, скриншотами и удаленным управлением
Для урока нам понадобится:
- плата Raspberry Pi;
- кабель питания;
- USB-клавиатура;
- USB-мышь;
- монитор или телевизор с HDMI/RCA/DVI интерфейсом;
- кабель, один конец которого RCA или HDMI, а другой соответствует вашему монитору;
- SD-карта с уже установленной ОС Raspbian (как ее установить);
- светодиод;
- кнопка;
- резистор на 220 Ом
- 3 провода «мама-папа»
- 2 провода «папа-папа».
Программирование Raspberry Pi GPIO на языке Python
Для сегодняшнего урока мы выбрали язык программирования Python.
Python — современный объектно-ориентированный язык. Он наиболее часто используется для программирования GPIO на Raspberry Pi. Python входит в состав операционной системы Raspbian.
Сборка модели
Для работы нам потребуется собрать следующую схему:
Схема подключения светодиода и кнопки к Raspberry Pi
Обратите внимание, что порты GPIO на Raspberry Pi не подписаны, полезно иметь распечатанную распиновку.
Распиновка Raspberry Pi. Схема с ledgerlabs.us
Собранная модель со светодиодом и кнопкой
Управление светодиодом на Raspberry Pi из консоли
Заходим в LXTerminal и набираем:
После этого вместо имени пользователя в начале строки должно отобразиться >>>.
Вводим следующие строки:
import RPi.GPIO as GPIO #импорт библиотеки
GPIO.setmode(GPIO.BOARD) #»включение» GPIO
GPIO.setup(7, GPIO.OUT) #объявление 7-го пина как выход
Затем для включения светодиода можно использовать команду
GPIO.output(7, 1)
А для выключения
GPIO(output(7, 0)
После работы с GPIO желательно выполнить команду
GPIO.cleanup()
Программа для мигания светодиодом на Raspberry Pi
Для автономной работы светодиода нам потребуется написать и запустить программу. Для этого откроем предустановленную программу IDLE 3 и в меню File нажмем New. В открывшемся окне мы можем писать программу.
Напишем:
import RPi.GPIO as GPIO #импорт библиотеки для работы с GPIO
import time #импорт библиотеки для ожидания
GPIO.setmode(GPIO.BOARD) #»запуск» GPIO
GPIO.setup(7, GPIO.OUT) #объявление порта 7 как выход
while True: #бесконечный цикл
____GPIO.output(7, 1) #включение светодиода
____time.sleep(1) #ожидание 1 секунды
____GPIO.output(7, 0) #выключение светодиода
____time.sleep(1) #ожидание 1 секунды
Сохраним программу в папке /home/pi.
Теперь мы можем запустить программу из LXTerminal с помощью команды
sudo python programname.py
Управление светодиодом с помощью кнопки
Поуправляем светодиодом с помощью внешней кнопки: когда кнопка зажата — светодиод горит, когда отжата — не горит.
Для этого подключим кнопку к порту 5.
Для управления нам потребуется следующая программа:
import RPi.GPIO as GPIO #импорт библиотеки GPIO
GPIO.setmode(GPIO.BOARD) #»включение GPIO»
GPIO.setup(7, GPIO.OUT) #объявление порта 7 как выход
GPIO.setup(3, GPIO.IN) #объявление порта 3 как вход
while True: #бесконечный цикл
____if GPIO.input(3) == False: #если кнопка зажата
________GPIO.output(7, 1) #включаем светодиод
____else: #иначе
________GPIO.output(7, 0) #выключаем
Управление светодиодом с клавиатуры
Сделаем еще одну программу. Она будет менять состояние светодиода при получении пустой строки и заканчиваться при получении другой строки.
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
while True:
____str = input(«Enter — включение, другое — выход «);
____if str != «»:
________break
____else:
________GPIO.output(7, 1)
____str = input(«Enter — выключение, другое — выход «);
____if str != «»:
________break
____else:
________GPIO.output(7, 0)
GPIO.cleanup()
На этом четвертый урок по Raspberry Pi для начинающих закончен, продолжение следует!
Все уроки курса «Raspberry Pi: первое знакомство»
Где купить Raspberry Pi
Raspberry Pi и наборы с ней можно купить у официальных дилеров и их партнеров и в многочисленных интернет-магазинах. Наиболее привлекательные цены, постоянные спецпредложения и бесплатная доставка на сайтах китайских магазинов Aliexpress и DealExtreme. Если нет времени ждать посылку из Китая — рекомендуем интернет-магазин Амперка.
Будьте аккуратны при выборе – в продаже имеются разные модели A, A+, B, B+, Raspberry Pi 2 и Raspberry Pi Zero.
Курс будет пополняться дополнительными уроками. Подпишитесь на нас ВКонтакте или Facebook, чтобы быть в курсе обновлений.
Источник: edurobots.org