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 へ接続するだけ。

PIXEL (5) VS Code

持っているPCのテキストエディタはすべて、VSCodeに統一したので、Raspberry Pi, Raspberry PixもVSCodeをインストールする。

VSCodeのWinは、32bit, 64bit 対応だが、その他のプラットフォームは64bit 版のみダウンロードできる。

しかし現時点Raspberry Pi, Raspberry Pix共に32bitのみ,ネットで探して、 Visual Studio Code の Community Buildがあり、そこから32bit版をインストールする。

インストール

$ sudo su
# . <( wget -O - https://code.headmelted.com/installers/apt.sh )
# exit

これて導入完了。

導入後はメニューから code-oss を選択して起動する。

資料により、GPG Key をインストールが必要、または最新版は正しく動作しないので、古いバージョンにダウングレードしたなど、アドバイスありましたが、現時点の最新版は特に必要がなくインストール、起動できた。

Raspberry Pi (7) RealVNC

Raspberry Pi に毎回 HDMI・キーボ・マウスをつなぐのが面倒、SSHはまた慣れてない、MacとかからGUIで触れるようにしたい。その場合RealVNCを利用という選択肢があります。

Raspbian OSにはVNCサーバ(RealVNC)が組み込まれていますが、既定では無効になっています。

VNCを有効にする

これを有効化すればVNCクライアントから接続できるようになります。

Raspberry Pi を起動してデスクトップ画面が表示されたら、メニューバー左端のラズベリーアイコンをクリックします。
表示されたプルダウンメニューから [設定]-[Raspberry Piの設定]をクリックします。

「Raspberry Piの設定」画面で「インタフェース」タブをクリックし、[VNC]の「有効」を選択してから[OK]ボタンをクリックします。

VNCビューアのインストール

RealVNCと互換性のあるVNCクライアントアプリを用意してください。

(macOSの場合、VNCクライアントなくでも、Finderから利用できます。)

Download VNC Viewer to the device

使用しているPCがMacの場合は、上記サイトを開いてから [macOS] アイコンをクリックしてください。
その後、画面中央の [DOWNLOAD VNC VIEWER]をクリックしてインストールイメージ(dmgファイル)をダウンロードします。

MacのFinderからVNCで接続するには
  1. 起動方法は簡単です。 Finderを起動して、メニューバーの「移動」ー「サーバへ接続」を選択します。 …
  2. サーバアドレスには「vpn://220.99.0.xx:ポート番号」の書式で入力します。 …
  3. 認証画面が表示されますので、VNCサーバで指定しているパスワードを入力します。

VNCビューアの起動

インストールされた「VNC Viewer」を起動します。
初期起動画面が表示されるので、そのまま[GOT IT]ボタンをクリックします。

ビューア画面が表示されたら、アドレス入力欄に Raspberry Pi のIPアドレスを入力して [enter]キーを押下します。

ログインユーザ名とパスワードを入力して [OK]ボタンをクリックします。

 

Ubuntu で Dropbox

Dropboxをインストールすれば、WindowsやmacOSなどとファイルをやり取りするのが簡単になる。また、出先でスマートフォンなどから同期したファイルを見ることもできる。

経緯

UbuntuでArduino IDEを試すため、最新版Ubuntu 18.04 LTSへアップグレードした。Arduino IDEの動作も確認した。

今度MacbookまたはWindows版で開発したArduinoプログラムの同期方法を考えた。

Macbook同士はiCloud便利だが、Windows環境でも動くのは、DropboxとGoogle Driveになる。

Ubuntuでは、Google Driveは不安定と言う記事が多数見受けるので、Dropboxにチョイス。

GUI で入れてみる

Ubuntuデスクトップのメニューから、「ソフトウェア」というアプリケーションがあり、そこからDropboxを検索し、インストールができた。

CUI で入れる

手持ちの3台は「ソフトウェア」というアプリケーションからDropboxを見つけ、インストールができた。もう一台はどうしても見つからない、どういうことだね?

Ubuntuのレポジトリで、「nautilus-dropbox」パッケージが提供されてる。

以下のリンクをクリックしてインストールできる。

 

以下のコマンドでインストールすることもできる。

sudo apt install -y nautilus-dropbox

ると、以下のダイアログが表示され、「OK」をクリックすると、Dropboxデーモンプログラムがダウンロード、インストールされる。

デーモンプログラムのインストールが完了すると、ブラウザが開られて、既にアカウントを持っているなら、メールアドレスとパスワードを入力し、Ubuntuをリンクできる。ただし、リンクすると同期済みのファイルがUbuntuにもコピーされるので、ファイルシステムの空き容量が十分にあることを確認してから実行する。

アカウントを持っていないなら、「アカウントを作成」をクリックして登録してから、Ubuntuをリンクできる。

