fc2ブログ

4桁7セグで遊ぶ(3)

 本件、その後、しばらく遠退いていたので、久々のトライアルです。
PICに取り付けようとしていたセンサは、秋月で購入したボッシュ製のBME280を搭載した温湿度、気圧モジュールで、定番のものです・・。BME280_170320.png このモジュールはネット上にプログラムを含めて、多くの情報があります。通信方式をSPI、I2Cから選択できますが、今回はI2Cを選択しました。ピン配線は以下の通りです。BME280pin1_170320.png
BME280pin2_170320.png 参考になるプログラムをネットから拝借して、MPLAB X IDEでビルドしましたが、以下のエラーが出てしまい、原因が分からないまま、しばらく時間が過ぎてしまいました。

BSE280.c:34: error: (1250) could not find space (2 bytes) for variable _dig_P8
(908) exit status = 1

 変数用のメモリが足りないというエラーのようで、調べてみると「今さら」ですが、使用予定のPIC16F873Aのデータメモリ(ユーザが自由に使える変数およびデータエリア)が192バイトしかありませんでした。PIC16F873Aspec_170320.png 今までPICで大きなプログラムを組んだこともなく、メモリについて全く意識していなかったので、大変勉強になりました。また、7セグ制御、UART通信、センサとのI2C通信の3つを行おうと欲張り過ぎました・・。PIC自身もそれなりのスペックのものを用いなくてはならないですね。

 このPICは使えないので、リベンジは後日ということで、一旦Raspberry PiかArduinoに切り替えて動かしてみようと方針転換です。
 結局、BME280のデータ取り込みはRaspberry Piで行い、その結果をUART通信でPICに送信し、PICで7セグ表示させるようにしました。PICで7セグ表示させる部分は前回に述べた通りの配線、プログラムで行いました。Raspberry Pi周りの配線は以下の通りです。BME280_curcuit.png Raspberry Pi側のプログラムはネット上に多く出回っているのでそれを一部修正して利用しました。実験結果は以下の通りです。Result_170320.pngRaspberry Piのターミナルに結果表示し、UART通信で温度、気圧、湿度の順番にPICにデータ送信しました。ResTemp_170320.pngResPress_170320.pngResHumi_170320.png 問題なく、7セグ側に時々刻々の測定値(小数点は今回は無視)が表示されました。いつか、もう少し格好の良い(シンプルな)スタイルで組み直したいと思います・・。
スポンサーサイト



TensorFlowをセットアップする(2)

 前回の続きです。TensorFlowのインストールが成功したはずなのに、エラーが出るのは不可解と思っていました。JupyterのIPythonの設定がうまく行っておらずエラーを吐いているのではないかと考え、ターミナル上でコードを実行してみることにしました。プログラムはお決まりの4行のコードです。

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
 実行結果は以下の通りです。

Last login: Sun Mar 12 16:19:53 on ttys000
MacBook-Air:~ xxx$ source activate TensorFlow
(TensorFlow) python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 13:19:00)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.57)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.1 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use SSE4.2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use AVX2 instructions, but these are available on your machine and could speed up CPU computations.
W tensorflow/core/platform/cpu_feature_guard.cc:45] The TensorFlow library wasn't compiled to use FMA instructions, but these are available on your machine and could speed up CPU computations.
>>> print(sess.run(hello))
b'Hello, TensorFlow!'
>>>
 問題なく動きました。16行目が結果です。Jupyter内にもターミナル環境がありますので、それでも試してみましたが、こちらも問題なく動きました。1_Jupyter_terminal_run_170312.png
 ネットで原因を探していると、このサイトに関連記事がありました。結局、Anacondaの環境設定をJupyterに反映できていないことが原因でした。以下のコマンドを実行した後にJupyterを再起動しました。
source activate TensorFlow
sudo pi install ipykernel
python -m ipykernel install --user --name tensorflow --display-name "TensorFlow"
2_Jupyter_TensorFlow_menu_170312.png JupyterのFilesのNewに「TensorFlow」が新規に作成されました。何かうまくいきそうな気配です。このTensorFlowを選択し、IPython上でコードを入力し、実行しました。3_Jupyter_tensorflow_run_ok_170312.png よし!今度はエラーなく動きました。紆余曲折ありましたが、やっとのことで、セットアップは完了しました。これからボチボチTensorFlowの勉強していこうと思います。

