Журнал LinuxFormat - перейти на главную

LXF165-166: Сверхзадача для Raspberry Pi

Материал из Linuxformat
Перейти к: навигация, поиск

Содержание

Сверхзадача для Raspberry Pi

Бен Эверард со своим верным паяльником научит вас извлечь из Pi максимум.

Впер­вые мы рас­ска­за­ли о Raspberry Pi в фев­ра­ле, сра­зу по­сле их вы­пуска. Мы их сра­зу по­лю­би­ли, но не зна­ли, при­дут­ся ли они по ду­ше всем осталь­ным. Не ду­ма­ем, что на тот мо­мент кто-то ис­пы­ты­вал к ним боль­шую при­вя­зан­ность.

Однако Raspberry Pi за­де­ли внут­ренние струн­ки лю­би­те­лей со все­го ми­ра так, как ни од­но уст­рой­ст­во за по­следние го­ды. На­чаль­ная пар­тия ко­ли­че­­ст­вом 10 000 штук раз­ле­те­лась так бы­ст­ро, что толь­ко са­мым ве­зу­чим и убе­ж­ден­ным фа­на­там уда­лось ур­вать се­бе эк­зем­п­ляр, а сей­час они рас­про­да­ют­ся бу­к­валь­но с кон­вей­е­ра. Да че­му тут и удив­лять­ся – ведь все­го за £30 вы по­лу­чае­те ра­бо­чий ком­пь­ю­тер с Linux, с про­цес­со­ром ARM и 512 MБ ОЗУ (на пла­тах, вы­пу­щен­ных по­сле 15 ок­тяб­ря), раз­ме­ром с кре­дит­ную кар­ту.

Цель дан­но­го про­ек­та – ре­во­лю­циониза­ция от­ста­ло­го ком­пь­ю­тер­но­го об­ра­зо­вания в Ве­ли­ко­бри­тании, но по­ка ра­но су­дить, бу­дет ли она достиг­ну­та. Од­но мож­но ска­зать уве­рен­но: миру лю­би­тель­ско­го ха­кер­ст­ва обо­ру­до­вания прежним уже никогда не быть. Эти кро­шеч­ные, но пол­но­функ­цио­наль­ные сис­те­мы иде­аль­ны для внесения воз­мож­но­сти об­ра­бот­ки дан­ных в необыч­ные мес­та, где в боль­шом де­фи­ци­те про­стран­ст­во и элек­тро­энер­гия. Их от­прав­ля­ли в космос и го­то­вят для пе­ре­се­чения океа­нов, но с тем же успе­хом они при­ме­ня­ют­ся в до­машних пи­во­вар­нях и для дис­тан­ци­он­но­го управ­ления ав­то­мо­би­ля­ми. Мы рас­смот­рим ряд ин­те­рес­ных про­ек­тов для Pi и техноло­гии пре­в­ращения Pi в уст­рой­ст­во ва­шей меч­ты. Бла­го­да­ря все­сто­рон­но­сти и глу­бине ин­ст­ру­мен­тов Linux, Pi легко пре­вра­тить во что угод­но, от на­столь­но­го ком­пь­ю­те­ра до муль­ти­ме­диа-цен­тра или кон­трол­ле­ра обо­ру­до­вания.

Ди­ст­ри­бу­ти­вы

Как вы ре­зон­но пред­по­ла­гае­те, для Pi име­ет­ся мас­са ди­ст­ри­бу­ти­вов, и соз­да­ет­ся впе­чат­ление, что еженедель­но по­яв­ля­ют­ся все но­вые и но­вые. Здесь мы рас­смот­рим са­мые по­пу­ляр­ные, а так­же па­роч­ку свежих.

Ус­та­нав­ли­ва­ет­ся ди­ст­ри­бу­тив не со­всем так, как на обыч­ном ком­пь­ю­те­ре. По­сколь­ку все ра­бо­та­ет с SD-кар­ты, нуж­но все­го лишь за­пи­сать на эту кар­ту но­вую опе­ра­ци­он­ную сис­те­му. Про­ще все­го сде­лать это ути­ли­той команд­ной стро­ки dd. Этот ин­ст­ру­мент за­пи­сы­ва­ет дан­ные, бит за би­том пе­ре­да­вая их ме­ж­ду уст­рой­ст­вом и фай­лом (или, при необ­хо­ди­мо­сти, ме­ж­ду дву­мя фай­ла­ми или дву­мя уст­рой­ст­ва­ми). Ди­ст­ри­бу­ти­вы идут в ви­де фай­лов-об­ра­зов (немно­го по­хо­же на фай­лы ISO для CD), ко­то­рые мож­но за­пи­сать на диск по­сле рас­па­ко­вы­вания с по­мо­щью

sudo dd if=<image-file> of=<sd-card-device> bs=4k

sudo sync

Вто­рая стро­ка обес­пе­чи­ва­ет запись всех дан­ных на кар­ту без от­сид­ки в ка­ком-ли­бо бу­фе­ре. Ска­жем, на на­шем тес­то­вом ком­пь­ю­те­ре, обо­ру­до­ван­ном дву­мя же­ст­ки­ми дис­ка­ми (sda и sdb), SD-кар­та по­яв­ля­ет­ся, как dev/sdc. Ес­ли вы не уве­ре­ны в том, ка­ким уст­рой­ст­вом ото­бра­жа­ет­ся ва­ша SD-кар­та, за­пусти­те в тер­ми­на­ле df –h, и вы уви­ди­те спи­сок всех уст­ройств. Из него долж­но быть все яс­но.

Что­бы сде­лать ре­зерв­ную ко­пию на­строй­ки ва­ше­го Raspberry Pi, мо­же­те соз­дать но­вый файл об­раза, по­ме­няв флаж­ки if (input file) и of (output file) в ко­ман­де dd. То есть:

sudo dd if=<sd-card-device> of=<new-imagefile> bs=4k

За­тем этот об­раз мож­но сжать с по­мо­щью gzip или bzip, что­бы он не занимал слиш­ком мно­го мес­та на же­ст­ком дис­ке.

Raspbian

Этот ди­ст­ри­бу­тив ре­ко­мен­дует Raspberry Pi Foundation. Ес­ли у вас нет веской при­чи­ны ис­поль­зо­вать иной ди­ст­ри­бу­тив, он, ве­ро­ят­но, бу­дет наи­луч­шим вы­бо­ром. Осно­ван он на Debian Wheezy, и вы мигом смо­же­те уста­но­вить что угод­но из об­шир­ных ре­по­зи­то­ри­ев Debian.

Сре­дой ра­бо­че­го сто­ла по умол­чанию яв­ля­ет­ся LXDE, ко­то­рый славен ис­клю­чи­тель­ной лег­ко­вес­но­стью, но неко­то­рые по­ла­га­ют, что он пред­ла­га­ет лишь са­мую основу. Для лю­би­те­лей гра­фи­че­­ских пре­лес­тей име­ет­ся Xfce. В нем есть про­грам­ма raspi-config, даю­щая, ве­ро­ят­но, са­мый про­стой спо­соб на­строй­ки ва­ше­го Pi.

Raspberry Pi соз­да­вал­ся для то­го, что­бы ув­лечь де­тей про­грам­ми­ро­ванием, и Raspbian со­от­вет­ст­ву­ет это­му на­ме­рению. Вы об­на­ру­жи­те на его эк­ране Idle (IDE Python) и Scratch (сре­ду про­грам­ми­ро­вания для де­тей). Бе­ри­те его с сай­та www.raspberrypi.org.

Raspbmc

Мо­жет быть, Raspberry Pi и соз­да­вал­ся в ка­че­­ст­ве об­ра­зо­ва­тель­но­го ин­ст­ру­мен­та, но лю­би­те­ли очень бы­ст­ро пре­вра­ти­ли его в иг­руш­ку. Дан­ный ди­ст­ри­бу­тив на­ме­рен пре­вра­тить ваш Pi в муль­ти­ме­диа-центр, при­год­ный для управ­ления ТВ. Он осно­ван на XBMC, ко­то­рый по­зво­ля­ет воспро­из­во­дить му­зы­ку и ви­део, имею­щие­ся у вас в ви­де фай­лов, или в ви­де по­то­ка из Ин­тернет. Об­раз мож­но ска­чать с www.raspbmc.com. Бо­лее под­роб­ная ин­фор­ма­ция по уста­нов­ке и на­строй­ке Raspbmc приводится на сле­дую­щих страницах. Ес­ли у вас на­стро­ен дви­жок MythTV, мо­же­те ис­поль­зо­вать XBMCPi для обес­пе­чения внешнего ин­тер­фей­са.

В за­ви­си­мо­сти от то­го, что вы намереваетесь воспро­из­ве­сти, вам, воз­мож­но, при­дет­ся при­об­ре­сти па­кет ко­де­ков для досту­па к за­щи­щен­ным па­тен­та­ми ал­го­рит­мам ви­део и ау­дио.ия воз­мож­но­сти об­ра­бот­ки дан­ных в необыч­ные мес­та, где в боль­шом де­фи­ци­те про­стран­ст­во и элек­тро­энер­гия. Их от­прав­ля­ли в космос и го­то­вят для пе­ре­се­чения океа­нов, но с тем же успе­хом они при­ме­ня­ют­ся в до­машних пи­во­вар­нях и для дис­тан­ци­он­но­го управ­ления ав­то­мо­би­ля­ми. Мы рас­смот­рим ряд ин­те­рес­ных про­ек­тов для Pi и техноло­гии пре­в­ращения Pi в уст­рой­ст­во ва­шей меч­ты. Бла­го­да­ря все­сто­рон­но­сти и глу­бине ин­ст­ру­мен­тов Linux, Pi легко пре­вра­тить во что угод­но, от на­столь­но­го ком­пь­ю­те­ра до муль­ти­ме­диа-цен­тра или кон­трол­ле­ра обо­ру­до­вания.

Arch Linux

Ес­ли Raspbian пы­тал­ся за­щи­тить поль­зо­ва­те­лей от внут­ренней на­строй­ки опе­ра­ци­он­ной сис­те­мы, то Arch Linux при­зван по­мочь поль­зо­ва­те­лям досконально разобраться, как функционирует опе­ра­ци­он­ная сис­те­ма.

Из­на­чаль­ный об­раз, доступ­ный на www.raspberrypi.org, вклю­ча­ет толь­ко ба­зо­вую сис­те­му, что­бы ваш Pi за­ра­бо­тал и со­единил­ся с се­тью. В него не вклю­че­ны мно­гие про­грам­мы, ко­то­рые мо­гут вам по­на­до­бить­ся для ра­бо­ты с сис­те­мой, на­при­мер, гра­фи­че­­ская сре­да. Необходимую вам ин­фор­ма­цию вы най­де­те на http://bit.ly/9APmgA.

Пре­вра­щение Arch из из­на­чаль­но­го со­стояния в ра­бо­чую сис­те­му по­тре­бу­ет неко­то­рых уси­лий, но в про­цес­се вы уз­нае­те, как взаи­мо­дей­ст­ву­ют внут­ренние со­став­ляю­щие ди­ст­ри­бу­ти­ва Linux.

Конеч­но, толь­ко вы са­ми мо­же­те ре­шить, сто­ит ли Arch та­ких тру­дов.

Android

Офи­ци­аль­ная вер­сия Android для Pi на­хо­дит­ся в раз­работ­ке (офи­ци­аль­ное в ней то, что она одоб­рена Raspberry Pi Foundation). Пре­дстав­ле­но ви­део его ра­бо­ты. Когда ­готовилась эта ста­тья, он не был досту­пен для ска­чи­вания, но на момент вашего чтения си­туа­ция мо­жет из­менить­ся. Все но­во­сти объявляются на www.raspberrypi.org.

Со­об­ще­ст­во ра­бо­та­ет над не­офи­ци­аль­ной вер­си­ей. Про­из­во­ди­тель­ность у нее ху­же, чем долж­на быть у офи­ци­аль­ной (раз­ра­бот­чи­ки ее опи­сы­ва­ют как «про­сто пригод­ную к ис­поль­зо­ванию»), зато она доступ­на уже сей­час.

Если это вас заинтересовало, за­гляните на сайт проекта – www.razdroid.net.

Raspbian

Для боль­шин­ст­ва поль­зователей Raspberry Pi Raspbian яв­ля­ет­ся гра­фи­че­­ским ли­цом Pi. Его мож­но най­ти и уста­но­вить на SD-кар­ту, сле­дуя ин­ст­рук­ци­ям с пре­ды­ду­щей страницы. Ус­та­но­вив и под­го­то­вив его к ра­бо­те, бы­ло бы непло­хо най­ти са­мые све­жие вер­сии всех про­грамм: вый­ди­те с ва­ше­го Pi в Ин­тернет, от­крой­те тер­ми­нал и за­пусти­те

sudo apt-get update

sudo apt-get upgrade

Со­вер­шен­но убой­ная функ­ция в Raspbian – про­грам­ма raspi-config. Она за­пустит­ся ав­то­ма­ти­че­­ски при пер­вой за­груз­ке, или ее мож­но за­пустить в лю­бое вре­мя, вве­дя в тер­ми­на­ле sudo raspi-config. В ней име­ет­ся несколь­ко функ­ций, но важней­шие из них та­ко­вы:

» expand_rootfs Из-за спо­со­ба уста­нов­ки Raspbian, тот соз­да­ет толь­ко фай­ло­вую сис­те­му раз­ме­ром 2 ГБ, и ес­ли ва­ша кар­та боль­ше по объ­е­му, все остав­шее­ся ме­сто бу­дет пусто­вать. Вы мо­же­те ис­поль­зо­вать эту оп­цию, что­бы рас­ши­рить фай­ло­вую сис­те­му и не дать мес­ту на кар­те про­пасть зря.

» memory_split Raspberry Pi ис­поль­зу­ет оди­на­ко­вый объ­ем па­мя­ти для основ­но­го про­цес­со­ра и для гра­фи­че­­ско­­го чи­па. С по­мо­щью дан­ной оп­ции вы мо­же­те из­менить этот по­ка­за­тель для ка­ж­до­го из них.

» overscan Эта оп­ция при­ме­ня­ет­ся на неко­то­рых дис­пле­ях, что­бы за­дей­ст­во­вать для ото­бра­жения гра­фи­ки все про­стран­ст­во эк­ра­на. Ее мож­но бла­го­по­луч­но иг­но­ри­ро­вать, ес­ли не возникнет ника­ких про­блем.

» overclock по­лу­чи­те до­полнитель­ные 50 % про­из­во­ди­тель­но­сти без вся­ких до­полнитель­ных за­трат! Бо­лее под­роб­но вы уз­нае­те об этом из врез­ки.

» boot_behaviour Эта оп­ция с несколько за­га­доч­ным на­званием да­ет воз­мож­ность вы­бо­ра – за­гру­зить ваш Pi в гра­фи­че­­ской или тек­сто­вой сре­де.

Ко­ли­че­­ст­во уста­нов­лен­ных про­грамм минималь­но. Это хо­ро­шая идея, но вы мо­же­те об­на­ру­жить, что здесь не хва­та­ет ин­ст­ру­мен­тов, к ко­то­рым вы привыкли в дру­гих ди­ст­ри­бу­ти­вах. К сча­стью, по­сколь­ку Raspbian со­единен с ре­по­зи­то­рия­ми Debian Armhf, у вас есть доступ к боль­ше­му ко­ли­че­­ст­ву про­грамм, чем человеку нужно. Мы­шелю­бы, видимо, за­хо­тя­т уста­но­вить гра­фи­че­­ский менед­жер па­ке­тов. Мы ре­ко­мен­ду­ем Synaptic. Что­бы уста­но­вить его, вве­ди­те в тер­ми­на­ле

sudo apt-get install synaptic

За­тем его мож­но от­крыть, пе­рей­дя в LXDE menu > Preferences >Synaptic Package Manager. По­сле это­го уста­нав­ли­вай­те лю­бые про­грам­мы, ка­кие за­хо­ти­те.

15 кру­тых уло­вок Raspberry Pi

1 Пре­вра­ти­те Pi в но­ут­бук: http://logeeka.ru/raspberry-pi/

2 Ис­поль­зуй­те в ка­че­ст­ве эк­ра­на Kindle: www.ponnuki.net/2012/09/kindleberry-pi

3 Пре­вра­ти­те Pi в су­пер­ком­пь­ю­тер (поч­ти): http://bit.ly/OGBGfD

4 Управ­ляй­те Arduino че­рез Сеть: http://bit.ly/Xyjsld

5 Соз­дай­те син­те­за­тор: www.raspberrypi.org/archives/1878

6 Бро­ди­те по но­чам: www.aonsquared.co.uk/the_dark_pi_rises

7 Управ­ляй­те на­строй­кой сол­неч­ных ба­та­рей: http://bit.ly/MHwCHF

8 Бе­се­дуй­те с ино­стран­цем: www.willpowell.co.uk/blog/?p=219

9 От­правь­те груз в (ближ­ний) кос­мос: www.daveakerman.com/?p=592

10 Кон­тро­ли­руй­те свой дом из Се­ти: http://bit.ly/WK1YCR

11 Ва­ри­те пи­во: http://bit.ly/PSfdzr

12 Учредите школьный класс в ко­ро­боч­ке: http://elinux.org/Rubus

13 Иг­рай­те в ста­рые иг­ры: http://petrockblog.wordpress.com/retropie

14 Учи­тесь соз­да­вать ОС: www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os

15 Соз­дай­те буд­ку мо­мен­таль­но­го фо­то: http://bit.ly/PvmWjF

Раз­гон про­цес­со­ра

Про­цес­сор в серд­це Raspberry Pi пред­на­зна­чен для ра­бо­ты на час­то­те 700 MГц, то есть со­вер­шения 700 000 000 опе­ра­ций в се­кун­ду. Ес­те­ст­вен­но, «пред­на­зна­чен для ра­бо­ты» не оз­на­ча­ет «обя­зан ра­бо­тать». Вы мо­же­те уве­ли­чить эту ско­рость.

Од­на­ко тогда уве­ли­чит­ся и энер­го­по­треб­ление, что, в свою оче­редь, уси­лит на­грев. Ес­ли Pi че­рес­чур пе­ре­гре­ет­ся, вы, ве­ро­ятнее все­го, по­лу­чи­те вме­сто ра­бо­че­го про­цес­со­ра ды­мя­щий­ся ку­со­чек кремния.

К сча­стью, све­жая вер­сия Raspbian (2012-9-18) вклю­ча­ет ин­ст­ру­мент, ко­то­рый по­мо­жет вам на­рас­тить ско­рость, за­од­но сле­дя за тем­пе­ра­ту­рой. По­сколь­ку это офи­ци­аль­ный ин­ст­ру­мент, его при­менение не на­ру­шит ва­шей га­ран­тии (в от­ли­чие от бо­лее ранних неофи­ци­аль­ных ме­то­дов).

Раз­гон ва­ше­го Pi оз­на­ча­ет все­го-на­все­го за­пуск sudo raspi-config и вы­бор Overclocking. Здесь есть несколь­ко оп­ций, из ко­то­рых пред­сто­ит сде­лать вы­бор, в за­ви­си­мо­сти от то­го, на что вы от­ва­жи­тесь. Ес­ли вы за­ме­ти­те, что ваш Pi стал неста­би­лен, пе­ре­за­гру­зи­тесь, на­жав и удер­жи­вая кла­ви­шу Shift, что­бы от­клю­чить раз­гон, а за­тем из­мените настройку, вы­б­рав дру­гую оп­цию в raspi-config. Мак­си­маль­ные па­ра­мет­ры да­дут вам до­полнитель­ные 50 % ско­ро­сти, что, по на­ше­му мнению, зна­чи­тель­но улуч­ша­ет ра­бо­ту, осо­бен­но ес­ли речь идет о ра­бо­те в се­ти.

Ес­ли вам нуж­но при­гля­ды­вать за тем­пе­ра­ту­рой, до­бавь­те вид­жет Temperature на панель LXDE.

Од­на­ко ваш Pi ав­то­ма­ти­че­­ски от­клю­чит раз­гон, ес­ли тем­пе­ра­ту­ра достигнет 85 °C.

RaspBMC

Вы мо­же­те уста­но­вить на Raspbian ме­диа-плей­ер, та­кой как VLC, и ис­поль­зо­вать его для про­смот­ра ви­део. Это от­лич­но ра­бо­та­ет, ес­ли вы ис­поль­зуе­те свой Pi как обыч­ный ком­пь­ю­тер и толь­ко пе­рио­ди­че­­ски на­де­ляе­те его муль­ти­ме­дий­ны­ми функ­ция­ми. Од­на­ко ма­лый раз­мер и бес­шум­ность ра­бо­ты уст­рой­ст­ва де­ла­ют его от­лич­ным вы­бо­ром для соз­дания соб­ст­вен­но­го раз­вле­ка­тель­но­го цен­тра.

Мож­но на­чать с Raspbian и на­стро­ить его в со­от­вет­ст­вии со свои­ми по­треб­но­стя­ми, и это – непло­хая мысль, ес­ли вы по­ду­мы­ваете о ка­ких-то необыч­ных функ­ци­ях. Од­на­ко мы здесь, в Linux Format, до­воль­но ленивы и пред­по­чи­та­ем стя­нуть пло­ды тяж­ких тру­дов дру­гих лю­дей, вме­сто то­го, что­бы над­ры­вать­ся са­мим. К сча­стью для нас (и для вас то­же), ко­ман­да ха­ке­ров уже вы­полнила са­мую труд­ную часть ра­бо­ты по соз­данию муль­ти­ме­диа-цен­тра для Raspberry Pi и под­го­то­ви­ла па­ке­ты.

Воз­зьми­те про­грам­му уста­нов­ки с http://bit.ly/PSFGIe или с дис­ка и ско­пи­руй­те ее на свой Pi (вам по­на­до­бит­ся ра­бо­чий Raspbian, от­ку­да мы и начнем). За­тем на­до про­сто за­пустить

sudo python install.py

что­бы ска­чать и на­стро­ить ди­ст­ри­бу­тив. Дан­ные на ва­шей SD-кар­те бу­дут унич­то­же­ны, так что сна­ча­ла сде­лай­те ре­зерв­ные ко­пии всех важ­ных фай­лов на дру­гом но­си­те­ле.

По окон­чании ра­бо­ты ин­стал­ля­то­ра пе­ре­за­гру­зи­те сис­те­му. Как толь­ко за­пустит­ся гра­фи­че­­ская сре­да, вы уви­ди­те разницу.

Здесь ис­поль­зу­ет­ся по­пу­ляр­ный муль­ти­ме­дий­ный ра­бо­чий стол XBMC, весь­ма непо­хо­жий на LXDE, с ко­то­рым вы, воз­мож­но, ра­бо­та­ли в Raspbian. Вы мо­же­те воспро­из­во­дить ме­диа, хра­ня­щие­ся локаль­но, или, че­рез до­полнения, воспро­из­во­дить по­то­ко­вый кон­тент из Ин­тернета.

Му­зы­ку и ви­део мож­но до­бав­лять к ва­шей на­строй­ке или с по­мо­щью уст­рой­ст­ва USB, или пря­мо на SD-кар­ту с по­мо­щью FTP (имя поль­зо­ва­те­ля – pi, па­роль – raspberry). См. ниже ин­фор­ма­цию по по­ис­ку IP-ад­ре­са.

Ве­ро­ят­но, един­ст­вен­ная на­строй­ка, ко­то­рую вам при­дет­ся сде­лать – это по­за­бо­тить­ся о том, что­бы звук на­прав­лял­ся в нуж­ное ме­сто. В System > System > Audio Output про­верь­те, что­бы Output был уста­нов­лен на Analog, ес­ли вы ис­поль­зуе­те гнез­до, или HDMI, ес­ли ис­поль­зуе­те этот ин­тер­фейс.

Все это хо­ро­шо, но управ­лять те­ле­ви­зо­ром мы­шью и кла­виа­ту­рой как-то не очень комфортно. Слав­ные парни из XBMC уч­ли это, и до­ба­ви­ли под­держ­ку дис­тан­ци­он­но­го пуль­та. Са­мый про­стой и удоб­ный спо­соб сде­лать это – ис­поль­зуя web-ин­тер­фейс RaspBMC. С его по­мо­щью лю­бое уст­рой­ст­во с web-брау­зе­ром, на­хо­дя­щее­ся в той же се­ти, что и Pi, мо­жет управ­лять воспро­из­ве­дением.

Эта функ­ция вклю­че­на по умол­чанию, и все, что от вас тре­бу­ет­ся – это вы­яснить IP-ад­рес Pi в System > System Info (нуж­но на­стро­ить его так, что­бы он был ста­ти­че­­ским IP на ва­шем мар­шру­ти­за­то­ре). За­тем на лю­бом дру­гом уст­рой­ст­ве, при­сое­динен­ном к се­ти, от­крой­те брау­зер и на­правь­те его на этот IP.

Те, кто идут в но­гу со вре­менем и ис­поль­зу­ют мо­биль­ное уст­рой­ст­во с Android или iOS, най­дут со­лид­ный вы­бор в раз­нообраз­ных ма­га­зи­нах при­ло­жений, и смо­гут сде­лать то же са­мое в ин­тер­фей­се по­при­ятнее, чем страницы HTML.

Мы об­на­ру­жи­ли, что Raspbian вы­тя­ги­ва­ет всю энер­гию из ис­точника пи­тания. Ес­ли вы до­ба­ви­те еще и пе­ри­фе­рий­ные уст­рой­ст­ва и об­на­ру­жи­те, что он стал неста­би­лен, при­чи­на мо­жет быть имен­но в этом. Луч­шим спо­со­бом ре­шения дан­ной про­бле­мы бу­дет под­сое­динение всех уст­ройств USB че­рез хаб с соб­ст­вен­ной под­пит­кой.

Пой­дем еще даль­ше

Мож­но пол­но­стью управ­лять ТВ с по­мо­щью Linux, на­при­мер, смот­реть пря­мые транс­ля­ции и за­пи­сы­вать пе­ре­да­чи – на­при­мер, при по­сред­ст­ве MythTV (ко­то­рый на­хо­дит­ся на www.mythtv.org). Вам по­на­до­бит­ся от­дель­ный ком­пь­ю­тер с со­от­вет­ст­вую­щи­ми ка­бель­ны­ми со­единения­ми, ко­то­рый ра­бо­тал бы в ка­че­­ст­ве сер­ве­ра.

Од­на­ко мы долж­ны пре­ду­пре­дить: MythTV из­вес­тен при­ве­ред­ли­во­стью сво­ей на­строй­ки. Из-за стрес­сов, по­лу­чен­ных во вре­мя этой про­це­ду­ры, у ре­дак­то­ра LXF Грэ­ма Мор­ри­со­на поя­вил­ся не один се­дой во­лос.

Вы мо­же­те воспро­из­во­дить ви­део­фай­лы, хра­ня­щие­ся на дру­гих ком­пь­ю­те­рах в ва­шей се­ти, на­при­мер, на се­те­вом уст­рой­ст­ве хранения (Network Attached Storage, NAS). Вы­бор спо­со­ба воспро­из­ве­дения за­ви­сит от ти­па вы­да­чи досту­па к этим фай­лам, но тот на­страи­ва­ет­ся кноп­ка­ми Add Sources. Бо­лее под­роб­ную ин­фор­ма­цию вы най­де­те в wiki на сай­те http://bit.ly/OOvXb6.

Кон­трол­лер ка­ме­ры

Соз­дай­те ре­зерв­ные ко­пии сво­их фо­то­гра­фий с по­мо­щью Pi.


Раз­мер Raspberry Pi по­зво­ля­ет управ­лять им дру­ги­ми встраи­вае­мы­ми уст­рой­ст­ва­ми. Это мо­жет по­ка­зать­ся пе­ре­бо­ром – ведь встраи­вае­мые уст­рой­ст­ва в той или иной фор­ме уже снаб­же­ны кон­трол­ле­ра­ми; но это оз­на­ча­ет, что мож­но рас­ши­рять их и соз­да­вать для них скрип­ты та­ки­ми спо­со­ба­ми, ко­то­рые про­сто невоз­мож­ны (или, по крайней ме­ре, очень труд­ны) без до­полнитель­ных уст­ройств. Прак­ти­че­­ски все, что под­клю­чается к обыч­но­му на­столь­но­му ком­пь­ю­те­ру, мож­но за­про­грам­ми­ро­вать на Pi, но мы здесь рас­смот­рим ка­ме­ры, на что есть несколь­ко при­чин. Во-пер­вых, боль­шин­ст­во их под­держи­вается в Linux, и во-вто­рых, есть ряд по­лез­ных про­ек­тов, ко­то­ры­ми вы смо­же­те за­нять­ся, ра­зо­брав­шись с осно­ва­ми.

Луч­ший ин­ст­ру­мент команд­ной стро­ки для ра­бо­ты с ка­ме­ра­ми в Linux – Gphoto2. Его мож­но уста­но­вить ко­ман­дой

apt-get install gphoto2

Пре­ж­де чем уг­лу­бить­ся в про­ект, рас­смот­рим, что уме­ет этот по­лез­ный ин­ст­ру­мент. Сре­да ра­бо­че­го сто­ла мо­жет по­пы­тать­ся под­мон­ти­ро­вать ка­ме­ру, из-за че­го у Gphoto2 бы­ва­ют про­бле­мы, так что са­мый про­стой спо­соб – за­пустить его без это­го. От­крой­те тер­ми­нал и за­пусти­те sudo rasbpi-conf, и в Boot Behaviour вы­бе­ри­те No, что­бы не за­пускать сис­те­му окон, и за­тем пе­ре­за­гру­зи­тесь. В на­шей тес­то­вой сис­теме мы об­на­ру­жи­ли, что та­ким об­ра­зом мож­но за­пустить все, что угод­но, обой­дясь энер­го­снаб­жением Pi, но ес­ли в то же вре­мя ис­поль­зо­вать мышь, при­дет­ся при­менить под­пи­ты­вае­мый хаб. Ес­те­ст­вен­но, это за­ви­сит от осо­бен­но­стей ва­ших пе­ри­фе­рий­ных уст­ройств и энер­го­снаб­жения.

В но­вой тек­сто­вой сре­де под­клю­чи­те ка­ме­ру и ско­ман­дуй­те

gphoto2 --auto-detect

Ко­ман­да по­пы­та­ет­ся най­ти все ка­ме­ры, при­сое­динен­ные к ва­ше­му Pi. Бу­дем на­де­ять­ся, она и ва­шу об­на­ру­жит. И хо­тя она под­дер­жи­ва­ет вну­ши­тель­ный спи­сок ка­мер, есть несколь­ко та­ких, ко­то­рые ра­бо­тать не бу­дут. Ес­ли ва­ша от­но­сит­ся как раз к чис­лу неудачников, то вам при­дет­ся вы­про­сить, сты­рить или за­нять ка­ме­ру у дру­га, пре­ж­де чем про­дол­жать про­цесс.

Не все под­дер­жи­вае­мые ка­ме­ры оди­на­ко­вы, и сле­дую­щим ша­гом бу­дет вы­яснение то­го, что уме­ет ка­ме­ра. Для вы­вода спи­ска имею­щих­ся дей­ст­вий за­пусти­те

gphoto2 --auto-detect –abilities

Не вда­ва­ясь в под­роб­но­сти, мож­но ска­зать, что есть два клас­са спо­соб­но­стей: съем­ка и за­груз­ка/ска­чи­вание. Пер­вая по­зво­ля­ет де­лать сним­ки с по­мо­щью скрип­тов и при­сут­ст­ву­ет в основ­ном на вы­со­ко­ка­че­­ст­вен­ных ка­ме­рах. Вто­рая по­зво­ля­ет ра­бо­тать с фо­то­гра­фия­ми, хра­ня­щи­ми­ся на кар­те па­мя­ти, и име­ет­ся в боль­шин­ст­ве под­дер­жи­вае­мых ка­мер. В дан­ном про­ек­те мы бу­дем ра­бо­тать толь­ко со вто­рым на­бо­ром спо­соб­но­стей.

Са­мая про­стая ко­ман­да, ко­то­рую мы мо­жем от­пра­вить в ка­ме­ру – по­лу­чить все фо­то­гра­фии, хра­ня­щие­ся в ней:

gphoto2 --auto-detect --get-all-files

Она за­пустит ска­чи­вание всех фо­то­гра­фий с ка­ме­ры в те­ку­щую ди­рек­то­рию. На обыч­ном ком­пь­ю­те­ре это нор­маль­но, но вам, воз­мож­но, не за­хо­чет­ся де­лать это­го на Pi, по­сколь­ку есть риск слиш­ком бы­ст­ро за­полнить па­мять. Вме­сто это­го мы ско­пи­ру­ем их на флэш­ку USB. Что­бы сде­лать это в ин­те­рак­тив­ной сес­сии, мо­же­те про­сто под­мон­ти­ро­вать флэш­ку ин­ст­ру­ментом GUI, за­тем за­пустить df -h, что­бы уви­деть, ку­да она под­мон­ти­ро­ва­на, и пе­рей­ти в эту ди­рек­то­рию. Од­на­ко, по­сколь­ку это бу­дет про­ис­хо­дить ав­то­ма­ти­че­­ски, нам на­до знать, где бу­дет на­хо­дить­ся уст­рой­ст­во. Это мож­но сде­лать несколь­ки­ми спо­со­ба­ми, но мы не бу­дем услож­нять. Мы под­мон­ти­ру­ем пер­вый раз­дел пер­во­го се­рий­но­го дис­ка, и бу­дем со­хра­нять фо­то­гра­фии ту­да.

Мы пред­по­ла­га­ем, что вы ра­бо­тае­те как поль­зо­ва­тель по умол­чанию – pi. Ес­ли нет, надо на­стро­ить скрипт. Во-пер­вых, нам нуж­на точ­ка мон­ти­ро­вания для дис­ка. Это про­сто пап­ка, и ее мож­но во­ткнуть ку­да угод­но – мы «на­ру­шим кон­вен­цию» и по­мес­тим ее в на­шу до­маш­нюю ди­рек­то­рию. По­это­му пе­ред вы­зо­вом скрип­та за­пусти­те

