admin

FAQ Raspberry Pi - Миникомпьютер с Linux за 25$/35$

470 сообщений в этой теме

На днях получил плату/компьютер Raspberry Pi. Открываю топик по работе с данной платой, обмене опытом, вопросах и ответах.

Для тех кто не в курсе что это такое, здесь я приводил небольшое описание и основные характеристики платы Raspberry Pi. Я приобрел Model B, с доставкой в Россию вышло 46$, оплачивал кредитной карточкой.

Постоянно обновляемый список поддерживаемого и проблемного оборудования (клавиатуры, мышки, вебкамеры, хабы, Wi-Fi, Bluetooth, 3G, ТВ-тюнеры, SD-карты): http://elinux.org/RP...fiedPeripherals

Быстрый старт с Raspberry Pi

В принципе информация по Quick Start есть на официальном сайте, но раз уж мы затронули эту тему, то будем описывать все до конца.

Итак, вам пришла заветная посылочка, что дальше? А все очень просто. Плата Raspberry Pi поставляется "голой" (можно конечно и купить с SD-картой с ОС). Чтобы она работала, нужна операционная система. ОС необходимо скачать и записать на SD-карточку, которая затем вставляется в SD-слот на плате. Грубо говоря здесь SD карта служит вместо жесткого диска. Вы можете иметь несколько SD карт с разными ОС, под разные задачи и оперативно менять их в случае необходимости, что очень удобно.

Скачать официальные имиджи ОС можно отсюда: http://www.raspberrypi.org/downloads

Неофициальный список здесь запущенных ОС: http://elinux.org/RPi_Distributions

Для начала, я бы посоветовал вам скачать официальный имидж Raspbian "wheezy", а потом уже экспериментировать с другими ОС. Итак, идем на страничку Downloads и качаем первый имидж. После скачивания разархивируем файл, чтобы получился файл с расширением ".img".

Далее, нам понадобится утилита для записи имиджа на SD карту. Для пользователей Windows это Win32DiskImager, для юниксодиов это dd. У меня стоит Windows, поэтому я пользовался Win32DiskImager. Скачиваем, запускаем ее (установка не требуется), указываем путь к файлу имиджа, справа выбираем букву SD-флэшки в вашей системе (будьте внимательней) и нажимаем Write для записи. Начнется процесс записи имиджа.

Также, при помощи Win32DiskImager можно скопировать образ ОС с SD-карточки на диск компьютера (т.е. произвести обратную процедуру). Это очень удобно, когда вы экспериментируете с системой. Т.е. настроили ОС под себя, сохранили на диск образ ОС и можно дальше делать все, что угодно. А в случае проблем записать на SD ранее сохраненный образ.

post-1-0-39748300-1347544529.png

После окончания записи, вынимаем SD-карту из картридера компьютера и вставляем ее в Raspberry Pi. Подключаем монитор (по HDMI или VGA), клавиатуру, а также опционально мышку и Ethernet кабель. Затем подаем питание через Micro USB порт.

post-1-0-90324900-1347544544_thumb.jpg

Примечание: на офсайте написано, что ток может достигать отметки 700 мА, поэтому не рекомендуется питать от компьютера или USB-хаба. Однако я на свой страх и риск подключил к компьютеру и все работало. Если не нагружать процессор просмотром видео, графическим интерфейсом и прочими тяжелыми задачами, то думаю ничего страшного не будет.

После включения питания начинается процесс загрузки ОС с карты. При первом включении вы попадаете в конфигуратор raspi_config. Если у вас карточка больше чем 2 ГБайта, то рекомендую сразу расширить свободное дисковое пространство для ОС, т.к. по умолчанию она берет 2 Гига, что может быть недостаточно. Для этого выберите пункт expand_roofs. Правда задать кол-во секторов не получится, команда выделит максимально доступное ей дисковое пространство.

Вернуться в конфигуратор можно командой

sudo raspi-config

После загрузки системы мы попадаем в консоль, для того, чтобы запустить графический интерфейс LXDE необходимо ввести команду startx.

post-1-0-87069800-1347544561_thumb.jpg

Данные для входа в Raspbian "wheezy" такие:

Имя: pi

Пароль: raspberry

Если необходимы права суперпользователя, то как и в большинстве Lixnux-систем необходимо перед какой-либо командой писать sudo. Например ls –l (просмотр списка файлов)

Основные команды Unix я здесь описывать не буду, для этого есть очень много специализированных ресурсов.

Рестарт может осуществляется одной из команд:

reboot
sudo shutdown -r now

Последняя версия Raspbian, после обновления утилиты raspi-config, позволяет разогнать процессор до 1ГГц (в меню пункт overclocking). Что дает примерно 50% прирост скорости. Однако учтите, что в этом случае возрастает и энергопотребление платы.

