接続 - みる会図書館


検索対象: ラズパイマガジン = Raspberry Pi Magazine 2017年10月号
115件見つかりました。

1. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

AQM from AQM import - y 1 i2cdetect $ sudo e f a b c d 8 9 5 6 7 4 0 1 2 3 1 cd = AQM ( 1 ) 1 cd . c u r s 0 r ( 0 , 0 ) 1 cd . puts ( "He1 1 0 , " ) 1 c d . c u r s 0 r ( 1 , 0 ) 1 cd . p ut s ( " P I N E A64 " ) 図 16 lcd. py 00 : 10 : 2 0 : 30 : ロ 図 15 LCD の卩 C アドレスを調べる 3e 0 筆者は SDA と SCL に 10kQ の抵 また、 PINE A64 でも GPIO. set 抗を外付けしました。 AQM0802A up() を使って内部プルアップの設定 基板裏の 2 カ所のジャンパーをショ が可能なので、抵抗を外付けする必 ートさせて、 AQM0802A 基板上の 要はありません。 プルアップ抵抗で代用しても構いま 卩 C を使ってみよう せん。 続いて 12C を使ってみることにし まず、 i2c-tools をインストールし て接続が正常に行われたか調べるこ ましよう。 PINE A64 では 3 番ピン (SDA) と 5 番ピン (SCL) に 12c チ とにしましよう。次のように python- smbus ともにインストールしておき ャンネル 1 が割り当てられています。 ます。 RaspberryPi とは異なり、起動時 . / 1 cd . py ロ に GPIO ではなく 12C として初期化 LCD 上に「 HeIIo,PINE A64 」と されているので特別な設定なしに使 表示されるでしよう ( 図 17 ) 。この えます。 ように 12C に関しては Raspberry Pi Raspberry Pi との最大の違いは、 i2cdetect を実行して、 12C アドレ と同様、あるいはプルアップ抵抗が SDA と SCL がオンボードでプルア ない分だけ自由に使えるので、 PINE ス 0x3E に AQM0802A が接続され ップされていない点です。 Raspber A64 をさまざまな電子工作に応用で ているか調べてみましよう。実行に ry Pi では 1.8kQ の抵抗でプルアッ きるはずです。 は root 権限が必要です。 プされているため外付けプルアップ 接続が正常なら、図 1 5 のよう 抵抗が不要ですが、 PINE A64 では に 0x3E が見えるはずです。 12C デ S 曰は使えない 必須です。 残る Raspberry Pi 互換のインタ バイスが正常に認識されていれば、 抵抗を用意するのが面倒である フェースは SPI バスですが、残念な python-smbus ライプラリを使って 一方、 Raspberry Pi の 1.8k Q では Raspberry Pi と同じように 12C デバ がら現時点では使えません。 SPI の プルアップ抵抗が小さすぎてトラブ カーネルドライバが用意されていな イスを制御できます。 ルを起こすようなデバイスでも外付 実際に筆者が Raspberry Pi 向 いためです。 Allwinner 製 SoC では、 けのプルアップ抵抗値を加減すれば SPI に難があるのが共通の課題にな けに作成した、 AQM0802 用のラ 問題なく使えるのが利点です。その っているようです。 イプラリを使うことにしましよう。 代表が秋月電子通商で売られてい る安価な小型 12c 接続 LCD 「 AQMO AQM. py を読者限定サイトから入 ただ、 PINE A64 では longsleep と いうメンテナーカゞカーネルのメンテ 手してカレントディレクトリーに置 802A 」でしよう。 ナンスにあたっているようなので、 いてください。 というわけで、 PINEA64 で AQ いずれ SPI も使えるようになるかも その状態で図 16 の lcd. py を用意 M0802A を使ってみましよう。 AQ しれません。アップデートに期待し します。実行には root 権限が必要で M0802A を PINE A64 に接続します す。次のように実行しましよう。 ましよう。 ( 回路図は読者限定サイトに用意 ) 。 ろ と し 試 を 示 表 の H をい 0 , ! 自ら 4 会 $ sud0 python $ sud0 apt install i2c-t001s py t h 0 n ー s m b u s ラスパイマカジン 2017.10 64

2. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