参考

  1. https://www.imuza.com/entry/2018/02/22/212055
  2. https://linuxfan.info/dropbox-on-ubuntu

Ubuntu upgrade

経緯

今までArduino IDEのMacbookまたはWindows版を利用している。ESP8266/WeMosに限って、よくクラッシュする。

同じシリアルCH340を使う、安価のUno、Nanoは普通に使えるので、シリアルドライバーではなく、WeMos、ESP8266に関する何か異変があると思う。

頻繁にクラッシュするから仕事進まないと困る。Ubuntuで安定するかを試すことに。

しかし、手持ちのいくつUbuntuは一年くらい放置して、コンパイルできない問題発生。最新版Ubuntu 18.04 LTSへアップグレードを試み。

結論からいうと、問題が残りがあるもので、アップグレードは成功。

16.04 LTSから18.04 LTS

こちらは、順調にUbuntu 18.04 LTSにアップできた。

今回の件で、安定した環境を求めるなら、Ubuntu LTSが自分に向いてると思った。

17.04から18.04 LTS

こちらは、直接18.04 LTSにアップできないと言われて。新規インストールが勧められて・・・。

もう一つの方法は、一旦17.10へアップして、それから18.04 LTSへアップする方法。時間がかかりそうだが、必要な操作が少ない、パソコンが働くので、人間にとっては楽。結局この方法で進み、うまくできた。

apt-get update が404になる問題が発生、参考1で解決。

参考

  1. https://qiita.com/nyanchu/items/a8cfc5cf627d70d798bf — Ubuntu で apt-get update が404になる問題

 

 

 

Raspberry Pi (9) Waveshare 2.13inch e-Paper HAT

経緯

低消耗電力、停電でも表示する e-Paperが興味があり、そのRaspberry Pi HATを手に入れた。

ハードウェア

このRaspberry Pi Waveshare 2.13inch e-Paper HATは、Raspberry Pi 2/3/Zero対応する。

ソフトウェア

wiringpiのインストール

root@raspberrypizero004:/home/pi# pip3 search wiringpi
wiringpi (2.46.0) – A python interface to WiringPi 2.0 library which allows for easily
interfacing with the GPIO pins of the Raspberry Pi. Also supports i2c and
SPI.
wiringpi2 (2.32.3) – A python interface to WiringPi 2.0 library which allows for easily
interfacing with the GPIO pins of the Raspberry Pi. Also supports i2c
and SPI
root@raspberrypizero004:/home/pi# pip3 install wiringpi
root@raspberrypizero004:/home/pi# gpio -v
gpio version: 2.46
Copyright (c) 2012-2018 Gordon Henderson
This is free software with ABSOLUTELY NO WARRANTY.
For details type: gpio -warranty
動作確認する
Raspberry Pi Details:
Type: Pi Zero-W, Revision: 01, Memory: 512MB, Maker: Sony
* Device tree is enabled.
*–> Raspberry Pi Zero W Rev 1.1
* This Raspberry Pi supports user-level GPIO access.
root@raspberrypizero004:/home/pi#

Python関連のインストール

28 sudo apt-get install python-dev
29 sudo apt install python-rpi.gpio
30 sudo apt install python-smbus
31 sudo apt install python-serial
32 sudo apt install python-spidev
33 sudo apt install python-imaging
34 sudo raspi-config
35 sudo vi /etc/modules
下記の2行を追加する
i2c-bcm2708
i2c-dev

検証

demo codeのダウンロードと解凍
36 wget https://www.waveshare.com/w/upload/3/3f/2.13inch-e-paper-hat-b-code.7z
39 sudo apt install p7zip-full
62 mkdir 2.13inch-e-paper-hat-b-code
63 cd 2.13inch-e-paper-hat-b-code/
64 7z x ../2.13inch-e-paper-hat-b-code.7z
65 ls

pythonで試す

66 python raspberrypi/python/main.py
71 cd raspberrypi/
73 cd python/
75 python main.py

wiringpiで試す

76 cd ..
79 cd wiringpi/
81 make
85 ./epd

 

参考

  1. http://www.waveshare.net/wiki/2.13inch_e-Paper_HAT_(B)
  2. https://relativelayout.hatenablog.com/entry/2018/02/17/234348 — Waveshare 2.13inch e-Paper HAT (B)を買って3色電子ペーパーを楽しむ(環境構築編)

Raspberry Pi (6) USB to PC (2)

USB を通して、 PCに接続する 2nd実験。

USBアダプターの購入

RaspberryのUSB Connector Expansion Boardが安く売っているので、導入することに。

「ラズパイzero w usb」の画像検索結果

接続実験

SB を通して、 PCに接続する 実験は、以前できたことで、ハードウェア繋ぐだけで動くはずだが、苦労した。