Ethernet/Интернет

Без выхода в глобальную сеть сейчас никуда….

По умолчанию, Raspbian настроен на DHCP. Т.е. если ваш маршрутизатор работает в данном режиме, то Raspberry Pi автоматически получит свой IP адрес и все заработает.

Проверить наличие подключение к интернету можно этой командой: ping cxem.net :)

Однако, если у вас сеть с статическим IP, то тут придется немного постучать по клавиатуре.

В имидже Raspbian файл сетевых интерфейсов находится здесь: /etc/network/interfaces

Чтобы его отредактировать, введите следующую команду:

sudo nano /etc/network/interfaces

nano – это текстовый редатор, можете конечно юзать и vi если вы хардкорный юниксоид :)

Строчку iface eth0 inet dhcp необходимо закомментировать:

#iface eth0 inet dhcp

Добавьте туда следующие строки:

iface eth0 inet static
address 192.168.1.30
netmask 255.255.255.0
gateway 192.168.1.1

Где:

address – статический адрес Raspberry Pi

netmask – маска подсети

gateway – шлюз (как правило IP вашего сетевого маршрутизатора)

После внесения изменений, необходимо сделать рестарт, чтобы изменения вступили в силу:

sudo /etc/init.d/networking restart

Обновление пакетов

Сразу после того, как заработает интернет, обновите список репозитариев командой:

sudo apt-get update

А следующей командой, обновите сами пакеты:

sudo apt-get upgrade

Чтобы установить какой-либо новый пакет используйте команду:

sudo apt-get install [имя пакета]
#Например:
sudo apt-get install mc

Кстати пакет mc (Midnight Commander) – очень удобный консольный файловый менеджер, заметно облегчает работу новичков в Linux-системах. Рекомендую его сразу же установить. Запускается командой sudo mc или просто mc если root-права не нужны.

Изменено пользователем admin
6

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Статьи на сайте:

Использование GPIO выводов Raspberry Pi

Web-управление Raspberry Pi GPIO

Raspberry Pi в качестве FM-передатчика

Воспроизведение видео

Для Raspberry PI существует специально разработанный видео-плеер Omxplayer, задействующий аппаратные ресурсы GPU и работающий при помощи командной строки. Запуск просмотра видео на HDMI:

omxplayer -o hdmi /home/pi/video.mp4

Изменено пользователем admin
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Увеличиваем дисковое пространство

По умолчанию, дистрибутив raspian выделяет около 2 Гбайт дискового пространства. Как оказалось, этого мало, к примеру у меня не хватило, чтобы полностью установить веб сервер (т.е. nginx, php, mysql, phpmyadmin). Поэтому его необходимо увеличить, к счастью SD-флэшки сейчас очень дешевые и 8/16 Гбайт флэшки хватит с солидным запасом.

Можно вернуться в конфигуратор raspi-config и задать все свободное пространство под основной раздел, а можно воспользоваться нижеследующим способом для ручного создания/изменения разделов.

Внимание! Изменение таблицы разделов может привести к потере данных. Увеличение раздела проходит безболезненно, а вот уменьшение скорее всего приведет к потере всей информации (я специально проэкспериментировал и убедился в этом).

Выведем информацию о дисковом пространстве при помощи команды (disk free — свободное пространство):

df –h

Затем воспользуемся командой fdisk для работы с разделами:

sudo fdisk -u /dev/mmcblk0

Отображаем таблицу разделов:

p

Удаляем раздел:

d

Вводим номер раздела:

2

Теперь создадим новый раздел (new):

n

Выбираем primary:

p

Номер раздела:

2

Первый сектор вводим как и был:

122880

Теперь необходимо ввести последний сектор. К примеру, мы хотим приблизительный размер диска 16 Гбайт. Для этого 16 000 000 000 делим на размер сектора 512 байт и получаем конечный сектор: 31 250 000. Все расчеты приблизительны, можно рассчитать более точно, но нам это не нужно, т.к. флэшка 32 ГБайта.

Вводим 31250000

А затем вводим:

w

post-1-0-33365100-1347603591_thumb.png

И перезагружаем:

sudo reboot

После перезагрузки необходимо выполнить команду resize2fs для изменения размера дисков:

sudo resize2fs –p /dev/mmcblk0p2

Итог работы:

post-1-0-76331600-1347603601.png

Добавляем Swap (не обязательно):

sudo dd if=/dev/zero of=swapfile bs=1M count=128
sudo mkswap /var/swapfile
sudo swapon /var/swapfile
sudo dphys-swapfile setup
sudo dphys-swapfile swapon

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Локальный веб-сервер

На Raspberry Pi можно сделать свой небольшой веб-сервер, который будет доступен в сети интернет, даже если у вас динамический IP адрес (но об этом чуть позже).