mkdir /home/pi/pic_mount

Те­перь мы го­то­вы при­сту­пить. Вот скрипт для мон­ти­ро­ва­ния дис­ка и ска­чи­ва­ния фо­то­гра­фий:

  1. !/bin/bash

if mount /dev/sda1 /home/pi/pic_mount ; then

echo “Раз­дел смот­ни­ро­ван”

cd /home/pi/pic_mount

yes ‘n’ | gphoto2 – auto-detect --get-all-files

umount /dev/sda1

else

echo “/dev/sda1 невозможно смон­ти­ро­вать”

fi

yes ‘n’ – это ко­ман­да, ко­то­рая про­сто вы­пуска­ет по­ток сим­во­лов n. Это оз­на­ча­ет, что ко­ман­да Gphoto2 пе­ре­пи­сать ранее за­гру­жен­ные фай­лы бу­дет от­клонена. Крайне важ­на umount, по­то­му что она обес­пе­чи­ва­ет долж­ную син­хрониза­цию дис­ка и воз­мож­ность его уда­ления.

Мы на­зва­ли скрипт get-pics.sh, и со­хранили его в до­машней ди­рек­то­рии Pi. Что­бы сде­лать его ис­пол­няе­мым, за­пусти­те

chmod +x /home/pi/get-pics.sh

Те­перь вы долж­ны су­меть за­пустить его вруч­ную. Вам при­дет­ся ис­поль­зо­вать sudo, по­то­му что скрипту нуж­но мон­ти­ро­вать диск.

По­следний ку­со­чек мо­заи­ки – за­ста­вить скрипт за­пускать­ся ав­то­ма­ти­че­­ски. Для это­го мы до­ба­ви­ли его в файл /etc/rc.local. Этот скрипт за­пуска­ет­ся при за­груз­ке и ис­пол­ня­ет­ся от имени root, так что на­счет раз­ре­шений пе­ре­жи­вать неза­чем. Про­сто от­крой­те файл в тек­сто­вом ре­дак­то­ре от имени root, на­при­мер, sudo nano /etc/rc.local, и до­бавь­те стро­ку

/home/pi/get-pics.sh

///end code///

пря­мо пе­ред стро­кой exit 0.

Вам оста­ет­ся толь­ко под­клю­чить свою ка­ме­ру (убе­ди­тесь, что она вклю­че­на) и уст­рой­ст­во USB, и ва­ши фо­то­гра­фии бу­дут ко­пи­ро­вать­ся при за­груз­ке.

Пой­дем еще даль­ше

Ес­ли вы хо­ти­те за­пустить уст­рой­ст­во без кла­виа­ту­ры и мы­ши, что вполне ожи­дае­мо, вы мо­же­те при­сое­динить све­то­дио­ды (LED) к кон­так­там GPIO, как это бы­ло по­ка­за­но в на­шей ста­тье, и ис­поль­зо­вать их для ото­бра­жения ста­ту­сов.

По­ми­мо со­хранения фо­то на уст­рой­ст­ве USB, мо­же­те за­гру­жать их на он­лайн-сер­ви­сы – на­при­мер, Flickr. В таб­ли­це по бес­про­вод­но­му под­клю­чению вы най­де­те ин­фор­ма­цию о том, как под­клю­чить ваш Pi к те­ле­фо­ну.

Вы мо­же­те вве­сти нечто вро­де вы­клю­ча­те­ля, что­бы со­об­щать Pi, ка­кие фо­то­гра­фии нуж­но за­гру­зить, а ка­кие со­хранить на USB-но­си­те­ле: на­при­мер, за­гру­жать изо­бра­жения с низ­ким раз­ре­шением и со­хра­нять изо­бра­жения с вы­со­ким раз­ре­шением. Или мож­но соз­дать вер­сии изо­бра­жений с низ­ким раз­ре­шением и за­гру­зить их.

Конеч­но, на этом мож­но и не оста­нав­ли­вать­ся. Ес­ли в ва­шем Pi име­ет­ся се­те­вой адап­тер, восполь­зуй­тесь им для за­пуска сер­ве­ра HTTP. С по­мо­щью скрип­тов PHP (или дру­го­го язы­ка) вы смо­же­те соз­дать ин­тер­фейс для Gphoto2, ко­то­рый по­зво­лит вам под­клю­чать­ся к сво­ему мо­биль­но­му те­ле­фо­ну.

Те­перь раз­вернем­ся в дру­гую сто­ро­ну: ес­ли ва­ша ка­ме­ра под­дер­жи­ва­ет оп­ции съем­ки, вы смо­же­те не толь­ко ко­пи­ро­вать сво­им Pi фо­то­гра­фии, но и де­лать их.

Ра­бо­та в се­ти

Raspberry Pi по­став­ля­ет­ся с про­вод­ным со­единением Ethernet, что пре­крас­но под­хо­дит в боль­шин­ст­ве слу­ча­ев, но иногда ка­бель про­сто не до­тя­ги­ва­ет­ся до нуж­но­го мес­та.

При желании вы мо­же­те ис­поль­зо­вать бес­про­вод­ной USB-бре­лок. Од­на­ко ес­ли у вас есть те­ле­фон Android и ваш но­си­тель не от­клю­чил эту функ­цию, при­мените его в ка­че­­ст­ве се­те­во­го уст­рой­ст­ва. У него имеется то пре­иму­ще­ст­во, что он по­треб­ля­ет мень­ше энер­гии, чем Pi, и по­это­му об­лег­ча­ет воз­мож­ность употребления для его пи­тания ба­та­ре­ек.

У вас долж­но по­лу­чить­ся под­клю­чить те­ле­фон и к Wi-Fi, и к 3G, что­бы не по­вли­ять на лимит дан­ных. Конеч­но, луч­ше все­го про­ве­рить тип под­клю­чения до на­ча­ла за­кач­ки боль­ших фай­лов. Для это­го под­клю­чи­те те­ле­фон к Pi, и от­клю­чи­те ре­жим мо­де­ма [tethering] в Settings > Wireless and Networks > Tethering and Portable Hotspots (на те­ле­фоне). В Pi, ес­ли вы вве­де­те sudo ifconfig, вы долж­ны уви­деть спи­сок ин­тер­фей­са usb0, но у него не бу­дет IP-ад­ре­са.

Се­те­вые ин­тер­фей­сы управ­ля­ют­ся фай­лом /etc/network/interfaces. По умол­чанию здесь нет пунк­та для се­те­во­го со­единения USB, и нам на­до его на­стро­ить. От­крой­те файл сво­им лю­би­мым тек­сто­вым ре­дак­то­ром че­рез sudo – на­при­мер, с по­мо­щью sudo nano /etc/network/interfaces – и до­бавь­те стро­ки

iface usb0 inet dhcp

nameserver 208.67.220.220

nameserver 208.67.222.222

Здесь мы ис­поль­зо­ва­ли сер­ве­ры имен OpenDNS, но вы мо­же­те при же­лании ис­поль­зо­вать дру­гие.

