はじめてのRaspberryPi
RaspberryPiとは
学校のコンピュータ教育用に開発されたSBC(シングルボードコンピュータ)です。昨年時点、全世界で累計1700万台出荷されその多くは企業が購入しています。GoogleやAmazonなどクラウド系の企業では評価ボードとして採用するなど、IoTのエッジデバイスとしてのデファクトスタンダードとなっています。また、AIの分野でもTensorFlowの最新版が利用できるようになりました。
先日の報道はこちら
TensorFlowのinstall方法はこちら
#エッジデバイス:LinuxなどのOSを搭載したインテリジェントデバイス
RaspberryPiの特徴
- 安価であること
日本円で4,500円で購入できる
SDカード、USBキーボード・マウス
HDMIディスプレイとUSB電源でコンピュータが完成する
- Linuxを搭載していること
常に最新の状態にアップデートすることができる
常に最新のアプリケーションが利用できる
- ARMアーキテクチャであること
低消費電力であり、IoT時代のプロセッサ
- 豊富なインターフェイス
GPIOと呼ばれる汎用入出力、USB、HDMI
RaspberryPiの開発・実行環境
専用のRaspbian(debian 9[stretch])が用意されている
カーネルバージョンは4.14
AI開発で良く利用されるPC版のUbuntuもdebian系であり親和性は良い
###まずSWAP領域を設定します
sudo nano /etc/dphys-swapfile
CONF_SWAPSIZE=1024 # SDが32Gであれば2048でもよい
sudo service dphys-swapfile stop
sudo service dphys-swapfile start
free -h
RaspbianのLinuxコマンド
コマンド | 説明 |
---|---|
apt | APTパッケージ管理 (update, upgrade, install) |
cd | カレントディレクトリの変更 (.. , . , -l , -a) |
ls | ディレクトリーの表示 (-l) |
mkdir | ディレクトリーの作成 |
cp | ファイルのコピー |
mv | ファイルの移動 |
cat | ファイルの連結、表示 |
chmod | ファイルのアクセス権を変更 |
chown | ファイルのオーナーを変更 |
tail | ファイルの最後の数行を表示 |
less | テキストファイルの閲覧、moreの拡張版 |
grep | パターンマッチ |
diff | 差分表示 |
dd | ファイル変換とコピー |
rm | ファイルの削除 |
find | ファイル検索 |
du | ディスク情報 |
df | ディスク空き容量 |
printenv | 環境変数の表示 |
ps | プロセス状態 |
kill | プロセス停止 |
uname | カーネル情報 |
shutdown | システム停止 |
poweroff | 電源オフ |
reboot | システム再起動 |
su | スーパーユーザーに変更 |
sudo | スーパーユーザー権限で実行 |
man | マニュアル |
top | システム監視ツール |
raspi-config | ラズパイ設定 |
dmesg | カーネルログ |
free | メモリー使用量 |
history | コマンドの履歴 |
nano | スクリーンエディタ |
Kernelをダウンロードしよう
gitでカーネルソースをダウンロードします
sudo apt install git bc
git clone --depth=1 https://github.com/raspberrypi/linux
Kernelをコンパイルしよう
カーネルの定義メニューを表示するためのライブラリーをインストールします
次にソースプログラムのディレクトリへ移動します。2500万行あります。Makefileの先頭にはVersionが表示されています。現バージョンのリビジョンアップ版です。
sudo apt install libncurses5-dev
cd linux
nano Makefile
VERSION = 4
PATCHLEVEL = 14
SUBLEVEL = 59
EXTRAVERSION =
NAME = Petit Gorille
ラズパイ用のコンフィグファイルを指定します
bcm2709の設定が.configにコピーされます
KERNEL=kernel7
make bcm2709_defconfig
メニューを起動します
Linuxカーネルを構成します
make menuconfig
カーネルイメージを作成します
-j4は4コア全てを使ってコンパイルします。約30分で終わります。
make -j4 zImage
sudo mv /boot/kernel7.img /boot/kernel7.img.org #退避
sudo cp /home/pi/linux/arch/arm/boot/zImage /boot/kernel7.img
###開発環境と便利なツール
1.マークダウンエディタ(ビューアー)
sudo apt install retext
2.Jupyter notebook
sudo pip3 install jupyter
jupyterの設定ファイルを作成するスクリプトを以下の参考サイトから取り込んで実行する
jupyterを自動実行する設定を以下の参考サイトから取り込んで実行する
設定(参考サイト)はこちら
お使いのwebブラウザから http://raspberrypi.local:8888/ にアクセスするとログイン画面が表示されます
3.SORACOM Airを使った3G通信
USBモデムを使ってインターネットに接続する
sudo apt install -y wvdial
sudo wvdial
4.Movidius (NEURAL COMPUTE STICK)
USBスティックが推論エンジンとなり高速演算が可能となる
git clone http://github.com/Movidius/ncsdk #一時的に停止中
5.日本語入力ソフトとフォントのインストール
日本語キーボードで半角/全角キーを押すことで漢字モードに切り替わります
sudo apt install ibus-mozc fonts-noto-cjk
6.Node-REDのインストール
以下のbashコマンドを実行してください
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)