FTP/SFTP

В процессе работы с платой Raspberry будет часто возникать необходимость скопировать файлы с Raspberry Pi на ПК или обратно. Обычно, на хостингах для этих целей используют FTP-соединение.

Но, в целях экономии ресурсов я не стал ставить FTP-сервер в виде ProFTPD и т.п. Гораздо проще воспользоваться передачей файлов поверх SSH-соединения (так называемый SFTP - SSH File Transfer Protocol), тем более что для него существует масса клиентов под Windows, Linux, Android и другие платформы. Для этого я использовал один из самых популярных клиентов под Windows – WinSCP. Работать с ним очень просто – скачиваем и устанавливаем дистрибутив с официального сайта, вводим IP платы, имя и пароль (по умолчанию pi/raspberry).

post-1-0-21047500-1347780509_thumb.png

HTTP-сервер nginx

Итак, сервер на базе apache2 – это прошлый век, мы будем использовать HTTP-сервер nginx, написанный нашим соотечественником Игорем Сысоевым, который более быстродейственный и менее ресурсоемкий, чем популярный сервер apache. А т.к. у нас на плате ограниченное число ресурсов, то для нас это очень важно.

Установка nginx осуществляется командой:

sudo apt-get –V install nginx

Опция –V для того, чтобы показать нам версию пакета.

После установки откройте IP в браузере (у меня это 192.168.1.30) и вы должны увидеть надпись "Welcome to nginx!". Значит nginx установился нормально и все работает.

Файл HTML находится по умолчанию в папке /usr/share/nginx/www , но можно перенести сайт в более привычное место /home, для этого необходимо отредактировать файл настроек сайта /etc/nginx/sites-available/default. Замените в нем строку:

root /usr/share/nginx/www

На к примеру следующую:

root /home/test.ru/public_html

А в папку /home/test.ru/public_html поместите файл index.html.

В файле /etc/nginx/nginx.conf установите параметр:

worker_processes 1;

Установка PHP

Все, веб-сервер готов, но без PHP и MySQL это не полноценный веб-сервер. Приступим к установке PHP. Для этого нам необходим пакет PHP-FPM, устанавливаем:

sudo apt-get install php5-fpm

После, удаляем наш прежний index.html и создаем новый index.php с следующим содержимым:

<? phpinfo(); ?>

В файле /etc/nginx/sites-available/default прописываем индексный файл, за это отвечает директива index:

index index.php;

И раскомментируйте строки касающиеся php5-cgi:

location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}

После этого перезапускаем сервис nginx командой:

sudo service nginx restart

Вводим на компьютере, в браузере, IP нашего миникомпьютера Raspberry Pi и наблюдаем вывод команды phpinfo. Все, связка nginx + PHP работает, осталось установить MySQL.

post-1-0-97214700-1347780513_thumb.png

MySQL

Устанавливаем MySQL:

sudo apt-get install mysql-server php5-mysql

В процессе установки необходимо будет задать пароль для MySQL. После установки наберите команду mysql, после чего вы войдете в консольную утилиту для управления БД.

Введите команду show databases;

Вы должны будете увидеть список ваших БД. Если видите, значит все установилось нормально.

Если вы не дружите с консолью, то для управления БД можно использовать какую-либо веб-оболочку для администрирования БД. Популярную phpMyAdmin ставить я бы не советовал, т.к. она ресурсоемкая, плюс могут возникнуть работы с nginx (необходимо будет править конфиги и т.п.). Я советую вам посмотреть в сторону SQL Buddy – легкий веб-интерфейс для управления MySQL. Скачиваем, разархивируем и копируем в папку, где у вас находятся www-файлы. Потом в браузере просто указываем имя папки и вводим имя и пароль к MySQL.

post-1-0-05430200-1347780518_thumb.png

После всех вышеперечисленных действий у вас имеется полноценный веб-сервер. Тяжеловесный форум наподобие phpBB, IPB или CMS WordPress, Joomla для работы на реальном проекте под нагрузкой, использовать не получится (т.к. объем памяти мал, да и быстродействие процессора не ахти), но для логгирования каких-либо данных с датчиков, и последующих выводов данных в HTML вполне подойдет

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Доступ к Raspberry Pi из сети интернет

Итак, у нас есть работающий веб-сервер, но проблема в том, что мы можем видеть его только в нашей локальной сети (если конечно у вас не выделенный статический IP). В большинстве случаев, домашние пользователи подключены к интернету с выделением динамического IP- адреса, т.е. после каждой перезагрузки модема или разрыва сессии, вы скорее всего получите новый IP.