電子み、一 ツ 25 種必すくつなぎ 16 カラーセンサー xl 個 特集 1 利用部品 ) カラセンサー 光の色を調べる カラーセンサーは、光がどのよ 線を使ってデータをやり取りできる 際、作成したインスタンス名と、 12c うな色かを調べられるセンサーです 通信規格です。 SDA と SCL に複数 デバイスが持つ「レジスタ」のアド ( 図 1 ) 。光は赤、緑、青の三原色、 のパーツを数珠つなぎに接続でき、 レスを指定します。 「 12c アドレス」を使って通信相手 さらに製品によっては赤外線にも分 このセンサーでは、一つの計測デ けて数値化されます。この数値から を特定します。 S11059 の 12C アドレ ータが二つのレジスタに分かれて保 0 赤が強いか、緑が強いかなどを調べ スは固定で、 0x2A になっています。 存されています。そのため、二つの 0 12C については p. 37 でさらに詳しく られます。例えば、日の光をセンサ レジスタの値を読み取り、つなぎ合 ーで計測することで、昼に比べてタ 解説しています。 わせる処理をしましよう。この処理 方は赤が強くなるので、タ焼けであ 図 2 のように接続します。 Raspbe は赤、緑、青、赤外線すべてにおい 0 るかなどが分かります。赤外線も計 rry Pi の 3 番端子が SDA 、 5 番端子 て必要です。 測できれば、目では見えない熱くな が SCL で、それぞれを S11059 の対 このような同じような処理をする っている場所を光から知ることがで 応する端子に接続します。また、電 場合は「関数」にしておくと便利 きます。 源と GND も接続しておきます。 です ( 図 3 ) 。「 def 関数名 0 : 」とす ◆・ 「 S11059 」は赤外線にも対応した プログラムは読者限定サイトに用 ◆ - ることでその後に記述した処理が関 カラーセンサーで、計測した結果を 意しました。実行すると、赤、緑、 ◆ 数としてまとまります。これで同じ 「 12c 」を使って送信します。 12c は、 青、赤外線に分かれてそれぞれの強 ◆・ 処理を何度も記述せずに、関数を呼 データを送受信する「 SDA 」と機器 さが数値で表示されます。 ◆ び出すだけで済みます。 、、では re 12c で通信するには、「 pi. 12C() 」 間を同期する「 SCL 」の 2 本の通信 ◆ ad ー sens 。 r() という関数を作ってい で初期化をします。次に「 i2c. set ます。 センサー 部分 up() 」で通信対象となる 12c デバイス 光を照射 関数で処理した結果は「 return() 」 赤 の「インスタンス」を作成します。 で引き渡せます。逆に関数を呼び出 緑 この際、デバイスの 12C アドレスを ◆、 す際には、括弧の中の値を関数に渡 ◆、 指定します。この後、インスタンス して処理できます。例えば、赤の計 赤外線 ◆ 4 ( ここでは S11059 ) を使って通信が 測値を取得する「 r = read_senosr( 電源 GND ◆、 ( 3.3V ) できます。 0X03 ) 」では数に 0X03 ()x は 16 進 赤、緑、青、赤 SCL 卩 c の同期用外線の成分の強 SDA 12C でデバイスからデータを読み 数の意味 ) を引き渡して処理をしま 卩 C のデー 信号の通信さを数値として タの送受信に利用する出力できる 取るには i2c. readReg() 、書き込むに す。処理した結果は「 r 」に代入さ に利用する は i2c. writeReg8() を使います。この れます。 図 1 光の各色の強さを計測できる「カラ ーセンサー」 → 6531 → 5931 →・ 4177 → 3840 よく使う処理を関数として まとめておく read_sensor() は指定したアドレスのデー タをセンサーから取得する センサーから計測値を取得する 取得したデータをつなぎ合わせる データを戻す よく利用する機能を関数化しておく ( 「 colo 「一 sonso 「 . py 」から一部抜粋 ) 図 3 十 0 ノ L.n 一う ) 0 0 1 ↓ー宀 1 ー 1 よ 1 ぐ 0 十 8 8 Q) O O っこワ」 = 6 5 図 2 接続図 ラスパイマカシン 201 0

3. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