Те­перь мо­же­те пе­ре­за­гру­зить ин­тер­фейс или Pi, что­бы из­менения всту­пи­ли в си­лу, и у вас долж­но поя­вить­ся ра­бо­чее ин­тернет-со­единение.

Пе­ре­да­ча ин­фор­ма­ции

Ис­поль­зуй­те кон­так­ты GPIO, что­бы за­жечь не­сколь­ко све­то­дио­дов (LED).

Бла­го­да­ря ма­ло­му раз­ме­ру, Raspberry Pi идеа­лен для соз­дания соб­ст­вен­ных встраи­вае­мых уст­ройств. Так мож­но успеш­но соз­да­вать неболь­шие ком­пь­ю­тер­ные уст­рой­ст­ва для ре­шения спе­ци­фи­че­­ских про­блем, что мы про­де­мон­ст­ри­ро­ва­ли с кон­трол­ле­ром ка­ме­ры. Од­на­ко есть неболь­шая загвоздка: как уз­нать, что про­ис­хо­дит внут­ри ва­ше­го Pi, без эк­ра­на? К сча­стью, раз­ра­бот­чи­ки Pi по­ду­ма­ли об этом и до­ба­вили воз­мож­ность об­менивать­ся ин­фор­ма­ци­ей с Pi без мно­же­ст­ва обыч­ных пе­ри­фе­рий­ных уст­ройств для ПК. Это де­ла­ет­ся с по­мо­щью General Purpose Input and Output (GPIO) [Ввод и Вы­вод Об­ще­го На­зна­чения]. Воз­мож­но, вы недо­уме­ва­ли, за­чем нуж­ны эти ост­рые штырь­ки око­ло уст­рой­ст­ва счи­ты­вания SD-кар­ты – что ж, те­перь вы знае­те. Эта ба­зо­вая схе­ма мо­жет ис­поль­зо­вать­ся для ото­бра­жения ин­фор­ма­ции из лю­бо­го ис­точника, но здесь мы ис­поль­зу­ем ее, что­бы ре­шить про­бле­му, с ко­то­рой час­то стал­ки­ва­ем­ся в ре­дак­ции LXF: об­на­ру­жение конеч­но­го бай­та IP-ад­ре­са.

Это по­лез­но, ес­ли вам нуж­но уда­лен­но управ­лять досту­пом к сво­ему Pi, но нель­зя на­стро­ить его ста­ти­че­­ский IP-ад­рес, по­то­му что, на­при­мер, он пе­ре­ме­ща­ет­ся из од­ной се­ти в дру­гую. Обыч­но пер­вые три бай­та вы­чис­ли­мы по се­те­вой мас­ке, но по­следний мо­жет от вас усколь­зать, ес­ли у вас нет монито­ра.

Мы бу­дем ис­поль­зо­вать про­грам­му gpio, яв­ляю­щую­ся ча­стью WiringPi. Бо­лее под­роб­ную ин­фор­ма­цию о ней ищи­те на сай­те http://bit.ly/RP8UKJ.

Эта про­грам­ма име­ет­ся так­же на DVD. Она идет в ви­де ис­ход­но­го ко­да, так что нам нуж­но рас­па­ко­вать его и ском­пи­ли­ро­вать с по­мо­щью

tar xvf wiringPi.tgz

cd wiringPi/wiringPi

make

sudo make install

cd ../gpio

make

sudo make install

Так­же мы бу­дем ис­поль­зо­вать bc, по­это­му ус­та­но­ви­те его, ко­ман­дой

sudo apt-get install bc

Ну, довольно про­грамм – пе­рей­дем к же­ле­зу! Но сна­ча­ла пре­ду­пре­ж­да­ем: непра­виль­но со­единив про­во­да, вы сло­мае­те свой Pi, так что два­ж­ды все про­верь­те пе­ред тем, как вклю­чать пи­тание.

Схе­ма для это­го очень про­ста: нуж­но про­сто со­единить ка­ж­дый вы­вод с плю­со­вой нож­кой све­то­дио­да, по­том ми­ну­со­вую нож­ку све­то­дио­да (обыч­но бо­лее ко­рот­кую) – с ре­зи­сто­ром 1 KOм, и, на­конец, дру­гой кон­такт ре­зи­сто­ра – с об­щей зем­лей. Бо­лее под­роб­но это по­ка­за­но на рис. 1, 2 и 3.

Со­единив пол­но­стью на­стро­ен­ную пла­ту с Pi, при­сту­пим к ра­бо­те. Для на­ча­ла про­сто ис­поль­зу­ем конеч­ный кон­такт. Это кон­такт 7 (кон­так­ты рас­по­ло­же­ны не в по­ряд­ке но­ме­ров). От­крой­те тер­ми­нал и на­строй­те его на вы­вод ко­ман­дой

gpio –g mode 7 out

За­тем вклю­чай­те его с по­мо­щью

gpio --g write 7 1

а от­клю­чай­те –

gpio --g write 7 0

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

pins=”7 8 25 24 23 18 15 14”

for x in $pins

do

gpio -g mode $x out

gpio -g write $x 0

done

Вто­рая по­лу­ча­ет IP-ад­рес от ifconfig, пре­вра­ща­ет его в дво­ич­ный, за­тем при необ­хо­ди­мо­сти снаб­жа­ет ну­ля­ми в на­ча­ле.

ipaddress=`ifconfig eth0 | grep ‘inet ‘ | awk ‘{print $2}’ | cut -f4 -d’.’`

binary=`echo “ibase=10;obase=2;$ipaddress” | bc`

paddedBinary=`printf %08d $binary`

Сле­дую­щая часть по­сред­ст­вом cut вы­ре­зает нуж­ную нам часть из этой дво­ич­ной стро­ко­вой пе­ре­мен­ной и вы­во­дит ее на со­от­вет­ст­вую­щий кон­такт.

bit=1

for x in $pins

do

out=`echo $paddedBinary | cut -b$bit`

gpio -g write $x $out

bit=$((bit+1))

done

И, на­ко­нец, мы да­ем скрип­ту ко­ман­ду поспать в те­че­ние пя­ти ми­нут, а за­тем от­клю­ча­ем све­то­дио­ды.

sleep 5m

for x in $pins

do

gpio -g write $x 0

done

Вот и все! Ско­пи­руй­те showIP.sh с DVD, сде­лай­те его ис­пол­няе­мым с по­мо­щью

chmod a+x showIP.sh

и вве­ди­те sudo ./showIP.sh для ото­бра­жения сво­его IP-ад­ре­са. Что­бы все это де­ла­лось ав­то­ма­ти­че­­ски при за­груз­ке, до­бавь­те стро­ку

/home/pi/showIP.sh &

в rc.local. В раз­де­ле Кон­трол­лер Ка­ме­ры вы най­де­те бо­лее под­роб­ную ин­фор­ма­цию о том, как это сде­лать.

Мы по­ка­за­ли вам, как пе­ре­да­вать ин­фор­ма­цию че­рез GPIO, но его на­звание пред­по­ла­га­ет, что оно мо­жет так­же и принимать ин­фор­ма­цию.

При этом еще бо­лее важ­но не на­пра­вить слиш­ком силь­ный ток на кон­так­ты. Что­бы при­нять ин­фор­ма­цию, про­сто на­строй­те ре­жим на при­ем с по­мо­щью gpio --g mode <pin number> in, за­тем счи­тай­те по­ка­за­тель с по­мо­щью gpio --g read <pin number>.

Это обо­ру­до­вание мо­жет ото­бра­жать во­семь би­тов лю­бой ин­фор­ма­ции, и вы мо­жете не ог­раничи­вать­ся ото­бра­жением толь­ко IP-ад­ре­сов. На­при­мер, мож­но сде­лать мо­ди­фи­ци­ро­ван­ную вер­сию скрип­та кон­трол­ле­ра ка­ме­ры, ис­поль­зо­вав све­то­дио­ды для ото­бра­жения его со­стояния.

Бо­лее под­роб­ную ин­фор­ма­цию по всем кон­так­там GPIO вы най­де­те на http://bit.ly/JTlFE3. Кон­так­ты, ко­то­рые мы упот­ре­би­ли, оди­на­ко­вы в вер­си­ях 1 и 2 Raspberry Pi, но неко­то­рые кон­так­ты впоследствии из­менились. Ес­ли вы соз­дае­те соб­ст­вен­ную схе­му или ис­поль­зуе­те схе­мы, най­ден­ные в Се­ти, убе­ди­тесь, что кон­так­ты при­год­ны для ва­шей пла­ты.

Не ог­раничи­вай­тесь про­стым вклю­чением и вы­клю­чением кон­так­тов. Pi под­дер­жи­ва­ет несколь­ко спо­со­бов пе­ре­да­чи бо­лее со­лид­ных объ­е­мов дан­ных че­рез GPIO. Са­мые по­пу­ляр­ные – ши­на Serial Peripheral Interface (SPI) и Inter-Intergrated Circuit (I2C).

Есть ряд уст­ройств, ко­то­рые их ис­поль­зу­ют, и мас­са ин­фор­ма­ции, ко­то­рая по­мо­жет вам ра­зо­брать­ся. Итак, че­го же вы жде­те? Бе­ри­те па­яльник – и впе­ред, к соз­данию соб­ст­вен­ной ар­мии ро­бо­тов. |

За­кон Ома

Есть два основ­ных спо­со­ба из­ме­рить элек­три­че­­ст­во: на­пря­жение и си­ла то­ка. На­пря­жение (из­ме­ря­ет­ся в воль­тах) – это ко­ли­че­­ст­во энер­гии, ко­то­рым рас­по­ла­га­ет оп­ре­де­лен­ное чис­ло элек­тро­нов, а си­ла то­ка (из­ме­ря­ет­ся в ам­пе­рах) – это ко­ли­че­­ст­во элек­тро­нов, про­хо­дя­щих че­рез оп­ре­де­лен­ную точ­ку.

И оба этих па­ра­мет­ра свя­за­ны ме­ж­ду со­бой за­ко­ном Ома, ко­то­рый гла­сит: На­пря­жение=Си­ла то­ка*Со­про­тив­ление, или U=IR. Вам следует учитывать эту взаи­мо­связь, что­бы слу­чай­но не спа­лить свой Pi, про­пустив че­рез него слиш­ком силь­ный ток.

На­строй­ка Pi пред­став­ля­ет со­бой неко­то­рую слож­ность. Для же­лаю­щих как сле­ду­ет ра­зо­брать­ся с ней Герт ван Лоо [Gert van Loo], один из раз­ра­бот­чи­ков, со­ста­вил объ­яснение, ко­то­рое мож­но най­ти здесь: http://bit.ly/Qp4PMl.

Ес­ли рас­смат­ри­вать все это с прак­ти­че­­ской точ­ки зрения, вы мо­же­те рас­счи­ты­вать на на­пря­жение на вы­ход­ном кон­так­те GPIO ве­ли­чи­ной 3,3 В, и вам нель­зя пре­вы­шать си­лу то­ка 16 мA или по­да­вать боль­шую ве­ли­чи­ну на вход­ной кон­такт.

Это мак­си­маль­ная ве­ли­чи­на си­лы то­ка; ста­рай­тесь ис­поль­зо­вать ток мень­шей си­лы. Итак, по­сколь­ку нам из­вест­но, что по за­ко­ну Ома U=IR, то R=U/I. Ес­ли мы по­лу­ча­ем дан­ные с Pi и хо­тим быть уве­рен­ны­ми в их со­хран­но­сти, мы зна­ем, что R долж­но быть боль­ше, чем 3,3/0,016, что со­став­ля­ет 206,25 Oм.

Помните, что это – са­мая ма­лая ве­ли­чи­на со­про­тив­ления, ко­то­рую мож­но безо­пас­но ис­поль­зо­вать с вы­хо­дом GPIO. Вам на­до стре­мить­ся к обес­пе­чению уров­ня безо­пас­но­сти в несколь­ко раз вы­ше это­го, ес­ли толь­ко не возникнет крайней необ­хо­ди­мо­сти. В на­ших схе­мах мы ис­поль­зо­ва­ли ки­ло­омы, что обес­пе­чи­ло нам фак­тор безо­пас­но­сти поч­ти 5.

Gertboard и Arduino

Под­клю­чение на­пря­мую к кон­так­там GPIO ва­ше­го Pi мо­жет пре­доста­вить вам ба­зо­вый кон­троль вво­да-вы­во­да, но оно не ли­ше­но ог­раничений. Есть два до­полнитель­ных ком­понен­та, ко­то­рые по­мо­гут вам бо­лее точ­но взаи­мо­дей­ст­во­вать с ми­ром во­круг вас.

Доста­точ­но пол­ный ком­плект рас­ши­рений для свя­зы­вания Pi с ре­аль­ным ми­ром – Gertboard, вклю­чаю­щий мик­ро­кон­трол­лер, а так­же ряд оп­ций вво­да-вы­во­да. Он по­став­ля­ет­ся в ра­зо­бран­ном ви­де, и вам при­дет­ся по­ра­бо­тать па­яльником, что­бы его со­брать.

А вот Arduino – это мик­ро­кон­трол­лер, под­клю­чае­мый к Pi (или лю­бо­му дру­го­му ком­пь­ю­те­ру) че­рез порт USB. Как пра­ви­ло, он по­став­ля­ет­ся го­то­вым, но доступ­ны так­же и ком­плек­ты час­тей. В сы­ром ви­де он име­ет мень­ше функ­ций, чем Gertboard (ко­то­рый вклю­ча­ет мик­ро­кон­трол­лер Arduino), однако мо­жет быть рас­ши­рен ог­ром­ным диа­па­зо­ном щит­ков.

Персональные инструменты
купить
подписаться
Яндекс.Метрика