Шаг-4. Настраиваем удаленный доступ
Теперь мы можем разместить Raspberry Pi там где нам удобно, и включить ее. Первым делом нужно узнать IP-адрес платы, его можно посмотреть в настройках домашнего маршрутизатора, либо в командной строке Windows (Win+R - cmd) ввести команду arp -a. В результате мы должны узнать IP-адрес, в моем случае это 192.168.0.104.
Если в качестве настольного компьютера мы используем OSX или Linux, то для коннекта к Raspberry Pi нам достаточно ввести команду ssh pi@192.168.0.104. Если же мы используем Windows, то сначала нужно скачать SSH-клиент, в качестве которого удобно использовать putty. Устанавливаем putty в какую-либо папку, затем вводим команду:
putty.exe pi@192.168.0.104
Если все было сделано правильно, появится окно ввода, примерно такое же, какое мы видели, когда подключали Raspberry Pi к монитору. Только теперь все те же действия мы можем делать удаленно. После ввода пароля raspberry, мы попадаем в уже знакомую нам командную строку:
На этом настройка завершена, мы можем использовать Raspberry Pi.
Кстати, вполне удобным является создание статического IP-адреса для Raspberry Pi в домашней сети (например 192.168.0.111), при этом он не будет меняться, что удобнее. Желающие могут найти соответствующие онлайн-руководства по настройке.
4.2 Основные команды LinuxМы настроили удаленный доступ, и сначала нужно немного освоиться в среде Linux. Для начала целесообразно поставить файловый менеджер mc, для чего ввести команду sudo apt-get install mc. Apt-get это “менеджер программ”, а mc это название программы, которую мы устанавливаем. После завершения установки командой mc можно открыть файловый менеджер, напоминающий FAR или (если кто помнит) Norton Commander.
Здесь удобно то, что доступны как операции с файлами, так и доступ к консоли, просмотреть вывод которой можно с помощью клавиш Ctrl+O.
Также можно поэкспериментировать с командами ls (список файлов), mkdir (создание папки) и cd (смена текущей папки).
Чтобы создать текстовый файл, например текст программы, можно воспользоваться уже известным нам редактором nano. Например, чтобы создать программу на языке Python, наберем nano file1.py. В открывшемся окне введем текст программы (его можно просто скопировать через буфер обмена):
print “Hello world”
Завершить редактирование можно нажатием Ctrl+X, затем нужно нажать Y для подтверждения сохранения файла.
Сам редактор во время редактирования должен выглядеть примерно так:
Теперь можно выполнить программу, введя команду python test1.py.
Если все было сделано правильно, мы увидим результат выполнения:
Ура! Мы запустили нашу первую программу в среде Linux.
Установим также модуль для дополнительных библиотек языка Python, он нам пригодится в дальнейшем: sudo apt-get install python-pip. Также установим программу git, с помощью которой удобно скачивать исходные тексты программ: sudo apt-get install git.
Для копирования программ с “большого” компьютера можно использовать программу WinSCP, которая позволяет иметь прямой доступ к файловой системе Raspberry Pi. Это позволит редактировать программы на компьютере, затем копировать их в папку на Raspberry Pi, что достаточно удобно.
4.3. Основы языка PythonКод для Arduino мы писали на Си, здесь же мы будем использовать язык Python. Он удобен своей компактностью, отсутствием необходимости компиляции программ, и наличием большого количества дополнительных библиотек.
Для запуска Python-программы необходимо:
- Создать файл с текстом программы, например с помощью редактора nano:
nano test1.py
- Запустить программу на исполнение:
sudo python test1.py
Мы используем sudo т.к. наши программы будут работать с портами ввода-вывода, без этого они доступны не будут.
Кстати, чтобы запустить короткую программу на Python, ее необязательно сохранять в файл, код можно ввести непосредственно в интерпретатор. Для этого достаточно запустить python и просто ввести подряд соответствующие строки:
Закрыть интерпретатор Python можно нажатием Ctrl+D.
Рассмотрим простые примеры использования языка Python.
Объявление и вывод переменных
В Python достаточно ввести имя и значение.
x = 3
y = 10
print("x=", x)
print(x+y)
В отличие от языка С++, тип переменной будет определен автоматически, указывать его не нужно. Его можно при необходимости узнать, введя print (type(x)).
Циклы
В отличие от того же С++ или Java, циклы в Python задаются отступами, что после других языков программирования может быть непривычным. Часть кода, находящаяся внутри цикла, будет выполнена заданное количество раз.
Вывод чисел от 1 до 9:
for p in range(1,10):
print (p)
Вывод чисел от 1 до 9 с шагом 2:
for p in range(1,10,2):
print (p)
Для сравнения, вот такой код без отступов работать не будет, и это важно помнить, например при копировании кода из этой книги:
for p in range(1,10):
print (p)
Кстати, в Python 2.7 функция range возвращает объект “список”, и соответственно выделяет память заданного размера. Для большинства примеров в книге это не критично, но если нужно написать код типа for p in range(1,10000000), то range следует заменить на xrange, в противном случае программа вполне может занять гигабайт памяти даже на простом с виду цикле. Для Python 3.xx это не требуется.
Массивы