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

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


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

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

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

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

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

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

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

Загрузка...

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

    • Автор: MasterElectric
      Продаю свои запасы разных МК список будет (позже). Есть STM8, STM32(F1,F2, F3, F4, F7), ADUC, ADUCM, SiLabs (EFM8, EFM32, 8051F), LPC, AVR. Цены будут ниже чем в магазинах. Если что в ЛС пишите посмотрю. Только Украина.
    • Автор: ekaterina_b
      Команда проекта расположена в разных странах, но большинство технических специалистов находятся в России, а именно в Санкт-Петербурге. Само назначение проекта - создание умной потребительской электроники, гаджетов и онлайн-сервисов. Отличительной особенностью этой работы является возможность участия в создании инновационных, нестандартных продуктов. Если тебе это по душе, то откликайся! В связи с расширением мы ищем Инженера-схемотехника.
      Обязанности:
      Разработка электрических принципиальных схем; Выбор элементной базы; Трассировка печатных плат; Техническое сопровождение изготовления опытных образцов, отладка и настройка; Требования:
      Знание и опыт работы с AltiumDesigner; Опыт работы в сфере радио и высокочастотной электроники. Условия:
      Дружная команда единомышленников; Уютный офис в центре города Конкурентоспособная заработная плата; Фрукты и сладости в офисе; Полное обеспечение всеми необходимыми в работе учебными материалами; Возможность участие в отраслевых мероприятиях.
    • Автор: ktulx
      Всем привет.
      Есть два одинаковых модуля на max31855. Заказаны на Aliexpress.
      Для проверки использовал библиотеку и пример оттуда от Adafruit.
      Термопары К типа, две штуки, обе рабочие.
      Не помню уже, какие именно были показания в начале, но неправильные.
      Стал смотреть дш на микросхему. В нём сказано, что нельзя подключать второй пин (Т-) к земле. На китайских же платах оно именно так.
      Сдул чип с одной платы, перерезал дорожку, запаял обратно.
      Результат: показания бредовые, то -800, то +1200.
      Вешал конденсатор параллельно термопаре. Менял + и - местами. Бесполезно.
      Пробовал и хардварный и софтварный SPI. Со стороны Малины всё в порядке - на хардварный SPI цеплял дисплей от Ноклы 3310, всё работает.
      Есть у кого-нибудь опыт с этими модулями? В чём дело может быть?
      Спасибо.
    • Автор: A_R_M
      Добрый день, (пост длинный, если нужна суть, читаем со 2 абзаца, все вопросы к Вам - в конце)
      1) Около года назад понял, что ардуинка это всего-лишь игрушка (а потратил на неё довольно большие для подростка деньги), разочаровался и наконец вовсе забросил всё это (ещё немного поигравшись с avr). Потом интерес ожил, заказал с али вот такую (см прикрепление) платку с  Stm32f407VE камнем с 168 мгц, DMA, 192 КБ ОЗУ, 512 КБ ПЗУ и множество других различных вкусностей. Во время того, как эта платка лежала на таможне, ускоренными курсами проходил вот такую книжку http://www.softlabirint.ru/book/23552-mikrokontrollery-avr-ot-azov-programmirovaniya-do-sozdaniya-prakticheskih-ustroystv-av-belov-2016-pdfcd.html (хотя она для AVR, но для общего развития сошла :-))
      2) Ну естественно, программировать stm посложнее чем avr (да ещё корявые библиотеки *(), да и тем более чем ардуинку. Решил попробовать всё самому https://habrahabr.ru/post/216843/  Поэтому даже старый-добрый Hello World на C++, да или просто С, (пока нет разницы) пошёл ну ОЧЕНЬ медленно, но стартовал.
      Но зачем мне такая крутая платка для таких простых вещей, на которых хватило и возможностей Attiny? Да просто вдохновился такими проектами, как uzebox, avrchipbasic, эмулятор ZX Spektrum и проч. Но ведь возможности stm32f407 гораздо выше даже самой навороченной uzebox. По этому решил создать собсетвенную систему на этом камне с прерываниями, видеоплеером, ну и т.д. на C++. Естественно, это не тяп-ляп, да и корабль, а вполне серьёзная штука. Есть множество вопросов по ней. Ну, поехали!
      I) Необходимо будет выполнять программы с Nand памяти, а сохранять и считывать, копировать с Micro sd (а это возможно?)
      II) Решил использовать C++, но не думаю что его гибкости хватит на все задачи (а может, хватит?)
      III) Микропроцессору, хотя и мощному, придётся одновременно и решать задачи, и производить прерывания, переключения, считывание, вывод информации НА ТВ ЭКРАН ПОСРЕДСТВОМ ТЮЛЬПАНОВ, вывод звука и прочие задачи. (А хватит на всё?)
      IV) Решил использовать встроенную 192-КБ память для самой "Операционки" и её ядра, а для других приложений использовать внешнее ОЗУ
      V)  а) Возможна ли разработка приложений для этой платы с неё самой (из-под неё, только как будет производиться компиляция?)
           б) Если пункт а) невыполним, то возможна компиляция программ на пк, например, в двоичный код, который понятен ядру ARM?
      VI) Вообще за сколько можно разработать такую систему при ежедневной разработке в течение часа и постоянно кричащей маме "Делай уроки!"
      За грамотные ответы буду очень благодарен!
       

    • Автор: levshkatov
      Порылся в инете и не нашел. Вроде бы бесплатный флак, а никто не делится примерами его использования для ARM. Мне нужен Cortex-M4, но в принципе подойдет любой ARM. Любые статьи, код, все что угодно. Спасибо!
  • Сообщения

    • А давай лучше не будешь нам рассказывать сказки,а будешь учиться и практически познаешь всё это. Два минуса тебе за флуд!
    • GELIANIN, давайте не путать "теплое" и "мягкое" и не валить все в одну кучу. "Земляные" петли (термин "петля массы" встречаю первый раз!) приводят к возрастанию НАВОДОК; это, в свою очередь, ведет к увеличению ФОНА, а ШУМ здесь - вообще ни при чем.
    • Ну не знаю, может у меня IAR более новый). А кто - нибудь цеплял 1602 по I2C через переходник на PCF8574AT без библиотек, код инициализации у кого какой? Хотя я уже разный пробовал, даже с библиотечной ардуины брал код инициализации дисплея, меня вот волнует больше то что пишут в нете что  в HAL нужно адрес сдвинуть, но я находил чисто побитовый сдвиг у некоторых в коде, а в других местах читал что нужно учесть сдвиг адреса, так как там семибитная адресация, а восьмой бит задает режим чтение - запись, ну вот у меня сканер на ардуино показал адрес 0x3F, я его и вбиваю, может нужно его меньше задать, хотя ну 0x3F всего 6 бит.
    • Этот факт все знают. Нельзя делать петли связи по массе между блоками Аудиосистемы. Только не к возрастанию шума корректора приводит при измерении (как вы думаете) ,а возрастанию отображения шума Спектроанализатором от петли массы. А шум корректора как был таким и остаётся, уровень шума увеличивается  на экране от влияния факторов неверной разводки массы в звуковой карте,ведь она не разрабатывалась для измерений в дуплексном режиме,она просто должна выдавать звук на усилитель или наушники. Вот сейчас доделал очередной корректор,начну настраивать,снял для вас когда оба кабеля подключены и теперь во вход корректора воткнём кабель с оборванным экраном возле штеккера и сразу видно что 20dB шумов даёт петля массы в измериловке.  
    • Еще помогает генератор тока- нагрузка выхода блока питания, в место резистора на выходе.
    • Бухать нужно переставать, вот , что случилось.