TensorFlowをセットアップする(1)

 世の中は「何でもかんでも」AIですね。日々の新聞記事を読む限り、急速に普及して行っているのを感じています。AIによる判断、AIによる予想など夢のような話ばかりですが、現実なんですね。数年前からAIについて関心はあったのですが、技術の高さのため手を出せずにいました。
 その中で、先日、あるセミナーでAI(TensorFlowなど)の話を聞いて、個人的にますます興味を持ちました。素人が身近に?手を出せる所まで来ていたのですね。
 データ解析にRを利用しており、データを活用するために右往左往している毎日を送っているので、AIを利用できたらなと甘い期待を抱いています。下手の横好きと言われようが、AIについて深く突っ込まなくても、まずは表面的に内容を勉強して、どんなことに使えるのか知りたくなりました。

 数多くのAIに関する書籍も書店に出回っていますね。その中から、中井悦司著「TensorFlowで学ぶディープラーニング入門」を購入しました。早速、環境セットアップにトライしました。いつもながら、これまた、難儀しました。ネット上にセットアップ時のトラブルに関する情報が氾濫していて、訳も分からない内にいろいろ試していると、更におかしくなってしまいました。すんなり行かないものですね。 セットアップは、Mac環境で行うことにしました。今まで、MacBookAir(11-inch, Early 2014)をBOOTCAMPを用いて、Windows10環境で使用していましたが、久々のMacです。使っていない間のUpdateもかなり溜まっていたので、気分一新で、OSもEl CapitanからSierraにUpdateしました。

 Mac OS Xへの環境設定として、「TensorFlowで学ぶディープラーニング入門」では、Dockerという仮想環境を構築するソフトウェアをインストールし、そのDockerコンテナ上でJupyter NotebookというIPythonを実行できる環境をセットアップしています。
 私も本に記載の通りにDockerを入れ、Jupyterが問題なく起動し、Pythonの最新バージョンが動作する所まで確認できました。行けるな!と思って、TensorFlowのコードを実行すると1行目(モジュールの読み込み部分:import tensorflow as tf)からエラーです・・。環境設定がうまく行っていないからとは思いながらも原因を調べるのに時間がかかり、大変難儀していました。

 ネット検索している中で、AnacondaというPythonパッケージを一括でインストールしてくれるパッケージがあることを知りました。TensorFlowも対応しているとのこと。苦肉の末にAnacondaでセットアップをするように切り替えました。
 Anacondaのパッケージは、このサイトからMac用のdmgファイルをダウンロードして、誘導されるままにセットアップしました。1_Anacondaダウンロード_170312 セットアップ後、Anaconda-Navigaterを立ち上げました。画面はこんな感じです。2_Anaconda_start_display_170312.png Jupyterやデータ解析用に日頃使っているRのアイコンもあり、これは便利かも!と一瞬思いました。TensorFlow細かい設定についてはこのサイトを参考にさせて頂きました。ありがとうございます。

 以下、参考サイトの通りに実行した結果です。まず、TensorFlowを実行する仮想環境を作成します。Environments - Createを選択すると、Create new environmentのWindowが表示されますので、TensorFlowという名で仮想環境を作成しました。3_Anaconda_tensorflow_170312.png 仮想環境のTensorFlowが作成されました。Installedを選択すると、インストールされているパッケージ類を確認できます。4_Anconda_tensorflow_disp_170312.png 次に、参考サイトのアドバイスにある通り、登録されていないnumpyを登録します。TensorFlow - Allを選択し、目的のnumpyにチェックを入れてApplyボタンを押すだけの簡単な操作で、インストールできました。5_numpy_install_170312.png インストール後の画面はこんな感じです。6_numpy_install_disp_170312.png
 いよいよ、TensorFlowのインストールです。TensorFlow - Open Terminalを選択すると、仮想環境TensorFlow下のターミナル(黄緑色の枠)が立ち上がりました。7_Anaconda_open_terminal_170312.png pip install tensorflowコマンドを実行することでインストールを開始します。Successfully installedが表示されているので、無事にインストールされたようです。8_TensorFlow_install_170312.png
 インストールも終え、Jupyterを起動します。「Home」を選択し、Applications onを「Tensorflow」にし、「Launch」ボタンを押します。9_Jupyter起動_170312 Jupyterが起動し、IPythonでTensorFlowのコードの再確認しましたが、相変わらずエラー症状は変わりませんでした。10_Jupyter_ipython_run_err_170312.png 何が問題なのか分からないまま、ネット放浪の旅に出ました。続き(解決編)は次回に続く。

ご訪問者数

(Since 24 July, 2016)

タグクラウド


プロフィール

Dr.BobT

Author: Dr.BobT
興味のおもむくままに生涯考え続けるエンジニアでありたい。

月別アーカイブ

メールフォーム

名前:
メール:
件名:
本文: