Category Archives: RPi Introduction

Raspberry PiとPCを有線で直接繋いでSSHする

Raspberry PiにSSH接続したいけど、IPアドレスわからない、これは学生にとって永遠のテームだ。そのためモニターの前に待ち行列を作り、モニターがない場合はお手上げしている。

Raspberry PiとPCを有線で直接繋いでSSHすることが’できれば、コンビニでも買えるLANケーブル一本ですべて解決する。

リモート(Raspberry Pi)側

イメージをMicroSDに書き込んだ後、MicroSDのルートディレクトリにsshという名前で空のファイルを作成する。

ホスト側

LANポートのないパソコンはLANアダプターが必要。

BUFFALO LUA3-U2-ATX (https://www.amazon.co.jp/dp/B002IT5ZPG

Windowsの場合、タスクマネージャー(Ctrl+Shift+Esc)でBonjour Serviceが実行中になっているか確認しましょう。なければ Bonjour Print Servicesがインストールする。

Mac OSは何もインストール必要がないようです。

SSH接続してみる

raspberrypi.local へ接続するだけ。

新しい書き込みユーティリティ、Raspberry Pi Imagerの紹介

Raspbian、公式のRaspberry Piオペレーティングシステム、およびその他のオペレーティングシステムを使用して、microSDカードのイメージをより簡単に作成できます。新しい書き込みユーティリティ、Raspberry Pi Imagerの紹介。

 

Raspberry Pi体験の簡素化

Raspberry Pi体験の最も重要な側面の1つは、できるだけ簡単に開始できるようにすることです。そのために、最初のRaspberry Piを起動してから、オペレーティングシステムにGUIを追加し、最初に起動するときにRaspberry Piをセットアップするのに役立つウィザードと、人々を呼び込み、ランニング。Raspberry Piデスクトップキットを開発して、必要なものすべて(モニターを除く)を1つのボックスに入れて、できるだけ簡単にできるようにしました。

これらのすべてがよりシンプルに向かう動きにもかかわらず、microSDカードに関しては、お気に入りのRaspberry Piオペレーティングシステムでそれらをプログラミングすることは常に少し難しいです。

主な問題は、人々のメインコンピューターWindows、macOS、およびLinuxはすべて、SDカードへのアクセス方法がに異なります。また、一部の新しいRaspberry Piユーザーにとって、最新のイメージの場所とmicroSDカードへの取り込み方法を理解することは、少し混乱する可能性があります。

新しいRaspberry Pi Imagerの紹介

これから、Raspberry Piユーザーは、Windows、macOS、Ubuntuで利用可能な新しいRaspberry Pi Imagerをダウンロードして使用できるようになります。

このユーティリティは、メカニクスに導入したいくつかのショートカットのおかげで、使いやすく、非常に高速です。

まず、Raspberry Pi Imagerは、現在のすべてのダウンロードオプションのリストとともに当社のWebサイトから.JSONファイルをダウンロードし、常に最新バージョンをインストールするようにします。

使用可能なオプションからオペレーティングシステムを選択すると、ユーティリティは当社のWebサイトから関連ファイルを直接読み取り、SDカードに直接書き込みます。これにより、Webサイトから読み取り、ハードドライブ上のファイルに書き込み、それから別のステップとして、ハードドライブから読み取り、SDに書き込む標準プロセスと比較して、プロセスが大幅に高速化されます。カード。

このプロセス中に、Raspberry Pi Imagerはダウンロードしたオペレーティングシステムイメージもキャッシュします。つまり、コンピューターにローカルコピーを保存します。そのため、ファイルを再度ダウンロードせずに追加のSDカードをプログラムできます。

オープンソースですぐに使える!

ダウンロードページから Raspberry Pi Imager 今すぐダウンロードしてください

Raspberry Pi 液晶表示盤のLED制御

数か月前、Raspberry Pi に液晶表示盤を付けたが、バックライトのLEDは常にONのため、夜は眩しい。GPIOからON/OFF制御可能にしたい。

回路図がないのため、ネットでいろいろ調べて、バックライトのLEDは、GPIOに繋ぐと、3.3V に直結したタイプあるそうです。

WebIOPiをインストールして、ブラウザから、すべてGPIO端子ON/OFFして見たが、バックライトのLEDがON/OFF現象が認めない。つまり、購入したものは3.3V に直結したタイプらしい。

基盤の結線を探し、切断してGPIOにつなぎ直し方法もあるが、なかなか決心とタイミングが必要ね。

たまたま液晶表示盤は、PCD8544 LCD使うらしい。そのPCD8544の制御方法を探す際、PCD8544-utils ( https://github.com/acidum/PCD8544-utils )見つかり、おまけに、液晶表示盤改造でバックライトのLED制御する方法まで書いた。小さな抵抗を溶かして、180度回転し、ジャンパー線でコネックターまで繋ぐ方法。

タイミングを見て、改造に取り込んだ。特に上記URLに説明した凹みを作って結線することなく。ケース入りだからそのまま結線でも問題ないと。

2015-04-27 21.51.582015-04-27 21.52.45

結線の正面と裏面、遂に成功した。手元に結線がなく、古い結線付きコネックターの結線をカットして再利用。

2015-04-27 21.51.58

近眼鏡と虫眼鏡の組み合わせて些細作業を進み、一度小さな抵抗が跳ねて見失い、諦めかけた時もあった。

2015-04-27 21.56.23

セット組み直して、WebIOPiから、21番PIN(GPIO9)のON/OFFで、バックライトのLEDがON/OFFが確認した。

これてRaspberry Piに状態変更があるとき、メッセージが届いたとき、バックライトのON/OFF、Blinkなどで表現する手法も増えた。

 

参考文献 肩に乗せてもらった巨人達:

Raspberry Pi に液晶表示盤

AliExpress.comでRaspberry Pi 用液晶表示盤発見。送料無料8ドルで早速注文。約8日で東京自宅に届きました。

見た目右に3つ黒いピクセルがあるが、使用上支障がない模様。

Raspberry-Pi-LCD

Attached new LCD for Raspberry Pi

早速取り付けて、電源ONして、バックライト点灯したが、画面当然何も表示しない。

wiringPiのGitから取得とbuild

415  cd
416  git clone git://git.drogon.net/wiringPi
417  cd wiringPi/
418  ./build

RaspberryPiの/libraries/c/をGitから、pcd8544_test、pcd8544_test2、を実行。

419  cd
423  git clone https://github.com/binerry/RaspberryPi.git
425  cd RaspberryPi/libraries/c/PCD8544/
437  cp -p ../PCD8544.h ./
438  cc -o pcd8544_test pcd8544_test.c ../PCD8544.c  -L/usr/local/lib -lwiringPi
439  sudo ./pcd8544_test
440  cc -o pcd8544_test2 pcd8544_test2.c ../PCD8544.c  -L/usr/local/lib -lwiringPi
441  sudo ./pcd8544_test2

立ち上げ時間、CPU利用率と空きメモリの表示サンプル

442  cc -o pcd8544_rpi pcd8544_rpi.c ../PCD8544.c  -L/usr/local/lib -lwiringPi
443  sudo ./pcd8544_rpi
444  top
445  sudo ./pcd8544_rpi
446  sudo ./pcd8544_rpi &

バックグラウンド実行も可能。

Raspberry Pi wireless 温度計の制作

RaspberryPiの検索で、たまたまUSB温度計を使ってLinuxから室温を計測する を発見

それから、matoken’s wiki. Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58で、eBay 日本で買うより安いという情報を頂いたので、買ってみた。

同じの品物ないが、類似したものを一個$6.49で買った。送料無料!(しかし安いものがいっぱいあるからついつい、84ドル超える買い物になった。)

P2190091

届いたら、早速RaspberryPiに刺してみたら、

[702457.972061] usb 1-1.2: new low-speed USB device number 5 using dwc_otg
[702458.078478] usb 1-1.2: New USB device found, idVendor=0c45, idProduct=7401
[702458.078511] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[702458.078528] usb 1-1.2: Product: TEMPerV1.4
[702458.078543] usb 1-1.2: Manufacturer: RDing
[702458.093433] input: RDing TEMPerV1.4 as /devices/platform/bcm2708_usb/usb1/1-1/1-1.2/1-1.2:1.0/input/input0
[702458.094931] hid-generic 0003:0C45:7401.0001: input,hidraw0: USB HID v1.10 Keyboard [RDing TEMPerV1.4] on usb-bcm2708_usb-1.2/input0
[702458.104938] hid-generic 0003:0C45:7401.0002: hiddev0,hidraw1: USB HID v1.10 Device [RDing TEMPerV1.4] on usb-bcm2708_usb-1.2/input1

認識された。

こちら(http://hpv.cc/~maty/pukiwiki1/index.php?Linux/Device/サンコーレアモノショップ_USB温度計_AKIBA58)を参考に、ソースコードを取得し、カスタマイズする。

詳しい製作過程は、WIKIへ(http://linux.uc4.net//xoops/modules/xpwiki/)どうぞ。

# apt-get install build-essential libusb-0.1-4 libusb-dev git

一部パッケージが見つからない、失敗に終わった。パッケージ更新する。

# apt-get update

# apt-get install build-essential libusb-0.1-4 libusb-dev git

今度上手く完成した。

temper ソースをgit から。

# git clone git://github.com/bitplane/temper.git

# ls temper

60-temper.rules  log.sh  Makefile  pcsensor.c  pcsensor.h  README  temper.c

# cp -p temper.c temper.c.org

# vi temper.c

# diff temper.c.org temper.c

44c44
<               utc = gmtime(&t);
---
>               utc = localtime(&t);
47c47
<               strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
---
>               strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc);

# make

# mv temper /usr/local/bin/

# chmod u+s /usr/local/bin/temper

# temper

2013-02-16 03:48:08,30.396763

ちゃんと温度の表示ができた。しかし30度は高いね!USB延長ケーブルを付けて再度計測。

$ temper

2013-02-16 03:55:17,23.710213

23度くらい、室温に近いかも。

運用 anchor.png

PHPでWEBに表示するため、UNIX通算時間の表示、ログの生成、cron に登録、ログの解析が必要。

# vi temper.c

# diff temper.c.org temper.c

44c44
<               utc = gmtime(&t);
---
>               utc = localtime(&t);
47c47
<               strftime(dt, 80, "%d-%b-%Y %H:%M", utc);
---
>               strftime(dt, 80, "%Y-%m-%d %H:%M:%S", utc);
49c49
<               printf("%s,%fn", dt, tempc);
---
>               printf("%ld,%s,%fn", t, dt, tempc);

5分置きに、/var/log/temper.logにログを吐き

*/5 * * * * /usr/local/bin/temper >> /var/log/temper.log

最後は、PHPでWEBに表示する

オーダーした、Webカメラもそろそろ届くので、無線で画像、音声、温度、湿度を送るフィールドサーバみたいなものを作りたいね!

Ref anchor.png

参考:

  1. http://model.job.affrc.go.jp/FieldServer/フィールドサーバ

Raspberry Pi 二台目始動

Raspberry Pi一台目Webサーバとして16GのSDカードを積んで遠方で稼働し始めた。

Raspberry Pi 二台目もそろそろ始動。

P1300012

今回はクリアケースで、8GのSDカード(左側青いもの), USB-WiFi無線通信モジュール(右側白いもの)を装備、ワイアレスの何かを試したいともう。

手元にある http://www.amazon.cn/MERCURY-水星网络-MW150US-超小型150M无线USB网卡/dp/B008FK96QG/ で購入した。 USB-WiFi無線通信モジュール(右側白いもの)を装備した様子

# lsusb — 認識されたことを確認。

Bus 001 Device 002: ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN Adapter <--- これです!
Bus 001 Device 008: ID 0c45:7401 Microdia

ここの Wifiアダプタ(チップセットがRTL8188CUSのもの)のドライバはカーネルにすでに組み込まれているので、非常に簡単なセットアップだ。

# lsmod — カーネルモジュールの読み込み状態で確認

Module                  Size  Used by
snd_bcm2835            10636  0
snd_pcm                60411  1 snd_bcm2835
snd_seq                44988  0
snd_timer              16257  2 snd_pcm,snd_seq
snd_seq_device          4265  1 snd_seq
snd                    41809  5 snd_bcm2835,snd_timer,snd_pcm,snd_seq,snd_seq_device
snd_page_alloc          3176  1 snd_pcm
8192cu                457513  0  <--- これです!
leds_gpio               1920  0
led_class               2329  1 leds_gpio

# iwconfig — ワイヤレス設定から確認

wlan0     unassociated  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency=2.412 GHz  Access Point: Not-Associated
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0
lo        no wireless extensions.
eth0      no wireless extensions.
Page Top

設定 anchor.png

# vi /etc/network/interfaces

auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf

# vi /etc/wpa_supplicant/wpa_supplicant.conf

network={
 ssid="_SSID_"
 proto=RSN
 key_mgmt=WPA-PSK
 pairwise=CCMP TKIP
 group=CCMP TKIP
 psk="_WPA_SHARED_KEY_"

}

# ifdown wlan0

# ifup wlan0

ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument

# ifconfig wlan0

wlan0     Link encap:Ethernet  HWaddr 14:cf:92:0b:91:84
         inet addr:192.168.0.123  Bcast:192.168.0.255  Mask:255.255.255.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:2573 errors:0 dropped:4062 overruns:0 frame:0
         TX packets:13 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:307880 (300.6 KiB)  TX bytes:1871 (1.8 KiB)

運用 anchor.png

サーバとして運用するつもりなので、固定IPの設定を行う

また、eth0はケーブルが抜けると、wlan0も切れてしまうので、いろいろと調べて、ifmetric 導入にした。

# apt-get install resolvconf — chen 2013-02-19 (火) 01:30:55

# apt-get install ifmetric — chen 2013-02-19 (火) 01:31:14

# vi /etc/network/interfaces

auto lo
iface lo inet loopback
# Primary wired network interface [eth0]
auto eth0
iface eth0 inet static
       metric 1
       address 192.168.0.201
       netmask 255.255.255.0
       gateway 192.168.0.1
# DHCP
#iface eth0 inet dhcp
# Wireless interface [wlan0]
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
       metric 0
       address 192.168.0.207
       netmask 255.255.255.0
       gateway 192.168.0.1
       wpa-ssid _SSID_
       wpa-psk _WPA_SHARED_KEY_
       # wpa_roam /etc/wpa_supplicant/wpa_supplicant.conf

# ifdown wlan0

# ifup wlan0

これてeth0はケーブルが抜けでも、wlan0ちゃんと繋ぐ。

Ref anchor.png

Raspberry Pi power on first time

Raspberry Piのケースもそろい、新しい4G容量のSDカードも購入、いよいよ電源を投入。

その前、まずインストール方法を調べた。インターネット接続されてるなら、berrybootが一番楽らしい。小さいファイルを解凍してsd cardに入れるだけ、しかも複数OS入れられる。

P1160876

Piとテレビの間、HDMIケーブルで繋ぎ、LANケーブルでハブにも繋ぎ、手元にある無線マウス、無線キーボードもそれぞれUSBでつなぎ、用意したSDカード挿入、最後5V電源つなった様子。

インストール手順をまとめる:

  1. http://www.berryterminal.com/doku.php/berryboot サイトを開く。
  2. berryboot-20120904.zip をダウンロードする。
  3. カラのsd cardのルートににすべてファイルunzip
  4. sd cardを PIに挿入
  5. ルータと PI にケーブルをつなぐ
  6. PI 電源を入れる
  7. PI 起動、sd cardのフォーマット
  8. OSを選んでインストール (とりあえずDebian)
注意:フォーマットする際、デフォルトの ‘ext4 (no discard)’  ではなく、 ‘ext4’を選ぶ。

P1160879

Raspberry Pi 注文

Raspberry Pi(ラズベリーパイ)は、名刺サイズの価格35ドルの「単板機」(single-board computer)。

http://ja.wikipedia.org/wiki/Raspberry_Pi

多分3月こと、Fecebookで情報を知り、予約したが、今日やっと注文できるの知らせが来た。

本体は35ドル、送料は8.02ドル、総額43.02ドルで注文した。届くまで5週間かかるから、とりあえず楽しみに。

用途として、HDMIでTVに接続し、10/100 Mbps で無線ルータ(USB電源出力付き)に繋いで、AirPlayを作ってみたいと思う。

 

(液晶TV)---HDMI---(ラズベリーパイ)---LAN---(無線ルータ)---WIFI---(WIFIルータ)
                   (    電源入力 )---USB---(5V電源出力)

 

iPhone, Androidから、ビデオ見るなり、プレゼンなりできるといいね。