Ubuntu14.04にKeras with Tensorflow(GPU)をインストール
こちらの記事でMacbook ProにKerasをインストールしてみましたが、 あまりディープでないCNNでも学習が終わらず、 GPUの乗っているUbuntu14.04にKerasをインストールしてみました。
Ubuntu14.04にGPU(CUDA、cuDNN)をセットアップする方法は以下の記事に書きました。 グラボはGeForce GTX 660(2GB)です。
セットアップ
Tensorflow
GPUを使うためには、以下の環境変数をインストール前に登録しておく必要があります。
# ~/.bashrc export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/gpu/tensorflow_gpu-0.12.1-cp27-none-linux_x86_64.whl export CUDA_HOME=/usr/local/cuda
登録後は以下のコマンドで環境変数を読み込みます。
$ source ~/.bashrc
インストールはmacにインストールした時と同様に pip コマンドでインストールします。
$ pip install tensorflow
scipyインストール
scipyはKerasをインストールすると自動で入るはずですが、 Kerasのインストールでscipyがこけているようだったので、別途インストールしました。 同様にnumpyでこける方もいるようです。
scipyのインストールは以下のコマンドで行います。
$ apt-get install python-scipy
matplotlibインストール
plot用に必要となるmatplotlibですが、こちらもmacと同様にpipでインストールします。 事前に必要となるpydotとgraphvizもインストールしておきます。
$ pip install pydot_ng $ apt-get install graphviz $ pip install matplotlib
Kerasインストール
最後にKerasをインストールします。
$ pip install keras
テスト
Tensorflow
以下のようにimportをして正常にインストールされているか確認します。
$ python >>> import tensorflow as tf
これを実行してみてエラーが出なければOKです。
Keras
macの時と同様に、こちらのMNISTのサンプルプログラムを実行してみます。
keras/mnist_mlp.py at master · fchollet/keras · GitHub
ダウンロードしてtest.pyとして保存します。(名前はなんでも良いです。)
$ python test.py Using TensorFlow backend. I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcublas.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcudnn.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcufft.so locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcuda.so.1 locally I tensorflow/stream_executor/dso_loader.cc:128] successfully opened CUDA library libcurand.so locally 60000 train samples 10000 test samples ____________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ==================================================================================================== dense_1 (Dense) (None, 512) 401920 dense_input_1[0][0] ____________________________________________________________________________________________________ activation_1 (Activation) (None, 512) 0 dense_1[0][0] ____________________________________________________________________________________________________ dropout_1 (Dropout) (None, 512) 0 activation_1[0][0] ____________________________________________________________________________________________________ dense_2 (Dense) (None, 512) 262656 dropout_1[0][0] ____________________________________________________________________________________________________ activation_2 (Activation) (None, 512) 0 dense_2[0][0] ____________________________________________________________________________________________________ dropout_2 (Dropout) (None, 512) 0 activation_2[0][0] ____________________________________________________________________________________________________ dense_3 (Dense) (None, 10) 5130 dropout_2[0][0] ____________________________________________________________________________________________________ activation_3 (Activation) (None, 10) 0 dense_3[0][0] ==================================================================================================== Total params: 669,706 Trainable params: 669,706 Non-trainable params: 0 ____________________________________________________________________________________________________ Train on 60000 samples, validate on 10000 samples Epoch 1/20 I tensorflow/core/common_runtime/gpu/gpu_device.cc:885] Found device 0 with properties: name: GeForce GTX 660 major: 3 minor: 0 memoryClockRate (GHz) 1.0975 pciBusID 0000:01:00.0 Total memory: 1.95GiB Free memory: 1.67GiB I tensorflow/core/common_runtime/gpu/gpu_device.cc:906] DMA: 0 I tensorflow/core/common_runtime/gpu/gpu_device.cc:916] 0: Y I tensorflow/core/common_runtime/gpu/gpu_device.cc:975] Creating TensorFlow device (/gpu:0) -> (device: 0, name: GeForce GTX 660, pci bus id: 0000:01:00.0) 60000/60000 [==============================] - 3s - loss: 0.2434 - acc: 0.9248 - val_loss: 0.1119 - val_acc: 0.9637 Epoch 2/20 60000/60000 [==============================] - 3s - loss: 0.1015 - acc: 0.9694 - val_loss: 0.0801 - val_acc: 0.9748 Epoch 3/20 60000/60000 [==============================] - 3s - loss: 0.0746 - acc: 0.9776 - val_loss: 0.0874 - val_acc: 0.9740 Epoch 4/20 60000/60000 [==============================] - 3s - loss: 0.0581 - acc: 0.9825 - val_loss: 0.1001 - val_acc: 0.9729 Epoch 5/20 60000/60000 [==============================] - 3s - loss: 0.0510 - acc: 0.9844 - val_loss: 0.0951 - val_acc: 0.9771 Epoch 6/20 60000/60000 [==============================] - 3s - loss: 0.0442 - acc: 0.9868 - val_loss: 0.0874 - val_acc: 0.9792 Epoch 7/20 60000/60000 [==============================] - 2s - loss: 0.0366 - acc: 0.9882 - val_loss: 0.0887 - val_acc: 0.9793 Epoch 8/20 60000/60000 [==============================] - 3s - loss: 0.0341 - acc: 0.9897 - val_loss: 0.0916 - val_acc: 0.9801 Epoch 9/20 60000/60000 [==============================] - 3s - loss: 0.0327 - acc: 0.9907 - val_loss: 0.0840 - val_acc: 0.9826 Epoch 10/20 60000/60000 [==============================] - 3s - loss: 0.0288 - acc: 0.9913 - val_loss: 0.0884 - val_acc: 0.9833 Epoch 11/20 60000/60000 [==============================] - 3s - loss: 0.0258 - acc: 0.9927 - val_loss: 0.0876 - val_acc: 0.9844 Epoch 12/20 60000/60000 [==============================] - 3s - loss: 0.0247 - acc: 0.9928 - val_loss: 0.0984 - val_acc: 0.9822 Epoch 13/20 60000/60000 [==============================] - 3s - loss: 0.0244 - acc: 0.9934 - val_loss: 0.0949 - val_acc: 0.9836 Epoch 14/20 60000/60000 [==============================] - 3s - loss: 0.0222 - acc: 0.9939 - val_loss: 0.0959 - val_acc: 0.9837 Epoch 15/20 60000/60000 [==============================] - 3s - loss: 0.0210 - acc: 0.9940 - val_loss: 0.0892 - val_acc: 0.9835 Epoch 16/20 60000/60000 [==============================] - 2s - loss: 0.0192 - acc: 0.9947 - val_loss: 0.0953 - val_acc: 0.9834 Epoch 17/20 60000/60000 [==============================] - 3s - loss: 0.0191 - acc: 0.9948 - val_loss: 0.1119 - val_acc: 0.9840 Epoch 18/20 60000/60000 [==============================] - 3s - loss: 0.0216 - acc: 0.9944 - val_loss: 0.1086 - val_acc: 0.9830 Epoch 19/20 60000/60000 [==============================] - 3s - loss: 0.0179 - acc: 0.9952 - val_loss: 0.1180 - val_acc: 0.9829 Epoch 20/20 60000/60000 [==============================] - 3s - loss: 0.0200 - acc: 0.9949 - val_loss: 0.1069 - val_acc: 0.9842 Test score: 0.106886059585 Test accuracy: 0.9842
Macbook ProにKeras with Tensorflowをセットアップ
Keras良くない?って話を聞くことが多くなってきたので、KerasをMacbook Proにインストールして試してみたいと思います。 もちろんMBPなので、GPUなしです。 KerasはTensorflowかTheanoの上で動作するニューラルネットワークライブラリだそうです。
公式に日本語のドキュメントもあり、セットアップでつまづくことはあまりないかと思います。
セットアップ
Tensorflowインストール
まずは、Tensorflowをインストールします。
Installing TensorFlow | TensorFlow
私のmacにはanacondaでpythonが入っているのでそのままpipでインストールします。
$ pip install tensorflow
以上でインストールは終了です。
Tensorflowの環境に入るには以下のコマンドを実行します。
$ source activate tensorflow
環境から抜ける場合は、以下のコマンドを実行します。
$ source deactivate
Kerasインストール
こちらもpipでインストールできます。
$ pip install keras
Kerasバックエンド変更
バックエンドの変更は不要になりました。デフォルトでTensorflowが動作します。
Kerasのバックエンドで動作するライブラリーを変更します。
# ~/.keras/keras.json "backend": "tensorflow"
このように書き換えます。
その他ライブラリーインストール
これ以外にも必要なライブラリーをインストールします。
- h5 モデルを保存する際に使います。
$ pip install h5py
- matplotlib 学習結果などを描画する際に使います。
$ brew install graphviz $ pip install pydot_ng $ pip install matplotlib
このようなエラーが出る場合は、下記の記事を参照。
RuntimeError: Python is not installed as a framework
テスト
Tensorflow
以下のようにimportをして正常にインストールされているか確認します。
$ python >>> import tensorflow as tf
これを実行してみてエラーが出なければOKです。
Keras
こちらのMNISTのサンプルプログラムを実行してみます。
keras/mnist_mlp.py at master · fchollet/keras · GitHub
ダウンロードしてtest.pyとして保存します。(名前はなんでも良いです。)
$ python test.py Using TensorFlow backend. 60000 train samples 10000 test samples ____________________________________________________________________________________________________ Layer (type) Output Shape Param # Connected to ==================================================================================================== dense_1 (Dense) (None, 512) 401920 dense_input_1[0][0] ____________________________________________________________________________________________________ activation_1 (Activation) (None, 512) 0 dense_1[0][0] ____________________________________________________________________________________________________ dropout_1 (Dropout) (None, 512) 0 activation_1[0][0] ____________________________________________________________________________________________________ dense_2 (Dense) (None, 512) 262656 dropout_1[0][0] ____________________________________________________________________________________________________ activation_2 (Activation) (None, 512) 0 dense_2[0][0] ____________________________________________________________________________________________________ dropout_2 (Dropout) (None, 512) 0 activation_2[0][0] ____________________________________________________________________________________________________ dense_3 (Dense) (None, 10) 5130 dropout_2[0][0] ____________________________________________________________________________________________________ activation_3 (Activation) (None, 10) 0 dense_3[0][0] ==================================================================================================== Total params: 669,706 Trainable params: 669,706 Non-trainable params: 0 ____________________________________________________________________________________________________ Train on 60000 samples, validate on 10000 samples Epoch 1/20 60000/60000 [==============================] - 10s - loss: 0.2447 - acc: 0.9237 - val_loss: 0.1253 - val_acc: 0.9611 Epoch 2/20 60000/60000 [==============================] - 10s - loss: 0.1027 - acc: 0.9694 - val_loss: 0.0799 - val_acc: 0.9739 Epoch 3/20 60000/60000 [==============================] - 11s - loss: 0.0751 - acc: 0.9774 - val_loss: 0.0729 - val_acc: 0.9783 Epoch 4/20 60000/60000 [==============================] - 10s - loss: 0.0615 - acc: 0.9815 - val_loss: 0.0852 - val_acc: 0.9761 Epoch 5/20 60000/60000 [==============================] - 10s - loss: 0.0514 - acc: 0.9846 - val_loss: 0.0847 - val_acc: 0.9800 Epoch 6/20 60000/60000 [==============================] - 9s - loss: 0.0457 - acc: 0.9861 - val_loss: 0.0866 - val_acc: 0.9791 Epoch 7/20 60000/60000 [==============================] - 9s - loss: 0.0398 - acc: 0.9881 - val_loss: 0.0778 - val_acc: 0.9810 Epoch 8/20 60000/60000 [==============================] - 9s - loss: 0.0351 - acc: 0.9897 - val_loss: 0.0853 - val_acc: 0.9821 Epoch 9/20 60000/60000 [==============================] - 9s - loss: 0.0327 - acc: 0.9905 - val_loss: 0.0933 - val_acc: 0.9796 Epoch 10/20 60000/60000 [==============================] - 9s - loss: 0.0283 - acc: 0.9914 - val_loss: 0.0911 - val_acc: 0.9822 Epoch 11/20 60000/60000 [==============================] - 9s - loss: 0.0285 - acc: 0.9920 - val_loss: 0.1031 - val_acc: 0.9829 Epoch 12/20 60000/60000 [==============================] - 9s - loss: 0.0241 - acc: 0.9931 - val_loss: 0.0992 - val_acc: 0.9814 Epoch 13/20 60000/60000 [==============================] - 9s - loss: 0.0250 - acc: 0.9931 - val_loss: 0.1169 - val_acc: 0.9797 Epoch 14/20 60000/60000 [==============================] - 10s - loss: 0.0233 - acc: 0.9936 - val_loss: 0.1019 - val_acc: 0.9819 Epoch 15/20 60000/60000 [==============================] - 11s - loss: 0.0184 - acc: 0.9945 - val_loss: 0.0945 - val_acc: 0.9830 Epoch 16/20 60000/60000 [==============================] - 10s - loss: 0.0188 - acc: 0.9947 - val_loss: 0.1066 - val_acc: 0.9818 Epoch 17/20 60000/60000 [==============================] - 10s - loss: 0.0188 - acc: 0.9946 - val_loss: 0.1090 - val_acc: 0.9846 Epoch 18/20 60000/60000 [==============================] - 10s - loss: 0.0193 - acc: 0.9953 - val_loss: 0.1127 - val_acc: 0.9820 Epoch 19/20 60000/60000 [==============================] - 9s - loss: 0.0176 - acc: 0.9951 - val_loss: 0.1204 - val_acc: 0.9823 Epoch 20/20 60000/60000 [==============================] - 9s - loss: 0.0162 - acc: 0.9957 - val_loss: 0.1248 - val_acc: 0.9829 Test score: 0.124780163151 Test accuracy: 0.9829
MBP(core i7 @2.8GHz)だと20epochで200秒くらいで終わります。
Ubuntu14.04にChainer、CUDA8.0の環境を構築
Ubuntu14.04にChainerとCUDAの環境を構築したのでその記録を残しときます。 環境構築で手間取り2日くらいかかってしまいました。
まずWindows10でやってみましたが、途中挫折。その後、CentOS7でやってみて、また挫折。 以下は、最後にUbuntuに挑戦してみた結果です。
- 環境
- OS構築
- ドライバー、ライブラリー ダウンロード
- ツールインストール
- nouveau無効化
- CUIでOS起動
- GPUドライバーインストール
- CUDA toolkitインストール
- cuDNNインストール
- 環境変数追加
- pipインストール
- Chainerインストール
- エラー
- GPUテスト
- 結果
- その他(無関係)
環境
OS構築
Ubuntuを通常通りインストールします。
文字化けが嫌なので英語環境をインストールしました。
ドライバー、ライブラリー ダウンロード
起動後、FirefoxでNVIDIAの公式サイトより以下のファイルをダウンロードしておきます。
- グラフィックボードドライバー(NVIDIA-LINUX-x86_64-375.26.run)
- cuda toolkit(cuda_8.0.44_linux.run)
- cuDNN(cudnn-8.0-linux-x64-v5.1.tgz)
ツールインストール
先にコンパイラーなどを入れておきます。
$ sudo apt-get install build-essential
nouveau無効化
NVIDIAのドライバーと競合するので、 デフォルトで入っているGPUドライバーを無効化します。
# sudo vi /etc/modprobe.d/blacklist-nouveau.conf blacklist nouveau blacklist lbm-nouveau options nouveau modeset=0 alias nouveau off alias lbm-nouveau off
# sudo vi /etc/modprobe.d/nouveau-kms.conf options nouveau modeset=0
$ sudo update-initramfs -u
CUIでOS起動
# sudo vi /etc/default/grub # GRUB_CMDLINE_LINUX_DEFAULT="splash quiet" # 削除 GRUB_CMDLINE_LINUX_DEFAULT="text" # 追加
grub更新後、再起動します。
$ sudo update-grub
GPUドライバーインストール
以下、ディレクトリー名は適宜読み替えてください。 終了後、再起動します。
$ cd Downloads $ chmod +x ./NVIDIA-Linux-x86_64-<version>.run $ sudo ./NVIDIA-Linux-x86_64-<version>.run $ sudo reboot
CUDA toolkitインストール
こちらも終了後、再起動します。
インストールしていると、ドライバーのバージョンがダメですのでインストールしますか?と言われたので、ドライバーもインストールしました。
$ cd Downloads $ chmod +x ../cuda_<version>_linux.run $ sudo ./cuda_<version>_linux.run $ sudo reboot
cuDNNインストール
ダウンロードしたファイルを解凍して、CUDAインストールディレクトリーにコピーします。
$ tar xvf cudnn-8.0-linux-x64-<version>.tgz $ sudo cp cuda/include/* /usr/local/cuda-8.0/include $ sudo cp cuda/lib64/* /usr/local/cuda-8.0/lib64
環境変数追加
環境変数を追加します。
# ~/.bashrc export CUDA_PATH=/usr/local/cuda-8.0 export PATH=$CUDA_PATH/bin:$PATH export LD_LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH export CPATH=$CUDA_PATH/include:$CPATH export LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH export LD_LIBRARY_PATH=$CUDA_PATH/lib64:$LD_LIBRARY_PATH export CFLAGS=-I/usr/local/cuda-8.0/include export LDFLAGS=-L/usr/local/cuda-8.0/lib64
完了後、再読み込みします。
$ source ~/.bashrc
pipインストール
普通にapt-getでインストールします。
$ sudo apt-get install python-pip
Chainerインストール
デバッグ情報まで表示できるようにvvvvをつけます。また、キャッシュを読み込んで変な動作をしても嫌なのでno-cacheをつけておきます。
$ pip install chainer --no-cache -vvvv
エラー
Chainerのインストールで以下のエラーが出ました。
Python.hがない
No such file or directory #include "Python.h"
とのことでした。
$ sudo apt-get install python-dev
これをインストールすると動きました。
GPUテスト
サンプルのMNISTを実行してみます。
$ sudo apt-get install git $ cd $ git clone htttps://github.com/pfnet/chainer $ cd chainer/examples/mnist $ python train_mnist.py -g 0
結果
CPUでは約15分ほどかかっていましたが、GPUでは約75秒で完了しました。速い!
その他(無関係)
コーディングなどは別のPCで行いたいのでsshをインストールして、ファイル等のやり取りをできるようにします。
$ sudo apt-get install ssh
また、Permission Deniedで怒られるのが嫌なので通常はrootで作業できるようにします。Ubuntuはrootでログインできないので、以下のようにしてrootアカウントにパスワードを設定します。
$ sudo su - $ passwd [root password] [re-type root password] $ exit $ su [root password]
セキュリティ上、sshの設定は別途行う必要があります。
また、通常の用途では、rootはログインしないようにしておいて、必要な場合のみ、sudoでコマンド実行する方が良いです。
ただ、今回は、オフラインでサーバーを使っていくので、利便性をとりました。
2016年 買ってよかったもの 買わなくてよかったもの
Amazonの購入履歴を見ると2016年に561件の注文がありました。 日に1件以上購入している計算になります。(ヤマトさんいつもありがとうございます。)
もちろん全てが全て届く物ではなく、Kindleの電子書籍も多数含まれております。
その中で買ってよかったと思う物と、買わなくてよかった物をピックアップしてご紹介したいと思います。 個人の見解ですので、全ての人に当てはまるわけではありません。
買ってよかった物
小型ドローン
面白すぎでした!ドローン自体が初だったのですが、面白すぎて大きいドローンをすぐに買ってしまいました。この小型ドローン自体は2日で壊れましたが、価格が手頃でドローンを体験するにはいいと思います。
USBケーブル
cheero Fabric braided USB Cable with micro USB 2本セット 50cm + 100cm
- 出版社/メーカー: cheero
- メディア: エレクトロニクス
- この商品を含むブログを見る
長さの違う2本が入っていて便利です。ケーブル部分も編み込み状になっててオシャレです。iPhone版もあります。
フェイスシェーバー
パナソニック フェイスシェーバー フェリエ 白 ES-WF60-W
- 出版社/メーカー: パナソニック(Panasonic)
- 発売日: 2014/04/21
- メディア: ホーム&キッチン
- この商品を含むブログを見る
顔の産毛が予想以上にスムーズに剃れます。気持ちいです。
茶筒
- 出版社/メーカー: 江東堂高橋製作所
- メディア: ホーム&キッチン
- この商品を含むブログを見る
作りがしっかりしていてスーッと閉まるのに感動します。ルピシアのお茶50gがちょうどいい感じで入ります。
VRメガネ
Hqing VRメガネ 3D スマホ ゲーム 映画 ビデオ ゴーグル 超3D映像効果 仮想現実 頭部装着 4?6インチのAndroidやIOSスマホ適用 G-VR002 (黒 二代)
- 出版社/メーカー: 【Hqing】
- メディア: エレクトロニクス
- この商品を含むブログを見る
コンテンツがまだまだないので、これからに期待ですが、Google公式のいろいろな場所を旅行出来るアプリなど面白いです。
ティーメーカー
HARIO (ハリオ) ワンカップティーメーカー 200ml ブラック OTM-1B
- 出版社/メーカー: ハリオ
- メディア: ホーム&キッチン
- 購入: 16人 クリック: 84回
- この商品を含むブログ (16件) を見る
ちょうど一杯分のお茶を簡単にいれることができます。3つ買ってしまいました。
買わなくてよかった物
ルンバ
iRobot Roomba 自動掃除機ルンバ870 ピューターグレー 870 【日本仕様正規品】
- 出版社/メーカー: iRobot (アイロボット)
- メディア: その他
- この商品を含むブログを見る
タイムセールで安くなっててつられて買ってしまいましたが、 冬になってコタツを出すとルンバの活動できるところがなくなり、めっきり使わなくなりました。 春になったらまた再始動させます。
Wii U
- 出版社/メーカー: 任天堂
- 発売日: 2015/09/10
- メディア: Video Game
- この商品を含むブログ (12件) を見る
スプラトゥーンを2、3日やってお蔵入り。
まとめ
大きい買い物をするのが下手な自分。
PythonでRaspberry PiのI2C通信
PythonでRaspberry PiのI2C通信を行った際のメモになります。
I2Cツールインストール
sudo apt-get install i2c-tools
I2Cディバイス接続確認
sudo i2cdetect -y 1
SMBusインストール
sudo apt-get install python-smbus
Raspberry Pi 3 セットアップ(Raspberry Pi 1/2も同じ手順でOK)
Raspberry Piをセットアップした際のメモになります。
SDカード準備
URL参照
pictzzz.hatenablog.com
起動
USBから給電を開始すると、自動的にOSが起動します。
必要なディバイス(ディスプレイ、キーボード、LANケーブルなど)は電源を入れる前に接続しておきます。
ログイン
raspberrypi login:
と表示されたら、ユーザー名「pi」、パスワード「raspberry」でログインします。
ソフトウェアのアップデート
有線LANが接続されており、DHCPでIPアドレスがもらえる場合です。 無線LANなどの場合は、ネットワークの設定から行う必要があります。
sudo apt-get update sudo apt-get upgrade
アップデートが失敗する場合、ネットワークに接続されているかを確認します。
ping www.google.co.jp
応答がない場合、IPアドレスが正しく割り振られているかを確認します。
ifconfig
でeth0のinet addrにIPアドレスが付与されているかを確認します。
付与されていない場合、先にネットワークの設定 or 設定の見直しが必要です。
VIMインストール(好み)
sudo apt-get install vim
SSH設定
sudo raspi-config
5 Interfacing Options > P2 SSH > Yes > Ok
I2C設定
sudo raspi-config
5 Interfacing Options > P5 I2C > Yes > Ok
ローカライズ
タイムゾーン
sudo raspi-config
4 Localisation Options > I2 Change Timezone > Asia > Tokyo
キーボード
sudo raspi-config
4 Localisation Options > I3 Change Keyboard Layout > Generic 105-key (Intl) PC > Other > Japanese > Japanese > The default for the keyboard layout > No compose key
WiFi利用国選択
sudo raspi-config
4 Localisation Options > I4 Change Wi-fi Country > JP Japan > Ok
SD領域拡張
sudo raspi-config
1 Expand FileSystem > Ok
再起動
sudo reboot
無線LAN設定
sudo sh -c 'wpa_passphrase SSID PASSPHRASE >> /etc/wpa_supplicant/wpa_supplicant.conf'
オシロスコープ
電子工作をする上でオシロスコープがあると便利かなぁと前々から思っていたのですが、値段が高くてなかなか手が出せてませんでした。
Amazonで電子部品を探していると、このオシロスコープが出てきました。
自作キットなので、自分で半田付けをしなければなりませんが、2700円と格安。 とりあえず、使い物になるかわかりませんでしたが、安かったので買ってみることに。
このように基板とパーツ、LCDがセットになっています。
なので作る時&使う時には、以下のものが必要です。
- 半田ゴテ(細め)
- 半田
- テスター
- 9V電源(センタープラス)
作るのはマニュアルがあるので、それに従っていけば完成します。
電子部品を全部取り付けたところです。 細かいチップを取り付けるのが難しかったです。
あとはピンをLCDと基板に取り付ければ完成です。
半田付けに慣れていれば簡単にできると思います。
テスターは抵抗値を読めるものがあると便利です。 いちいちカラーコードを読むのは面倒ですので。
9Vの電源は秋月電子で買いました。
超小型スイッチングACアダプター9V1.3A 100V〜240V GF12−US0913: 電源一般 秋月電子通商 電子部品 ネット通販