2020年1月31日金曜日

ラズパイ(IOT・41)

今度は、Pythonで制御できるように、別のライブラリを試します。
Pythonを利用できるようにすることで、
他のモジュールとの組み合わせや、
様々な拡張が比較的簡単に作成することができます。
https://github.com/johnbryanmoore/VL53L0X_rasp_python
さっそくインストールします。
 git clone https://github.com/johnbryanmoore/VL53L0X_rasp_python.git
次にコンパイル
 cd VL53L0X_rasp_python
 make

 cd python
 sudo apt-get install python-smbus
 python VL53L0X_example.py
計測した内容が表示されました。

2020年1月30日木曜日

ラズパイ(IOT・40)

次はレーザー距離モジュールを制御できるように
ソフトウェアをインストールしてみます。
まず、API用のソフトウェアをダウウンロード
http://www.st.com/content/st_com/en/products/embedded-software/proximity-sensors-software/stsw-img005.html

次に、ラズパイで実行できるようにプロジェクトをダウンロード
git clone https://github.com/cassou/VL53L0X_rasp
パスの配置は同じフォルダに2つを置きます。
  VL53L0X_1.0.2
  VL53L0X_rasp
ライブラリをコンパイルします
 cd VL53L0X_rasp
 API_DIR=~/VL53L0X_1.0.2 make
サンプルのコンパイル
 API_DIR=~/VL53L0X_1.0.2 make examples
サンプルの実行
./bin/vl53l0x_ContinuousRanging_Example
計測した内容が表示されます。

2020年1月29日水曜日

ラズパイ(IOT・39)

ラズパイで raspi-config から Interfacing Options の
L2Cを有効にして、
配線を行うとこんな感じです。

比較的に配線以外、チャンネル等の設定も
デフォルトで試してみます。
制御側のパラメータとしては、長距離用や速度を
求めるタイプなどの指定もできるようです。

VL53L0Xは、3cmから200cmまでの距離を計測することが可能で、
秋月電子で販売されているものには、50cmのケーブル付きで
取り回しにも余裕があって使いやすかったです。

出来上がったら、センサー部分の保護フィルムを
とってから利用します。

2020年1月28日火曜日

ラズパイ(IOT・38)

センサーを使って各種連携できるように距離計測を試してみます。
距離の計測の方法も、赤外線・超音波・レーザーと色々ありますが、
温度や湿度、色や形状などに影響を受けにくいレーザーが
精度を求める場合には、おすすめです。

今回は、VL53L0Xというレーザー距離センサーモジュールを
使ってみます。

2020年1月27日月曜日

新しい機器について(色々・3)

MacMiniを使っているのですが、最近マウスの調子が悪くなってしまいました。
そこで、AppleのMagic Trackpad 2を購入してみました。

これまでは、マウスとLOGICOOLの充電式トラックパッド T651 を使ってたのですが


このロジクールのトラックパッドは、ジェスチャーにも一部対応していますが、
Apple製品でいうところの3本指で、ドラッグしたりには対応できておらず、
不便に感じていました。
あと、クリックは、台座の底部分の足がボタン式になっており、
押し下げるとクリックやドラッグを保持できるようになってます。
これも、押し下げに微妙に力がいるので、慣れない感じでした。


そこからAppleの純正へ切り替えです。
いや~、さすが純正のトラックパッド。
Macbookについているトラックパッドとまったく同じ操作感になりました。
トラックパッドの奥側にスイッチが付いているのですが、
切らないとどうせすぐにバッテリーが無くなるタイプなんだろうなぁ~
と思ってましたが、意外に数日つけっぱなしにしておいても
充電が減るような感じではないので、あまり気にしないでも
よさそうでした。
これで、快適さが回復です。(純正最高

2020年1月24日金曜日

新しい機器について(色々・2)

前回切り替えたMacbook12インチですが、
進化してました。(笑
初代のバタフライキーボードは、ほんとに突き指しそうな
感じが大変な機種でした。
今回の2017モデルでは、第二世代へと進化し全然別物ですね~
これは、最新機種が打ち切りとなったMacbookの12インチを
最後の12インチモデルとして購入するのにも十分な価値が
あるほどの違いを実感できました。
進化はすごいですね~。(もう3年まえのモデルですが)

2020年1月23日木曜日

新しい機器について(色々・1)

Macbookの12インチを買い替えました!

重すぎないし移動時にサッと出せる絶妙なサイズ感。
しかも、MacbookAirと同等の処理速度。
というより最新のAir機種より、むしろ早い。
もう、このサイズの開発をAppleが打ち切ったこともあり、
2016モデルから、最後の機種である2017モデルへ切り替えました。

Geekbench BrowserのCPUのマルチCPUのスコア
・MacBook (Early 2016)
   Intel Core m5-6Y54 @ 1.2 GHz (2 cores) :1322

・MacBook (Mid 2017)
   Intel Core i5-7Y54 @ 1.3 GHz (2 cores) :1556

・MacBook Air (Late 2018)
   Intel Core i5-8210Y @ 1.6 GHz (2 cores) :1549

最小Macの保存版として、
みなさん如何ですか?

2020年1月22日水曜日

ラズパイ(IOT・37)

まず、配線を忘れないように写真で記録~

実際のはんだ付けは、直に取り付けてもいいのですが、
今後別のラズパイに、取り付けなおしたり
移設も簡単にできるようにも
考えて、この製品にしてみました。

Raspberry Pi用ユニバーサル基板
http://akizukidenshi.com/catalog/g/gP-11073/

これをつかって、配線をすっきりさせると、こんな感じになりました。
はい!すっきり。

そのほか、基盤が増えてくると場所も
いるようになるので、重ね合わせて増設できるように
スタック用のピンも用意しておきます。

https://www.filetalk.info/index.html

2020年1月20日月曜日

ラズパイ(IOT・36)

ラズパイに外部スピーカーを作成した件で、
動作確認もできたので、
ブレッドボードから外して、固定できるように
基板にはんだ付けしてみたいと思います。

以下のようなものを使ってみます。

まずは、はんだを付けるこて
ラズパイ用にサイズ調整された基板(スタックも可能)
はんだがはみ出た時の吸い取り線
あとこれがあれば便利。はんだこての台(こて先を冷やすスポンジ付き)
余分なはんだを取ったり 、暑すぎると付きが悪くなるので、調整するのにめっちゃ便利~

https://www.filetalk.info/index.html

2020年1月17日金曜日

ラズパイ(IOT・35)

前回までで、テキストから音声合成で
しゃべれるようになりました。
そこで、今回は、コマンドにテキストを指定すると
しゃべれるように設定してみたいと思います。
コマンドから、指定できるようになると、
任意のメッセージを端末に、
しゃべらせて意思を伝える端末を
作ることができそうですね。

コマンドは、パラメータを受け取って音声合成する
ような感じになります。
#!/bin/bash

TMP=/tmp/tmp.wav
#echo "$1" | open_jtalk \
open_jtalk -m /home/pi/MMDAgent_Example-1.8/Voice/mei/mei_normal.htsvoice -x /usr/local/dic -ow /tmp/tmp.wav /home/pi/sample.txt
aplay -q /tmp/tmp.wav
rm -f /tmp/tmp.wav
https://www.filetalk.info/index.html

2020年1月15日水曜日

ラズパイ(IOT・34)

つぎに、女性の声でしゃべらせてみます。
女性の声をサンプリングされたデータをダウンロードします。
 $ wget http://downloads.sourceforge.net/project/mmdagent/MMDAgent_Example/MMDAgent_Example-1.8/MMDAgent_Example-1.8.zip
 $ unzip -q MMDAgent_Example-1.8.zip



しゃべらせたい文章を予め作成します。
 $ vi sample.txt


文章からWavファイルを作成します。
 $ open_jtalk -m ./MMDAgent_Example-1.8/Voice/mei/mei_normal.htsvoice \
             -x /usr/local/dic \
             -ow ./mei_normal.htsvoice.wav \
             sample.txt



なかなか、良い感じですね~

https://www.filetalk.info/index.html

2020年1月14日火曜日

ラズパイ(IOT・33)

つぎに、男性の声をサンプリングされたデータをダウンロードします。
 $ wget http://downloads.sourceforge.net/project/open-jtalk/HTS%20voice/hts_voice_nitech_jp_atr503_m001-1.05/hts_voice_nitech_jp_atr503_m001-1.05.tar.gz
 $ tar -zxvf hts_voice_nitech_jp_atr503_m001-1.05.tar.gz


しゃべらせたい文章を予め作成します。
 $ vi sample.txt


文章からWavファイルを作成します。
 $ open_jtalk -m ./hts_voice_nitech_jp_atr503_m001-1.05/nitech_jp_atr503_m001.htsvoice \
             -x /usr/local/dic \
             -ow ./nitech_jp_atr503_m001.htsvoice.wav \
             sample.txt



おお~、しゃべらせることができました。

2020年1月10日金曜日

ラズパイ(IOT・32)

さて、OpenJTalkをインストールしていきたいと思います。
まず、音声合成用のモジュールを入れます。

以下から、最新のモジュールを確認します。(この時点で、1.10が最新)
https://sourceforge.net/projects/hts-engine/files/hts_engine%20API/
 $ mkdir hts_engine_api
 $ cd !$
 $ curl -L http://downloads.sourceforge.net/hts-engine/hts_engine_API-1.10.tar.gz | tar zxfv -
 $ cd ./hts_engine_API-1.10
 $ ./configure
 $ make && sudo make install
 $ which hts_engine


そして、OpenJTalkをインストールします。
以下から、最新のモジュールを確認します。(この時点で、1.11が最新)
http://open-jtalk.sourceforge.net/
 $ wget http://downloads.sourceforge.net/open-jtalk/open_jtalk-1.11.tar.gz
 $ tar zxvf open_jtalk-1.11.tar.gz
 $ cd open_jtalk-1.11
 $ ./configure --with-charset=UTF-8 --with-hts-engine-header-path=/home/pi/hts_engine_api/hts_engine_API-1.10/include --with-hts-engine-library-path=/home/pi/hts_engine_api/hts_engine_API-1.10/lib
 $ make
 $ sudo make install
 $ which open_jtalk
 $ cd ../
 $ wget http://tenet.dl.sourceforge.net/project/open-jtalk/Dictionary/open_jtalk_dic-1.11/open_jtalk_dic_utf_8-1.11.tar.gz
 $ tar zxvf open_jtalk_dic_utf_8-1.11.tar.gz
 $ sudo mkdir /var/lib/mecab
 $ sudo mkdir /var/lib/mecab/dic
 $ sudo cp -r open_jtalk_dic_utf_8-1.11 /var/lib/mecab/dic



2020年1月9日木曜日

ラズパイ(IOT・31)

遠隔地から操作して、しゃべらせたりにも使えるように
ラズパイで音声合成を行ってみたいと思います。

また、色々、サンプルの再生やWebサイトをみて、
なめらかに発音できていたり、ライセンス的に問題が
少ないもので利用しやすいものとしまして、
OpenJTalkが一番よさげでしたので、
こちらを試してみます。

デモサイト:http://open-jtalk.sp.nitech.ac.jp/
公式サイト:http://open-jtalk.sourceforge.net/


2020年1月8日水曜日

ラズパイ(IOT・30)

PythonからMySQLへのアクセス用のライブラリに
mysqlclient を使っていましたが、
やはり、本家が出しているライブラリが気になったので
こちらを使ってみたいと思います。

インストールは、以下を行います。
$ pip install mysql-connector-python

利用した感覚としましては、前回のmysqlclientと大差ない
ような感じですが、今後の開発やサポートのことも
考えるとこちらのほうがよさそうですね~

https://www.filetalk.info/index.html

2020年1月7日火曜日

ラズパイ(IOT・29)

お次は、各種ライブラリが豊富で、いざという時に役に立つ
Pythonからデータをいじれるように
MySQLにアクセスできるようにしてみます。

Python用のMySQLへ接続するためのライブラリは
色々ありますが、よく使われているところと、
更新対応が続いていてサポートが安心な、mysqlclient を
使ってみます。

インストールは以下から
sudo pip3 install mysqlclient

接続と実行は以下のような形になります。
フィールドへのパラメータもスムーズに利用できそうです。
トランザクション等は、オートコミットをOFFにすることで、
ロールバックさせる感じのようですね~
import MySQLdb
import time
import datetime

if (__name__ == "__main__"):
    conn = MySQLdb.connect(
        user='root',
        passwd='****',
        host='localhost',
        db='xxxxx',
        charset='utf8'
    )
    conn.autocommit(False)
    cur = conn.cursor()
    
    cnt = 0
    while True:
        try:
            cur.execute('SELECT * FROM table')
            result = cur.fetchall()
            for row in cur:
                print(row)
        except Exception as e:
            conn.rollback()
            raise e
        finally:
        
        cnt += 1
        dt_now = datetime.datetime.now()
        print('No:', cnt, dt_now)
        time.sleep(600.0)
        
    cur.close()
    conn.close()

10分毎に内容を出力するスクリプトを書いてみましたが、
今のところコネクションが途切れる様子は無いようです。