# i n c 1 u d e く s t d i 0 . h > # i n c 1 u d e く s t d 1 i b . h > #include く u n i s t d . h > #include 'gpio—setup . h" i n t ma i n ( VO i d ) setup—io(); I N P_G P 1 0 ( 1 7 ) : 0UT_GP10(17); u s 1 e e p ( 10 ) : wh i 1 e ( 1 ) { GPIO_SET = s 1 eep ( 1 ) : G P 1 0 C L R = s 1 eep ( 1 ) ; r e t u r n 0 : 図 9 LED を点滅させる [ledtest. c 」 ットアップ関数を実行します。その GPIO への出力には GPIO_SET と これで ledtest という実行ファイ GPIO ー CLR という二つのマクロを 内容はシンプルで、定数「 GPIO ルが得られます。この実行ファイル BASE 」に定義した GPIO 制御レジ 用います。どちらも 32 ビットのレ は mmap システムコールを用いて スタのアドレスプロック ()K バイ ジスタに値を書き込むだけのマクロ root 権限が必要な /dev/mem を参 で、 GPIO 番号がビットに対応して ト ) を、 mmap システムコールを使 照するため、 sudo を使って root 権 って gpio という変数にセットしてい います。例えば GP1017 に 1 を出力 限で実行する必要があります。 するなら次のように記述します。 るだけです。 併せて GPIO 制御レジスタを介し $ sudO . /ledtest ロ て GPIO を設定するためのマクロを 定義していて、そのマクロを使って これで LED が点滅するはずです。 17 ビット目に 1 を書き込むと、 GP GPIO を操作できます。 IO 17 に 1 が出力されます。 LCD を制御する G 曰 0 のモード設定と出力 GPIO の出力を 0 にするには、 GP それでは LED に続いて LCD を制 GPIO を使用する前に、 GPIO を IO ー SET で 0 を書き込むのではなく、 御します。 SC1602 は実際に文字な 入力モードで使うか出力モードで GPIO ー CLR でレジスタに 1 を書き込 どを表示する前に、いくっかのステ 使うかを設定する必要があります。 みます。 ップで内部コントローラーを初期化 BCM2837 で注意しなければならな する必要があります。 いのは、必ず 1 度だけ入力モードに 本稿の例では、 DB4—DB7 まで 設定し、その後に出力モードに設定 しか使わない 4 ビット接続を使用し する必要があることです。例えば、 GPIO CLR で 17 ビット目に 1 を ているため、最初に 4 ビット接続モ LED を接続した GPIO 17 を出力モ 書き込むと、 GPIO 17 が 0 になりま ードに LCD 側を設定しなければな ードに設定する場合、次のようにマ す。 りません。 クロを記述します。 以上が分かれば、 C 言語を使って 詳細は LCD に付属するマニュア GPIO に簡単に書き込みができます。 ルに詳しく書かれていますが、やや LED を接続した GPIO 17 番を 1 秒お 分かりにくいためマニュアルを本稿 I N P_G P 10 ( 17 ) : 0 U T_G P 1 0 ( 17 ) : きに点滅させるサンプルを図 9 に示 で補足しつつ初期設定の手順を説 るる すす る トれをを プ ット入 ッ セッを ア 0 0 力にイ ッ 入力工 セ ん出ウ の たてな つめ当 い改適 しました。 Raspberry Pi に SSH で接続して 工デイタを開き、 gpio_setup. h と le dtest. c を同じディレクトリーに作成 してください。 Raspbian には標準で C コンパイラが入っているので、一 つのソースファイルをそのままコン パイルして実行できます。 1 くく 17 ; 1 くく 17 : $ gcc ledtest . c - 0 ledtest ロ G P 1 0 S ET = 1 くく 1 7 : 1 くく 17 : G P I O_C L R ラスパイマカジン 2017.10 特別付録

4. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