Однако, при помощи такого замечательного сервиса как no-ip можно сделать видимым вашу плату Raspberry Pi из любой точки земного шара, где есть интернет. Причем вы сможете осуществить доступ и по SSH (22 порт) и по HTTP (80 порт) и по любому другому протоколу. Сразу скажу, что почти все тоже самое можно настроить и при помощи маршрутизатора (если он поддерживает DDNS). Однако, если у вас много устройств и необходим доступ по разным доменным именам, то это уже будет проблематично.

Итак, для начала необходимо зарегистрироваться на сайте www.no-ip.com. Затем в панели управления нажимаем Add a Host и в поле "Hostname:" вводим желаемое имя и выбираем один из поддоменов (т.е. в итоге получится URL, по которому вы будете попадать на свой миникомпьютер). В поле "Host Type:" стоит "DNS Host (A)", его так и оставляем. В поле "IP Address:" вы видите текущий IP-адрес. Его изменить нельзя.

post-1-0-92286700-1347799790_thumb.png

Сервис no-ip вы настроили, но для того, чтобы к вашему устройству был доступ из сети интернет этого мало. Обращаясь к вашему доменному имени (например payalnik.noip.me), сначала идет запрос к сервису no-ip, и чтобы перенаправить его к Raspberry Pi, сервис должен знать его текущий IP адрес (который как вы помните постоянно меняется). В современных маршрутизаторах для таких целей настраивается DDNS сервис (к примеру, для модемов D-Link существует свой бесплатный аналог no-ip: www.dlinkddns.com). А для Windows и Linux устройств существует специальный софт, который устанавливается на устройстве и отправляет текущий IP адрес серверу no-ip.

В данной части мы рассмотрим установку ПО, необходимое для работы сервисом no-ip.com. На самом сервисе Linux-клиент описан здесь

Скачиваем клиент командой:

wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz

Извлекаем архив:

tar vzxf noip-duc-linux.tar.gz

Переходим в директорию клиента:

cd noip-2.1.9-1

Компилируем и инсталлируем:

sudo make
sudo make install

В процессе установки скрипт попросит вас ввести логин, пароль и интервал обновления.

Запуск скрипта осуществляется командой:

sudo /usr/local/bin/noip2

Но, после перезагрузки устройства необходимо будет вручную запускать данный скрипт, поэтому нам необходимо настроить его автозапуск.

Создаем скрипт noip:

sudo nano /etc/init.d/noip

Копипастим в него следующий текст:

#! /bin/sh
# /etc/init.d/noip
# If you want a command to always run, put it here
# Carry out specific functions when asked to by the system
case "$1" in
start)
echo "Starting noip"
# run application you want to start
/usr/local/bin/noip2
;;
stop)
echo "Stopping noip"
# kill application you want to stop
killall noip2
;;
*)
echo "Usage: /etc/init.d/noip {start|stop}"
exit 1
;;
esac
exit 0

Ставим необходимые права:

sudo chmod 755 /etc/init.d/noip

Регистрируем скрипт:

sudo update-rc.d noip defaults

Могут возникнуть предупреждения, но на них можно не обращать внимание

post-1-0-25499000-1347799797.png

Запуск скрипт осуществляются командой:

sudo /etc/init.d/noip start

Останов скрипт осуществляются командой:

sudo /etc/init.d/noip stop

Чтобы убрать скрипт из автозагрузки:

sudo update-rc.d -f noip remove

Настройка маршрутизатора

На маршрутизатор необходимо настроить переброс портов. Я настроил 80 порт (для веб-сервера) и 22 порт (для доступа по SSH).

Пример настройки для маршрутизатора DIR-615:

post-1-0-55946200-1347799801_thumb.png

Пример настройки для маршрутизатора DIR-300:

post-1-0-54586300-1347799805_thumb.png

После всех вышеперечисленных действий ждем некоторое время и набирая в браузере, к примеру payalnik.noip.me вы попадете на главную страничку. Подобным образом вы можете зайти на ваш Raspberry Pi по SSH-протоколу на 22 порт через PuTTy или другой клиент.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Потоковое видео с вебкамеры, подключенной к Raspberry Pi

Подключив USB-вебкамеру к Raspberry Pi вы можете настроить потоковое видео транслируемое с камеры по http-протоколу. Т.е. совместив вышеприведенные настройки noip вы сможете создать простую систему видеонаблюдения с возможностью просмотра видео с любой точки планеты.

Данную инструкцию я нашел на одном из зарубежных блогов:

1. Добавьте следующие 2 строки в файл /etc/apt/sources.list:

sudo nano /etc/apt/sources.list
deb-src http://www.deb-multimedia.org sid main
deb http://www.deb-multimedia.org wheezy main non-free

2. Выполните команду обновления данных репозитариев:

sudo apt-get update

3. Выполните команду:

sudo apt-get install deb-multimedia-keyring

4. Из файла apt-get install deb-multimedia-keyring удалите вторую строку:

deb http://www.deb-multimedia.org wheezy main non-free

5. Выполните команду:

sudo apt-get source ffmpeg-dmo

6. После этого, у вас появится папка вида ffmpeg-dmo-1.0 (где 1.0 - текущая версия, которая будет меняться). Зайдите в эту папку командой:

cd ffmpeg-dmo-1.0

7. Выполните команду конфигурирования:

sudo ./configure

8. Затем выполните команды:

sudo make
sudo make install

Команда make будет выполняться несколько часов. У меня ушло около 3-х часов

Т.о. вы установили ffmpeg, теперь его необходимо настроить, чтобы он отдавал поток на ffserver.

Для этого создаем файл и редактируем его:

sudo touch /etc/ffserver.conf
sudo nano /etc/ffserver.conf

В нем прописываем:

Port 80
BindAddress 0.0.0.0
MaxClients 10
MaxBandwidth 50000
NoDaemon

<Feed webcam.ffm>
file /tmp/webcam.ffm
FileMaxSize 10M
</Feed>

<Stream webcam.mjpeg>
Feed webcam.ffm
Format mjpeg
VideoSize 640x480
VideoFrameRate 10
VideoBitRate 2000
VideoQMin 1
VideoQMax 10
</Stream>

Затем создаем файл запуска потока:

sudo touch /usr/sbin/webcam.sh
sudo nano /usr/sbin/webcam.sh

И прописываем в нем строку:

ffserver -f /etc/ffserver.conf & ffmpeg -v verbose -r 5 -s 640x480 -f video4linux2 -i /dev/video0 http://localhost/webcam.ffm

Устанавливаем права запуска файла:

sudo chmod +x /usr/sbin/webcam.sh

Подключаем камеру и запускаем командой:

/usr/sbin/webcam.sh

Просмотреть ваш поток можно в браузере (если он поддерживаем), либо в VLC введу в URL строчку: http://127.0.0.1/webcam.mjpeg

Существует много подводных камней. Во первых для начала посмотрите поддерживается ли ваша камера платой, в списке оборудования.

Во вторых я столкнулся с такой проблемой, что моя камера Logitech C910 упорно не хотела включаться. Помог USB-хаб с внешним питанием, от которого я кстати запитал и камеру и Raspberry Pi. Однако с хабами тоже не все просто, не все из них поддерживаются, нужно смотреть опять таки список, но мой Belkin без проблем работает. Еще одной проблемой является то, что у Raspberry Pi пока что все печально с кодеками для аппаратного ускорения видео (из-за этого очень низкий fps), но вроде как обещают подправить, что же будем ждать. К примеру режим 720p пока что навряд ли удастся задействовать, не говоря уже про видеопоток с камер 1080p.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Короче мне нужно для Ректификационной колонны регулятор.Я бы хотел использовать Raspberry PI как умный регулятор температуры и не только.Мне нужно снимать показания температуры пара и контролировать его,чтоб он был всё время 75.15 градусов.Контролировать путём включения выключения электротенов,думаю нужно реле с которым должен быть связан Raspberry.Сейчас мне главное узнать что мне для этого надо.Имеется Raspberry PI model B 256mb.Вы мне предложили снимать данные температуры при помоши датчика DS18B20.Действительно ли это лучший вариант?Мне ешё нужно его заказать,пока что незнаю где.В обшем в Ректификации очень важна точная температура,делать электросхему регулятор я неумею,а вот программировать это для меня просто.Спасибо заранее.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Подскажите, пожалуйста:

Установил соединение SFTP при помощи программы WinSCP, есть доступ к файловой системе raspberry, но некоторые файлы позволено редактировать только root-пользователю, мне не разрешает. Как сделать, чтобы можно было их редактировать по сети?

PS. В файле /etc/ssh/sshd_config строчка PermitRootLogin yes раскомментирована, но этого, очевидно, недостаточно. Зачем мне это надо? - установил веб-сервер apache2, и не могу заменить index.html своим файлом из-за недостатка прав.

3a8c6167fca6.jpg

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Установи пароль для root пользователя:

sudo passwd root

А затем в WinSCP входи не от пользователя pi, а от root'а

Действительно ли это лучший вариант?

Ну вообще использовать raspberry pi для такой задачи не самый оптимальный вариант. Есть множество более дешевых вариантов на AVR, PIC, промышленных контроллерах и т.п. Но с такими познаниями я бы посоветовал бы вам обратиться в раздел "работа", либо купить готовую продукцию той же фирмы "Овен", либо же тогда изучать.

При наличии свободного времени я постараюсь описать как на raspberry pi делать измерения и выводить данные в виде HTML, но это не раньше чем через 3-4 недели будет, т.к. сейчас занят другим проектом.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Включаем I2C

По умолчанию, в системе Raspbian I2C отключен, поэтому его сначала нужно включить. Для этого редактируем файл:

sudo nano /etc/modprobe.d/raspi-blacklist.conf

В данном файле необходимо закомментировать строчку blacklist i2c-bcm2708 путем добавления значка решетки # в начале строки

Затем добавляем соответствующий модуль I2C, чтобы он стартовал при запуске системы. Команда редактирования:

sudo nano /etc/modules

В самый конец этого файла добавьте строчку i2c-dev

Следующим шагом выполните установку необходимых пакетов:

sudo apt-get install i2c-tools

А затем добавьте в систему пользователя:

sudo adduser pi i2c

И перезагрузитесь командой

sudo reboot

Для проверки работоспособности выполните команду:

i2cdetect -y 0

Должна появиться таблица:

post-1-0-71350900-1351331479.png

На этом активация I2C модуля для Raspberry Pi завершена

Подключение I2C датчика абсолютного давления и температуры BMP085

Схема подключения проста:

post-1-0-17597300-1351588983.png

Если все подключили правильно, то введя команду i2cdetect -y 0 должны увидеть следующее:

post-1-0-56776000-1351589132.png

Далее, если не установлен пакет git, то устанавливаем его:

sudo apt-get install git

Затем скачиваем готовые библиотеки от Adafruit для работы с датчиком BMP085:

git clone https://github.com/adafruit/Adafruit-Raspberry-Pi-Python-Code.git

И переходим в папку с файлами для питон:

cd Adafruit-Raspberry-Pi-Python-Code
cd Adafruit_BMP085

Скачиваем также пакет smbus для работы с Python:

sudo apt-get install python-smbus

И наконец запускаем скрипт командой

sudo python Adafruit_BMP085_example.py

И получаем данные температуры, давления и высоты над уровнем моря:

post-1-0-37722900-1351589163_thumb.png

В файле Adafruit_BMP085_example.py предусмотрено 4 режима работы: ULTRALOWPOWER, STANDARD, HIRES и ULTRAHIRES, которые можно менять путем раскомментирования соответствующих строк.

Подключение 1WIRE датчика температуры DS18B20 к Raspberry Pi

Схема подключения довольно простая:

post-1-0-04840400-1351331558.png

Питания датчика подключается к пину 3.3V, GND к GND, а выход датчика к GPIO#4. Между питанием 3.3В и выходом датчика (GPIO#4) ставиться резистор 4.7 кОм.

После подключения, в каталоге /sys/bus/w1/devices/ у вас должны появиться файлы вида 28- или 10- (у меня 10-), или может какие-то другие, в зависимости от вашего I2C устройства.

Можно вывести информацию с датчика в BASH командой:

cat /sys/bus/w1/devices/10-000800e99043/w1_slave

Только 10-000800e99043 замените на свой. Вывод команды:

post-1-0-56921300-1351331916_thumb.png

Как видно, что текущая температура составляет 23.312 градуса по Цельсию

Работать так конечно неудобно, поэтому к посту прилагается 2 скрипта на питоне: первый скрипт выводит на экран консоли текущее значение температуры через каждые 10 секунд, второй скрипт записывает данные температуры в текстовый файл через каждые 10 секунд.

Запуск скрипта на питоне осуществляется командой

python ds18b20_print.py

Если в конец команды добавить значок &, то процесс будет выполняться фоновом режиме, пока вы его не "убьете" или не перезагрузитесь.

Результат питон-скрипта вывода данных на экран:

post-1-0-15934400-1351332193.png

ds18b20_python.rar

1

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Спасибо за подробные мануалы, очень помогли.

Возникла небольшая проблема:

Потоковое видео с вебкамеры, подключенной к Raspberry Pi

...

В любом браузере (мидори в самой малине или на сетевом компе) выводится: file /webcam.mjpeg not found. То же самое в терминале. Сама камера видеопоток отдает корректно (к слову, в ее качестве выступил автомобильный видеорегистратор :) , а веб-камера Logitech так и не завелась, точнее работала, но с огромным количеством артефактов изображения и ошибок в терминале), проверял через mplayer.

Кстати, есть более удобный вариант настройки связки ffserver и ffmpeg, а именно прописыванием ffmpeg в параметре Launch файла /etc/ffserver.conf в секции feed.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Если file not found значит что то не то с сервером отдачи. Не стоит apache или nginx? Нет ошибок 80-порта? Т.к. они могут конфликтовать.

И лучше пробовать в VLC, у меня поток ни один из трех браузеров не отобразил нормально, хром что-то еще попытался, но как-то глючно очень.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ну, т.к. все делалось по этой теме, стоит nginx. Но я его останавливал перед запуском скрипта, т.к. понимал, что будет конфликт доступа. Задавал другой порт в /etc/ffserver.conf, та же песня. Меня смущает формулировка "file /webcam.mjpeg...", точнее / перед именем файла.