ラズパイZeroまたはZero WをUSBケーブル1本でPCやMacに接続する方法は、いつの間にうまくいかなくなった。

つまり、ssh pi@raspberrypi.local がうまく繋がらない。

PIXEL (4) Japanese Input

Raspberry Pi 設定ツールで日本語化する

ラズベリーパイメニューからPreferences → Raspberry Pi Configurationの順に選択します。
2017073001
LocalisationタブのSet Locale…ボタンを押します。
Language:にja (Japanese)を選択します。
Timezone:をJapanに設定します。
Keyboard:のSet Keyboard…を押して、CountryにJapan、Variantはご使用しているキーボードの種類を選択します。分からない場合はとりあえずJapaneseで大丈夫だと思います。
WiFi Country:のSet WiFi Country…を押してCountry:にJP Japanを設定します。
最後にRaspberry Pi ConfigurationのOKを押すと再起動するか尋ねられるのでYesボタンを押して再起動します。

コマンドで日本語化する

ターミナルを開いて言語とタイムゾーンを設定します。

[*] ja_JP.UTF-8 UTF-8 を選択

アジア / Tokyo を選択

日本語関連パッケージをインストールします。
いったんログアウトして、再度ログイン(ユーザー名 : pi、パスワード : raspberry)するとデスクトップは日本語になります。

日本語入力

ラズベリーパイで日本語入力を行うための方法はいくつかあります

  1. fcitx-mozc
  2. scim-anthy

fcitx-mozc

今回は、Google日本語入力のオープンソース版である「Mozc」を使った方法を試してみましょう。

  • 日本語入力:
    sudo apt-get install fcitx-mozc --install-recommends -y
    再起動後、CTRL+スペースで日本語入力できる。。ハズ..
  • ラズパイメニュー > 設定 > Fcitxの設定 で、入力メソッドのとこで一番上が、キーボード – 英語(UK) だったら、削除する(Mozcだけ)か、US配列キーの場合、”英語(US)”にする。
  • フォント:
    sudo apt-get install fonts-ipafont fonts-ipaexfont fonts-takao

scim-anthy

日本語が入力できるようにscim-anthyをインストールします

sudo apt-get install scim-anthy

Raspberry Pi (7) OLED status

Raspberry Pi ZeroにOLED をつけて、statusを表示する。
Raspberry Pi Zeroは、ネットワークi/fがないため、入手して大分時間がたちまして、棚上げ状態が続く。
USB WiFiを追加し、さらにOLEDでipアドレスなどのstatusが表示できれば、使い道が増えると考えた。
試行錯誤の末、下記のものができた。

  1. オスのUSB追加で、PCに直挿入
    (2は共存できないため、不要!)
  2. USB WiFiでネットワークに接続
  3. シリアル接続ための端子を用意
  4. OLEDでstatusの表示
  5. BMP280で環境温度と気圧を収集

開発環境構築

まず、オスのUSB追加で、PCに直挿入できるように。

(参考: Raspberry Pi (8) USB to PC

PCに直挿入、sshで操作らくらくと調子がいいだけと、
しかしここで、MicroUSBにWiFiドングリをさして見たら、認識しない!共存できないと発見した。

仕方なくシリアル接続ための端子を追加した。

OLEDでstatusの表示

(TBD)

BMP280で環境温度と気圧を収集

(TBD)

Raspberry Pi (5) USB to PC

Raspberry Pi Zero はWiFiもない、LANもないから、使いづらい。

USBで直接PCに刺して使えるならいいと思い、やってみた。

ハードウェア

ついてに、OLEDも繋げて、何かメッセージ見るとき便利。

完成した様子。

ソフトウェア

SDカードにRaspbianを書きこむ

いつもの方法

bootボリューム内の一部ファイルの修正

編集するファイルは3つ。

config.txt

次のコマンドでファイルを開く。

最終行に次の内容を追加。

 

cmdline.txt

次のコマンドでファイルを開く。

rootwaitquietの間にmodules-load=dwc2,g_etherを挿入。

編集後の内容は次のとおり。

 

ssh

現行のRaspbianは,デフォルトでsshによるログインが無効になっていて,モニタやキーボードを接続してローカルからログインする必要。でも,ファイル/boot/sshが存在すると,初回起動時にsshが有効になる。

以上の作業が終わったらMacからSDカードをアンマウントし,Zeroに挿入。

早速Macに繋いて動作確認。

 

Macのターミナルを起動し,次のコマンドでZeroにログインする。初期パスワードは”raspberry”。

ログインできたら、あとはLinuxとして自由に利用できる。

ネットワークに繋ぐには、Pi対応USB WiFi  ドングルを利用する。

参考

  1. http://blue-black.ink/?p=3674