admin

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

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

admin    2 236

На днях получил плату/компьютер 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

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


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

Быстрый заказ печатных плат

Полный цикл производства PCB по низким ценам!

  • x
    мм
Заказать Получить купон на $5.00
admin    2 236

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

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

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

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

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

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

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

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

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


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

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

По умолчанию, дистрибутив 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

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


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

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

На 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 вполне подойдет

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


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

Доступ к 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 или другой клиент.

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


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

Потоковое видео с вебкамеры, подключенной к 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.

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


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

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

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


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

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

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

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

3a8c6167fca6.jpg

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


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

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

sudo passwd root

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

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

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

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

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


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

Включаем 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

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


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

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

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

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

...

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

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

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


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

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

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

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


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

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

VLC пробовал.

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


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

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

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


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

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

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


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

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

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

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


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

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

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

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


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

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

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


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

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

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

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

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

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


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

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

mc89-1.jpg

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

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

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


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

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

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


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

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

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


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

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

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

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

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

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

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

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

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

    • Автор: Антон Миханько
      Здравствуйте.
      Собираю из Raspberry удобное подобие планшета, чтоб можно было бы кодить в машине, автобусе, кровати и без проводов. 
      Задумался над тем, чтобы прикрутить к малинке колонки (вдруг захочу еще и фильм глянуть). Аудиовыход имеется, мелкие динамики куплю. 
      Думаю дальше сборка будет как у наушников, плюс\минус динамика к соответствующему контакту аудио-штекера.
      С этим понятно (если я не ошибаюсь), но, если я так сделаю, то мой аудио-выход малины будет всегда занять колонками, а если я захочу подключить наушники, то динамики придется снимать.
      На планшетах, ноутбуках при подключении наушников динамики отключаются сами. Как бы такое же сотварить с малинкой?
    • Автор: Selyk
      В. Я подключаю светодиод (СД, LED), а он не горит?
      О. Не правильно подключен СД (не соблюдена полярность)
      СД не исправен
      В. Как правильно подключить СД?
      О. У светодиода два контакта: анод(плюс) и катод (минус). Обычно, длинный контакт у светодиода – это анод, но бывают и исключения

      Для каплевидных светодиодов самый надежный вариант - "чашечка" это минус, а второй вывод, от которого в светодиоде к чашечке идет едва различимый глазом золотой волосок (проводник) - плюс.
      Если светодиод не светится при таком подключении, то можно поменять полярность, при условии, что напряжение источника не превышает 3-4 вольт. Это не позволит пробить его обратным напряжением.
      В. Как проверить СД?
      О. Включаем мультиметр на режим прозвонки. СД как и диод должен прозваниваться лишь в одном направлении. Если его сопротивление равно 0 в оба направления то он пробит, если бесконечности то обрыв
      В. Как узнать параметры СД?
      О. Подключаем СД на номинальное напряжение и меряем ток.
      Таблица примерных напряжений светодиодов в зависимости от цвета


      В. У меня СД на 3В а напряжение блока 5В.Как подключить СД?
      О. Через токоограничивающий резистор

      Расчет резистора для светодиода
      В. Как подключить СД к 220В?
      О. С помощью резистора и диода(защита от пробоя обратным напряжением)

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

      В зависимости от количества СД и их параметров будет изменятся С1
      Пример его расчета
      Так же можно применить специальные драйверы
      В. Как сделать лампочку на СД для 220В?
      Светодиодная Лампа, Цоколь Е27
      В. Что такое драйвер?
      О. Для того чтобы светодиоды работали максимально долго, требуется надежная и стабильная подача питания. Главным параметром СД есть ТОК.Так что драйвер представляет собой стабилизатор тока, так же может иметь дополнительные функции в виде регулировки яркости и разных режимов роботы СД.
      В. Что собой являет простейший драйвер?
      О. Самый простой это резистор.
      Недостатки
      Требуется стабилизация питающего напряжения
      Слишком высокое выделение тепла на ограничительном резисторе R1
      Реальная опасность "лавинного теплового разрушения" светодиода
      Что такое "лавинное тепловое разрушение"? Дело в том, что при нагреве светодиода значительно снижается прямое падение напряжения на нем, а соответственно увиличивается ток потребляемый светодиодом, что в свою очередь ведет к еще большему нагреву светодиода и т.д. В конце этого "лавинного нагрева" светодиод или перегорает или полностью деградирует, что собственно говоря, не многим лучше.
      Далее простым есть LM 317(и её аналоги)в режиме стабилизации тока

      Недостатки
      Низкий КПД и соответственно непозволительный нагрев элементов стабилизации
      Далее идут специальные МС а также DC/DC преобразователи
      В. Как регулировать яркость СД?
      О. Самым оптимальным будет ШИМ. Вот одна из многих схем

      В.Как сделать стробоскоп на СД?
      О. Воспользуемся снова 555 таймером (расчет 555)

      И еще:
      Светодиодный стробоскоп (светодиодный маяк) на TL494
      Стробоскоп своими руками на 10 эффектов
      В.Как правильно запитать мощный СД?
      О. Для мощных СД обязательным условием есть радиатор и драйвер. Ток драйвера советую сделать ниже номинального, не так быстро будут деградировать СД
      В. Мощные СД широко светят как уменьшить угол?
      О. Для изменения угла света применяют коллиматоры(оптические линзы)

      В.Как сделать цветомузыку на LED?
      Цветомузыка. Что может быть проще?
      В. Как собрать мигалку на СД?
      Разные световые эффекты
      В. Хочу подключить СД к аккумулятору/блоку питания подскажите драйвер.
      Ниже приведены найденные мной схемы драйверов.Большинство из них можно пересчитать под свои СД




      Описание
      Светодиодный драйвер на PT4115
      Светодиодный драйвер на LM2596 и LM358
      Мощный светодиодный драйвер с функцией диммирования PT4115
      Светодиодный драйвер на LTC3454 + управление на ATtiny13A
      Драйвер светодиода своими руками на микросхеме LM3406
      LED-драйвер 3 Ватт
      Простой светодиодный драйвер с ШИМ входом
      Дополнительная информация по светодиодам
      Светодиоды и их применение
      Светодиодный калькулятор
      О светодиодах: азы для начинающих
      Расчет охлаждения: Thermal_mode.pdf
    • Автор: ktulx
      Приветствую.
      Схема простая: малина - pca9685 - оптрон - LDD-1000H - светодиоды.
      Все питания берётся от одного БП, причём на драйвер идёт минус 48 вольт. Отсюда и оптрон.
      Теперь о проблеме.
      Запускаю питоновый скрипт через cron. Каждый раз, будь то включение сд, выключение или изменение яркости - сначала происходит мгновенная вспышка на максимальной яркости, а затем уже то, что по плану. В общем-то оно и понятно - создаю новый объект класса при каждом запуске скрипта.
      Пример led_on:
      import Adafruit_PCA9685 pwm = Adafruit_PCA9685.PCA9685() pwm.set_pwm_freq(100) pwm.set_pwm(0, 0, 1000) Был на форуме Adafruit. Там мне "посоветовали", чтобы я не инициализировал контроллер каждый раз.
      Но как так-то?
      В общем, возможно ли софтварно решить эту задачу?
      Хардварно не придумал ничего лучше, чем повесить полевик на Output Enable и менять уровень на пине каждый раз перед работой с контроллером из нового скрипта.
      Это хоть и лучше, чем сейчас, но всё равно будет кратковременно моргать, только уже темнотой )
      Здесь можно посмотреть библиотеку от Adafruit для работы с PCA9685.
      Прошу советов.
    • Автор: MasterElectric
      Продаю свои запасы разных МК список будет (позже). Есть STM8, STM32(F1,F2, F3, F4, F7), ADUC, ADUCM, SiLabs (EFM8, EFM32, 8051F), LPC, AVR. Цены будут ниже чем в магазинах. Если что в ЛС пишите посмотрю. Только Украина.
    • Автор: ekaterina_b
      Команда проекта расположена в разных странах, но большинство технических специалистов находятся в России, а именно в Санкт-Петербурге. Само назначение проекта - создание умной потребительской электроники, гаджетов и онлайн-сервисов. Отличительной особенностью этой работы является возможность участия в создании инновационных, нестандартных продуктов. Если тебе это по душе, то откликайся! В связи с расширением мы ищем Инженера-схемотехника.
      Обязанности:
      Разработка электрических принципиальных схем; Выбор элементной базы; Трассировка печатных плат; Техническое сопровождение изготовления опытных образцов, отладка и настройка; Требования:
      Знание и опыт работы с AltiumDesigner; Опыт работы в сфере радио и высокочастотной электроники. Условия:
      Дружная команда единомышленников; Уютный офис в центре города Конкурентоспособная заработная плата; Фрукты и сладости в офисе; Полное обеспечение всеми необходимыми в работе учебными материалами; Возможность участие в отраслевых мероприятиях.