" ラズバイ風 " ド画を大検 特集 2 は必要ありません。 AQM0802A を使ってみる 12c のテストとして、秋月電子通 商の 12C 接続小型 LCD モジュール 「 AQM0802A 」 ( 通販コード : M -09 109 ) を使うことにします。 AQM08 02A は Raspberry Pi で使用できな 0 いことが知られていますが * 3 、 Tin ker Board では何とか動作します。 まず、 Tinker Board と AQM080 2A を図 1 2 のように接続してくださ い。基本的に接続法は Raspberry Pi に 12C デバイスをつなぐときと全く 同じで、プルアップ抵抗も不要なの で単純です ( 図 13 ) 。 Tinker Board 上で AQM0802A が 訒識されているか、「 i2c - t001S 」を使 ロ心、卩 って調べます。次のようにインスト ールします。 $ s u d 0 a pt i n s t a ⅱ i 2 c - t 0 01 s ロ 、 Tinker 図 13 Tinker Boa 「 d と AQM0802A を接続した様子 $ sudO i2cdetect -y 1 0 1 2 3 4 5 6 7 8 9 a b c d e f 00 : 2 0 : 3 0 : 40 : ( 略 ) 12C チャンネル 1 のデバイスを検 図 14 C チャンネル 1 のデバイスを検索 索してみます。図 14 のようにアド レス「 0x3E 」が見えていれば、 AQ と同じディレクトリーに、図 15 の M0802A が認識されています。 LCD 表示のソースコード「 printlcd. py 」を作成します。 文字を表示してみる 作成した printlcd. py を次のよう 筆者が Raspbery Pi 用に作成した に実行します。 AQM0802A 用のライプラリを使っ て、 LCD に文字を表示してみます。 $ sudO . /printlcd . py ます、 python から 12c を制御する 「 Python SMBus ライプラリ」をイ ンストールしてください。 #!/usr/bin/env python from AQM import AQM 1 c d = AQ M ( ) 1 cd . c u r s 0 r ( 0 , 0 ) lcd . puts("Tinker") 1 cd . cu r s 0 r ( 1 , 0 ) lcd . puts("board") ソースコード「 printlcd. py 」 図 15 LCD に「 Tinker board 」と表示 ートが厚いので将来にも期待できま されます。このように 12C は Raspb す。予算に余裕があれば、検討に値 erry Pi と同じように利用できます。 する製品といえるでしよう。 SPI の使い方も Raspberry Pi と同 $ sud0 apt install python-smbus python3-smbus ロ じです。 Tinker Board は ASUS 社 が積極的にサポートしているので、 その上で、読者限定サイトから I/O に関しては Raspberry Pi と遜色 「 AQM. py 」をダウンロードしてく ないレベルで利用できると考えてい いでしよう。また、メーカーのサポ ださい。ダウンロードした AQM. py * 3 最近 Raspberry Pi に対応したバージョ ン ( 通販コード : M -11753 、 850 円 ) も発売 されましたが、筆者が利用しているオリジナル 版 ( M -09109 、 700 円 ) より少し割高です。 Raspberry Pi 対応版も Tinker Board で使え るはずです。 ラスパマガジン 2011.10

5. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