VLC пробовал.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А при запуске скрипта webcam.sh никаких ошибок нет?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Сначала скрипт выдавал ошибку, что не найден лог-файл для второго прохода кодирования, я добавил -flags pass1, эта ошибка исчезла, терепь выходит другая: *** glibc detected *** ffmpeg: corrupted double-linked list: 0x011071a8 ***. Хотел проверить файловую систему через fsck, пишет - раздел монтирован, выход...

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

А что команда df показывает? Может просто места не хватает?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Нет, места достаточно, карта 32-х гиговая, раздел расширен на всю карту.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Всем привет :)

Я тоже недавно приобрёл этот одноплатный компьютер и уже успел поэкспериментировать с ним. Но мне нужно прикупить карту памяти побольше. И вот тут я задумался, имеет ли смысл гнаться за большой скоростью? Есть ли у RPi какое то железное ограничение скорости? Сможет ли карта памяти на 32гб и с заявленной скоростью чтения в 45МБ/с раскрыть свой потенциал?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Привет, тезка :) В любом случае, кашу маслом не испортишь, а при необходимости эту карту можно будет и в каком-нибудь другом устройстве применить. У меня как раз именно такая карта - 32Гб 10 класса.

Изменено пользователем ra4asn
0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Навряд ли есть какие-либо ограничения. Скорее всего все упрется в карту.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ra4asen и admin, спасибо за совет :)

В скором будущем куплю себе тогда "SanDisk 32GB SDHC Extreme UHS-1".

Вопрос несколько другого рода: возможно ли к RPi подключить графический монохромный LCD дисплей вроде такого, как в этой статье.

Чисто теоретически GPIO портов должно хватить, но как это осуществить практически не знаю. Для Ардуины то библиотека есть, а тут вообще глухо, или я просто плохо искал.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Вот такой точно можно подключить:

mc89-1.jpg

Если нужно, могу выложить описание как.

А графический думаю тоже можно, но ПО придется самому писать или искать.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Здраствуйте! A как возможно на raspberry pi поставить arduino ide?

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Скачать сорцы со страницы: http://arduino.cc/en/Main/Software и собрать пакет. Только не пойму для чего это, разве что использовать raspberry вместо ПК... но это сомнительное удовольствие

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

да вы правы я пока использую raspberry в качестве пк проникаюсь во все аспекты люникса для arm и не только. Cпасибо за совет.

0

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Ваша публикация должна быть проверена модератором

0
Вы не авторизованы. Если у вас есть аккаунт, пожалуйста, войдите.
Ответить в тему...

×   Вы вставили отформатированное содержимое.   Восстановить форматирование

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был востановлен.   Очистить редактор