マ三ト陟第イを豆 ~ ) 、物クタト第 90 に文デ表耐 レジスタ選択 40ns 以上 表 4 G 日 0 の接続方法 SCI 602 側 Raspberry Pi 側 G 円 0 11 G 0 22 G 0 7 G 日 0 8 G 円 0 9 G 日 0 10 RS D B4 DB5 DB6 D B7 イネーブルサイクル 500nS 以上 レジスタセレクト (RS) イネーブル信号 (E) は「 BCM2837 」という ARM コア を用いた SoC です。 ARM 系のほば すべての SoC は、 GPIO など内蔵イ ンタフェースのレジスタをメモリー アドレスにマッピングしています。 GPIO の制御は、 GPIO を制御する内 部レジスタが割り当てられているメ モリーアドレスに対して、制御する ための値をリードライトするという 形を取ります。 Linux では、 mmap システムコー ルを用いて物理メモリーアドレスの 操作が可能で、デバイスドライバを 用いなくてもユーザープログラム上 で GPIO の制御が可能になります。 そのサンプルコードが elinux.org (http://elinux.org/RPi Low-IeveI peripherals) で公開されています。 その gpio-setup() という関数を利用 するのが楽です。ただし、この関数 は初期の Rasberry Pi に最適化され たものです。最新の Raspberry Pi 3 に適応させるには、「 gpio_setup. h 」 というへッダファイルの一部を変更 する必要があります。 写真 7 GP ℃と SC1602 の端子を接続する 具体的には、 Pi 1 が採用していた た GPIO の方が扱いが楽です。筆者 ません。特殊ファイルでは 4 本のデ BCM2708 の内部ペリフェラルべー ータバスの出力を同時に変えること は表 4 のように接続しました。 スアドレス「 #define BCM2708_PE もできませんし、細かなタイミング制 RI_BASE 」の指定を、デフォルトの 「 0X20000000 」から「 0X3f000000 」に 御も難しくなります。そこで、 C 言語 C 言語から G 曰 0 を制御 から GPIO を制御することにします。 LCD を制御するためには、デー 変更します。サンプルコードを読者 実際に LCD を制御する前に、 C 言 限定サイトに公開しました。ダウン タバスと 2 本の信号線という複数の 語から GPIO をどのように扱うか説 ロードして参考にしてください。 GPIO を制御する必要があり、先に例 GPIO を使うにはます、 gpio_set 明します。 示したシェルスクリプトと特殊ファ イルを使った制御はあまり向いてい Raspberry Pi 3 が採用しているの up. h に記述した setup-io() というセ データバス (DB0-DB7) データホールド 100ns 以上 図 7 SCI 602 の書き込みタイミング Raspberry Pi 側コネクタ G 日 0 5V Power GND LCD 側コネクタ VSS VDD RS DB5 VR 10k G 022 G 08 G 曰 07 G 曰 09 GPIOI 1 DB4 DB6 GP ℃ 10 D B7 図 8 SC1602 と Raspberry Pi を接続する配線図 ラスパイマガジン 2017.10 特別付録

6. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

Part 2 Raspbe 「 ry 1 2 C Remote GPIO 1—Wire Serial SPI SSH Camera しッ .1 ー . ー亠プ、ル . ン′了コつ 500 円台の有機 EL ディスプレイを使う 4 7 8 P3 VNC 図 3 ーザ Raspberry Pi Software Configuration T001 (raspi—conftg) Ensures that a11 Of the SD card s Change passwo 「 d fO 「 the default u Configure options fO 「 start—up Set up language and regional sett Configure overclocking fo 「 your P Configure advanced settings lnformation about this configurat Conf 1 し「 e COnr,t?CtiOnS tO De 「 く Finish> く Select> I n t e rf 3 c 1 n Opt i on 5 About raspi—config Advanced Options 6 Overclock Localisation Options 3 Boot Options 2 Change User Password Expand Filesystem PI Software Pl P2 P4 P6 P7 P8 」 5 Conf lguration T001 Enable/Disable Enable/Disable Enab1e/Disab1e Enable/Disable Enable/D1sable こし toma て 1 こ loading remote access tO G one—wire interface EnabIe/Disable shell and kernel m automatic loading Enab1e/Disab1e g 「 aphical remote a remote command 1in Enab1e/Disab1e connection to the ( 「 aspi-config) く Select> く Back> raspi-config で lnterfacing Options を選ぶ WouId you like the ARM 12C interface to be enabled? C を有効にするために「 aspi - config を起動しているところ。 図 4 lnterfacing Options から卩 C を選択 raspi-config コマンドではなく直接 /boot/config. txt を編集してもよい。 The ARM 12C interface is enabled 、 : Y e 5 : 図 5 卩 C 有効化の確認 く NO > 確認の上、 OK を選択することで C が有効になる。 dtparam=i2c arm=on と変更しても構いません。設定を変 更したらラズバイを一度再起動し て設定を反映させます。 うまく反映されると、 /dev/i2c-1 デバイスとして 12C バスを制御する ことができます。 ls コマンドで - 1 / d e v / i 2 c - 1 ロ します。う まく M096P 4W が接続・ 検出されて いると、図 7 のように 3c と表示され ます。 Raspbian 図 6 卩 C が有効に $ i2cdetect -y 1 0 1 2 3 00 : 20 : 30 : 40 : 50 : 60 : 7 0 : この後、再起動することで 12C が使えるようになる。 4 5 6 図 7 i2cdetect コマンドで接続を確認 きちんと M 096P4W が接続されていると 3c と表示される。 b しかし、別のユーザーを作成した 7 8 9 a c d e f C rw - r W - 1 r 0 0 t i 2 c 89 , 1 2 月 1 0 0 : 0 0 / d e v / i 2 c - 1 と表示されることを確認します。 接続されている 12C デバイスを検出 したら、 i2cdetect コマンドを使って 12C バスが制御可能なことを確認 M096P4W を接続を確認する では 12C バスのデバイスファイル / dev/i2c-* について、 i2c グループが 読み書きできるパーミッションで作 成されます。初期状態で作成されて いる pi ユーザーは i2c グループに所 属しているので管理者としてコマン ドを実行しなくても i2cdetect など のコマンドを実行することができま す。 場合には $ S u d 0 u S e r m 0 d ー名口 - a i 2 C - ユ として、対象のユーザーを i2c と呼 ぶグループに追加しておく必要があ ラスパイマカジン 2011.10 ります。 123

7. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

日日日日日日日日日日日日Ⅱ日ⅱⅢⅱⅱ日日ⅡⅢⅢ日日Ⅲ日日ⅢいⅱⅢⅱⅡⅢⅡⅢⅢⅢⅢⅢⅢⅢ日ⅢⅡⅱⅢⅢⅢⅢ日ⅢⅢ日ⅢⅢⅢⅡ日日ⅢⅢ日日日日日日日い日日目日日日ⅢⅱⅱⅱⅱⅱⅱⅢⅢ日ⅱⅱⅢⅡⅢ日ⅡⅢⅢⅢⅢⅢ日ⅢⅢⅡⅡⅡⅢ ツ 1 ウ工第 ラズ應イで - やカラを瀰する ーⅢⅡⅢ日日日日日日Ⅲ日日ⅢⅢⅡⅡⅢⅢ ll 目日ⅢⅢ日日Ⅱⅱ日ⅢⅢⅢ日日日ⅢⅱⅱⅢⅢⅢⅢⅢⅢⅢ日ⅢⅢⅢ日日Ⅲ日日ⅱいⅢⅱⅱⅱⅱⅢⅢⅢⅱⅢⅱ日ⅱⅱⅢⅢ日ⅱⅢ日い日日Ⅲ日Ⅲ日Ⅲ日ⅡⅢ日Ⅱ こからは先頭車に搭載したラズ パイ Zero でカメラを動かすサーポ モーターや、カメラそのものを制御 に挑戦します。 ラズバイ Zero には Wi - Fi モジュー ルを搭載し、ストリーミングソフト ウェアを入れておきます。サーボモ ーターの制御には GPIO のライプラ リを使用し、カメラ映像は HTTP の 制御により、 Web プラウザーで映像 を楽しみつつ、カメラの向きを操作 できるようにします ( 図 1 ) 。以下、 必要なファイルは p. 146 に示す読者 限定サイトに用意しています。 ラズバイ Z 0 を ミ準備する ラズバイ Zero は Raspbian をその まま使えます。今回は 2017 年 7 月 5 日バージョンの「 Raspbian Jessie 」 または 8 月 16 日版の「 Raspbian St retch 」を使います ( インストール方 Wi - Fi モジュールの動作を確認 ウェアの導入 ストリーミングソフト 法は p. 132 参照 ) 。ダウンロードし て、 SD カードにイメージを焼いた ら、ラズバイ Zero にセットし、電 源を入れます ( 図 2 ) 。 起動が完了したら、マウスとキー ポードを接続して、 IU233 が接続さ れているかを以下のコマンドで確認 します。 結果に「 Ricoh Co. , Ltd 」と出て いれば、 IU233 は認識されています。 IU233N USB-EVB はリコーの半導 体を使っているようです。 Wi - Fi モジュールのセットアップ Wi-Fi モジュールを Zer04U に装 着したら、 Wi-Fi モジュールがラズ パイ Zero から見えるかを以下のコ マンドで確認します。 $ lssub ー grep BUFFALO ロ $ lssub ー grep RiCOh ロ 映像と列車の動力制御 HTTP の制御によるカメラ 2 図 1 G 曰 0 ライブラリによる サーポモーターの制御 ラズバイで行う主な作業 結果表示の中に「 BUFFALO INC. WLI-UC-GNM Wireless LAN Adapter 」が見つかれば、きちんと 装着されています。次にネットワー クを使えるようにするために、ラズ パイ OS が Jessie の場合は /etc/net work/interfaces を修正します ( 図 3 ) 。新版の Stretch の場合は図 3 の 作業は不要です。 次に Wi - Fi ルーターに接続するた めの設定をします。ます、 Wi-Fi が 見えるか確認をします。 SSID には 接続したい Wi - Fi を指定します。 $ sudO iwlist w1anO scan ー gre p く SS I D> ロ 図 2 ラズバイの起動を確認 認する。 ディスプレイにつないで画面が表示されるのを確 88 ラスパイマガジン 2017.10

8. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

We に 0 肥℃ Raspbe 「 ry Pi 0000 090 Please wait while the software is nstalled on YO は SD card ー thlS will take a few rninutes. Raspbian: Extracting fi sy 、い m 429 ト田研 4093 MB w 「 en ( 2.7 M 町 50 ( ) インストールが始まる ( 完了まで時間がかかる ) 10 % ・ 00 ・ 000 05 他 & ) & t 厄 d 05 ( い n 式 a ed Su ( ( sfu 収 0 クリック インストールが完了したら、「 OK 」をクリックする * ↑↓マ 7 ⑦無線 LAN に 3 で接続していなか った場△ ーをクリックし、現 れた無線 LAN の (SSID) をクリ ックして、バスワードを入力する 138 ここでは、コマンド操作の基本と日本語化について説明します。 Raspbian では「コマンド入力」が頻繁に登場し ます。「コマンド」とは OS に対して与える指示のことで、キーボードで入力します。デスクトップ画面上端のバー にある、黒いウインドウのアイコンをクリックすれば「端末」 ( ターミナルとも呼ぶ ) が起動し、ここでコマンドを Raspbian のデスクトップが英語表記で立ち上がる。無線 LAN を使う場合は接続しておく 「コマンド入力」に慣れて日本語化、ツ。 テスり一ドヅプから端末 ( タミナルを開く 入力できます。そのコマンドを使って、実際に日本語入力ソフトをインストールします。 イマガジ - こをクリック 0 ロ・

9. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

" ラズバイ風 " ポード種を大検 特集 2 ム、次のように書き込みます。 Ethernet Network 朝 5 ( 0 ! Ⅲを← d 、 i 十一 Ne ー WO ⅸ、 朝 on を ( ! ed $ sudO apt install gddrescue ロ $ s u d 0 d d r e s c u e ー f . / 2 0170703 ー t i n ke に b 0 a rd ー 1 i n a r 0 - s t r et c h - a 1 i p ー v 1 . 9 . i mg / d e v / s d c ロ Tinker Board を起動させる Avaiiabie VPN ( onne i515 Conne は tO Hidden Wi-R *.. 図 3 Tinker Boa 「 d のテフォルトのデスク 図 4 アクセスポイントの一覧 トップ inkerB 作成した microSD カードを Tinker Board の microSD カードスロットに かどうかが、 Tinker Board の評価 っています。 差し込みます。また、キーボードとマ の分かれ目になりそうです。 執筆時の 2017 年 8 月 20 日時点の最 ウスを USB ポートに接続し、 HDMI 新版「 TinkerOS Debian VI. 9 」を利 ポートにはフル HD 解像度のディス 用することにします。「 Debian stre プレイを接続しておいてください。 tch 」 (Debian GNU/Linux 9.1 ) べー MicroUSB 端子に AC アダブター Tinker Board は Raspberry Pi と スの最新ディストリビューションで を接続すると、 Raspberry Pi と全く 同じく MicroUSB 端子から給電し す。執筆時点では「 20170703- tinker - 同じようにオンポードの電源インジ ます。接続する AC アダブターは board-linaro-stretch-alip-vl. 9. zip 」と ケーターが点灯し、さらに microSD 5V 、 2A 以上が推奨となっています いう圧縮ファイルがダウンロードで カードのアクセスインジケーターが が、実際には 3A 以上の AC アダブ きました。まだ版なので日付の 点滅し始めます。ディスプレイには、 ターでないと正常に動作しない場合 部分は頻繁に更新される可能性が GUI のプート画面が表示されます。 があり、注意が必要です。また、消 あります。 初回起動時は micr 。 SD カードの 費電力が大きいため MicroUSB 端 圧縮ファイルを展開すると、 mi 領域拡張を自動実行するため、 GUI 子からの給電では不安定になること croSD カードのイメージファイ の起動画面が現れた直後に自動で もあり、良質な USB ケープルと大 ル「 20170703-tinker-board-linaro- 再起動します。初回起動時の再起動 容量の AC アダブターを用意した方 stretch-alip-vl. 9. img 」が得られます。 は異常ではないので注意してくださ がよいでしよう。 2G バイト以上の microSD カードが い。しばらくすると図 3 のようなデ ストレージも Raspberry Pi と同 指定されていますが、このイメージ スクトップが現れるでしよう。 じく microSD カードを採用してい ファイルは約 1.9G バイトが使用済み ます。 OS のイメージファイルは開 なので、 2G バイトの microSD カー 無線 LAN を設定する 発元の ASUS 社が提供しています。 ドでは実用になりません。 4G バイ ネットワークは無線と有線の双方 執筆時点では Android と Debian べ ト以上の microSD カードを用意し、 をサポートします。有線は特に設定 ースの「 TinkerOS 」が提供されて 展開したイメージファイルを書き込 の必要がないので、無線 LAN の設 いました。 みます。 定を簡単に紹介しておきます。 Windows パソコンでダウンロー デスクトップ右下にあるネット Linux の mic 「 OSD カードを用意 ドしたのであれば、「 Win32 Disk lm ワークのアイコンを右クリックする ASUS のサポートページ * 1 の「ダ ager 」 * 2 を使って microSD カードに と、通信可能なアクセスポイントが ウンロード」からイメージファイル 書き込んでください。 一覧表示されます ( 図 4 ) 。接続し やドキュメント、ライプラリを入手 Ubuntu や Debian などの Linux パ できます。サポートページで「ドラ ソコンでダウンロードしたのであれ * 1 https://www.asus.com/jp/Single- Board-Computer/Tinker-Board/HeIpDe イバー & ツール」を選び、「その他」 ば、「 ddrescue 」を使って書き込む sk_Download/ の OS を選択すると「他」以下にダ とよいでしよう。 microSD カードが * 2 https://ja.osdn.net/projects/sfn et—win32diskimager/ ウンロードできるファイルがまとま 「 /dev/sdc 」として認識している場 Tinker Boa 「 d を使う ラスパ カジン 2017.10

10. ラズパイマガジン = Raspberry Pi Magazine 2017年10月号

バルスの幅で角度を指定 ( サーボにより異なる ) High ( 5V や 3.3V ) 図 9 LOW スタジオの (OV) 1 周期 サーポモー 図 10 サーポモーターの角度を制御する ター「 MiniS RB90 」 ための PWM 入力 表 2 RB90 の仕様 図 1 1 米 Adafruit 社の「 PCA9685 搭載 16 チ 最小角度のとき ー 02C 接続 ) 」 電源電圧 4.8V x 4096 = 163.84 →・ 165 可動可能範囲 約士 70 度 servo ー test. py の詳細は読者限定サ 制御バルス電圧 イトのソースコードを見てください。 最大角度のとき 約 0.8 ~ 2.4 ミリ秒 制御バルス幅の範囲 15 ~ 20 ミリ秒 信号周期 2.4 PCA9685 にはサーボのチャンネルご x 4096 = 491.52 → - 490 トルク 1.6kg ・ cm 20 とに 4 バイトのレジスタがあり、上位 0.12 秒 / 60 度 回転速度 2 バイトでパルスの立ち上がり、下位 図 12 RB90 の最小角度と最大角度のとき の入力値 割合を表します。 50 % のパルス幅にし 2 バイトで立ち下がりのタイミングを 計算値よりも少し余裕を持たせた値にする。 たい場合は 2047 と指定します。 0 な 指定します。上位は常に 0 、下位は 最小角度のとき 165 、最大角度のとき ら常に Low 、 4095 なら常に High にな 示す信号を入力します。 ラジコンやロボット向けのホビー用 ります。 489 にしています。 サーボの制御パルス幅の範囲 ( 0.8 サーボの制御には PWM 信号を使い 実際の動作角度を調べる ~ 2.4 ミリ秒 ) から PCA9685 に入力 ます。 PWM とは矩形波で、 High と サーボの動作条件には動作する角 する値の範囲を求めます。 PWM の L 。 w を定期的に繰り返す出力方法で 信号周期を 20 ミリ秒 (50Hz) とする 度が記載されています。 RB90 なら士 す ( 図 10 ) 。この PWM の電圧がかか と、図 12 から入力値は 165 ~ 489 に 70 度、つまり 140 度の範囲で動作する った状態の長さによってサーボの角 はずです。しかし実際には誤差や入 なります。 度を指定します。 実際にサーポを制御してみましょ カ値によって動作角度が異なります。 入力する信号はサーボによって異 う。 12C の信号線である SCL 、 SDA 、 そこで実際の動作角度を分度器で計 なります。今回利用する RB90 の動作 + 3.3V 、 GND の 4 本を Raspberry Pi 測します。スマートフォンの分度器ア 条件は表 2 の通りです。 PWM のパル に接続します ( 図 13 ) 。サーポを駆動 プリが便利です。 ス幅は 0.8 ~ 2.4 ミリ秒の範囲で、 servo-test. py を利用して計測しま の範囲で一 70 ~ + 70 度の角度に変わ するために AC アダブターなどで 5V の別電源を用意し、 V + と GND につ す。テキストエデイタで servo_test. py ることが分かります。 PWM の周期は なぎます。 X 軸と Y 軸用のサーボは、 を開き、「 INTERVAL 」の値を「 10 」 15 ~ 20 ミリ秒です。 チャンネル 0 と 1 に差し込み、付属の に変更するとサーポが 10 秒間隔で動 サーポを制御するのに便利なのが 十字型などの「サーボホーン」を回 くようになります。プログラムを実行 米 Adafruit 社の「 PCA9685 搭載 16 チ 転軸の先に付けます。 し、最小角度のときのサーポホーンを ャネル PWM / サーポドライバー (12C 接続 ) 」です ( 図 11 ) 。サーボを接続 接続できたら、読者限定サイトに 分度器の 0 度に当て、最大角度のと 用意した servo_test. py で動作を確認 きの角度を調べます。この角度をメモ できる端子が 16 セット付いていて、 16 します。 Raspberry Pi に転送して次 しておいてください。サーボの個体差 台まで同時に動かせます。サーボの のように実行します。 制御には 12C を使います。 は調べた範囲ではわずかなので無視 します。 サーボの動作をテスト $ sudO python servo—test . py ロ PCA9685 のサーボ制御用の入力信 すると X 軸側のサーポが最大角と最 号は、 0 ~ 4095 の 4096 階調です。 小角の間を行き来するはずです。 の値は PWM の電圧が High の状態の 々日 90 項目 20 第 バランストレイを 組み立てよう それではバランストレイを実際に ラスパイマガジン 2011.10 特別付録