Загрузка...

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

  • Сообщения

  • Похожие публикации

    • Автор: mrGear
      Доброго времени суток, форумчане!
      Давно хочу установить на дрифтовую машинку управление через wi-fi. Почитав немного матчасть, понял, что все не так просто. В общем нужен совет, по выбору мозгов для следующих задач:
      1. Передать видео / аудио с камеры формата hd и микрофона, установленных на модели на компьютер, телефон, без задержек.
      2. Установить пропорциональное управление двигателем / поворотами и несколько команд вроде включить/выключить свет, через тот же компьютер / телефон.
      3. Управление подвесом камеры (соблюдения прямой линии между направлением скольжения модели и подвесом камеры, то есть едете прямо - камера сзади, входите в поворот боком - подвес камеры и вектор направления движения параллельны). Здесь по подробнее: камера устанавливается на плече из проволоки, которая в свою очередь, крепится к бесколлекторному двигателю на крыше модели, (как при трех осевом стабилизаторе на квадрике, только здесь по одной оси) с видом от третьего лица так сказать. Подозреваю, нужен будет еще какой то датчик направления движения.
      Само устройство должно быть не очень большое, чтобы спрятаться под коркой (до 10х10 см) и иметь вычислительную мощность, которой бы хватило с неким запасом для последующих надстроек. Цена до 50$. Рассматривал Raspberry Pi 3 Model B, может подскажите еще какие варианты.
       Заранее благодарю за ответы!
    • 0
      Автор: Гость Дмитрий
      Доброго времени суток, форумчане!
      Давно хочу установить на дрифтовую машинку управление через wi-fi. Почитав немного матчасть, понял, что все не так просто. В общем нужен совет, по выбору мозгов для следующих задач:
      1. Передать видео / аудио с камеры формата hd и микрофона, установленных на модели на компьютер, телефон, без задержек.
      2. Установить пропорциональное управление двигателем / поворотами и несколько команд вроде включить/выключить свет, через тот же компьютер / телефон.
      3. Управление подвесом камеры (соблюдения прямой линии между направлением скольжения модели и подвесом камеры, то есть едете прямо - камера сзади, входите в поворот боком - подвес камеры и вектор направления движения параллельны). Здесь по подробнее: камера устанавливается на плече из проволоки, которая в свою очередь, крепится к бесколлекторному двигателю на крыше модели, (как при трех осевом стабилизаторе на квадрике, только здесь по одной оси) с видом от третьего лица так сказать. Подозреваю, нужен будет еще какой то датчик направления движения.
      Само устройство должно быть не очень большое, чтобы спрятаться под коркой (до 10х10 см) и иметь вычислительную мощность, которой бы хватило с неким запасом для последующих надстроек. Цена до 50$. Рассматривал Raspberry Pi 3 Model B, может подскажите еще какие варианты.
       Заранее благодарю за ответы!
    • Автор: Михаил Никитенко
      Всем доброго времени суток!
      Решил построить бортовой компьютер в автомобиль на базе малинки. Повесил на нее аналоговый китайский телек через аудиовыход (сам офигел от того, что малинка такое умеет). Начал прикидывать сколько портов GPIO мне понадобится для подключения всех датчиков и релюшек для управления всего-всего и понял, что стандартного набора из грубо говоря 17 GPIO не хватит (там ведь еще i2c, UART, SPI, ID EEPROM можно отключать и как GPIO использовать). Уже начал думать вешать все датчики температуры как 1-wire, использовать местами шину i2c, SPI, UART, но все равно их катастрофически не хватает.
      Потратил кучу времени на гугление "как же можно все-таки увеличить количество разъемов GPIO", но ничего не нашел. Даже на adafruit industries ничего не нашел.
      Кто-нибудь знает как же все таки увеличить максимальное количество портов GPIO на таких устройствах? может есть какой-нибудь i2c-GPIO адаптер ?
    • Автор: Qanper
      В небольшую команду, которая занимается разработкой квест-комнат и электроники для квестов, требуется инженер-программист. В ходе работы предстоит программировать игровую логику, «оживлять» загадки и головоломки. Цель нашей работы — создать интересный игровой сюжет и в совершенстве воплотить его «в железе» и софте, чтобы принести игрокам удовольствие от игры! Мы постоянно ищем новые технологии, которые можно использовать в квестах
      От вас требуется:
      — понимать (иногда плохо формализованные) моменты игрового сценария, участвовать в обсуждении деталей технической реализации
      — писать стабильный и поддерживаемый код. Стабильный — потому что результатом вашей работы будут пользоваться люди и любая ошибка смажет впечатление от игры; Поддерживаемый — потому как часто только после реализации можно увидеть изъяны логики, улучшения визуальной составляющей и т. д., что требует оперативной корректировки;
      — уметь быстро «завести» периферийный интерфейс; у нас обычно нет невидимых радиосигналов или гигабайт свежей информации© в недрах жестких дисков, вся периферия мигает, светится или норовит укусить вас за нос;

      На текущий момент стек технологий следующий:
      — STM32L1, arm-gcc/mbed;
      — Raspberry Pi, Raspbian;
      — Python (думаем хотя бы частично переходить на JS в силу чрезвычайной модности главного разработчика);

      Из профессиональных навыков:
      — знание C/C++. Да, мы пишем встраиваемый код на плюсах. Хочется, чтобы вы понимали, как вызывается виртуальный метод, почему нельзя возвращать из функции временную переменную и что не так с проклятой строчкой «++i + ++i»;
      — умение работать с Linux хотя бы на уровне «зайти по ssh на Raspberry и прописать скрипт в автозагрузку»;
      — знание Python или JS. Программ по распознаванию инопланетных сообщений в белом шуме писать не требуется, только бизнес-логика и взаимодействие с системой (последовательный порт, запуск приложений и т. д.);
      — знание схемотехники. Отличить, например, SPI от I²C, уметь пользоваться осциллографом и мультиметром; к сожалению, не все баги находятся с помощью отладчика, так что вас не должен смутить неприпаянный резистор в схеме, из-за которого не идут данные; умение держать паяльник за правильный конец будет большим плюсом;
      вот еще пункт в конец:
      — владение современными средствами разработки: в первую очередь, система контроля версий (мы используем git); Пользоваться можно почти любой IDE, но с любителями писать код в блокноте (без автодополнения, подсветки синтаксиса и отступами вразнобой) далеко не уедем;

      Работа в просторном офисе, 5 минут от ст.м. «Технологический проспект»
       
      Пишите в ЛС или mail@s3f.ru
    • Автор: astrgan
      Здравствуйте.
      Хочу  поигратся с платой SAM3U-EK (соблазнила поддержка usb hs без внешнего phy), чем можно ее шить/отлаживать? Только дорогой отладчик SAM-ICE?