副部長の部屋

最近python始めたので、雑記帳代わりにします。 まとまり無くいきますのでよろしくです!! 後日、まとめます(笑)

NB100のlinux mint17.2に初めにやっておくべきことをしてみた その2(日本語入力)

ども副部長です!!
以前にLinux mintの初期設定を記事にしたのですが、

mintotab11865.hatenablog.com

日本語入力に関しては、してませんでした。
遅いパソコンですので、ブラウザをそんなに使用しなかったので必要性を感じなかったんですよね。
ですが、色々不便なので設定してみました。
以下が、参考ページです。

mizna.hatenablog.com

設定終了して入力してみたのですがうまくいかなかったのですが、パソコンを再起動したら日本語入力可能になってました!
やはり日本語入力も出来るといいですね!


では!!

在庫管理をPostgreSQLで作ってみた その2(PythonでPostgreSQLに接続)

ども副部長です!!
順調に進んでいますが、SQLを一から勉強してるのでブログ書けるほどのものは特にないですね。(笑)
SQLはまだ基礎なので、pythonとの連携について記述します。
postgreSQLpythonで接続するには、何種類かあるみたいです。
調べたうえで、一番良さそうなのが、psycopg2みたいです。
pipでインストールする方法がネットでは書かれていますが、anacondaであるみたいです。
たぶんconda installでいけそうですね。

f:id:mintotab11865:20181009103447p:plain

自分は、探したついでにそのままナビゲーターで入れました。
操作方法は、

h2shiki.hateblo.jp

を、参考にさせていただきました。
その中でも書かれてますが、この記事が色々参考になるみたいです。

www.ashisuto.co.jp

SQLの勉強も進めますが、これを使いpythonでも接続をして進めていきます。

では!!

パソコン同士でのデーターの受け渡しを考えてみる(なんちゃってパソコン通信)

ども副部長です!!

SQLは現在勉強中なので、仕上がりがいつになるか検討つきません。(笑)
まあ、1回目よりは短期間で出来るでしょう・・・。
CSVを使用した、なんちゃって在庫管理は出来てるのですが、データベースと言えば、やはりSQL使ってみたいですよね。

さて今回は、なんちゃってパソコン通信を考えてみます。
なぜこんなこと考えたかというと、ラズベリーパイがやっぱりおバカだからです。(笑)
画像処理とか計算量が増えると、やはり重いですよね。
なので、計算パワーがある普通のパソコン(ノートでもデスクトップでも)に処理を任せて、ラズベリーパイにはGPIOの出力のみを任せて、機械制御をしたほうがいいのではないかってことです。
テストの為、短時間で作ったので、インポートが多いとか詰めが甘いとかは、大目に見てください。(笑)


まずは、CSV(連携.csv)を用意。

,signal,on
0,signal1,0
1,signal2,0
2,signal3,0


そして、検知側(普通のパソコン側)

import numpy as np
import pandas as pd
import csv
import tkinter as tk
from datetime import datetime
import time

#csvの設定
signal_csv = '//データーのあるフォルダー/連携.csv'

signal_number = 0

df = pd.read_csv(signal_csv,
                     index_col=0, engine='python')
while True:
    try:
        swich = df.at[signal_number, "on"]
        if swich == 0:
            print("ONにします")
            df.at[signal_number,"on"] = 1
            df.to_csv(signal_csv, mode='w', encoding='cp932')
        else:
            print("OFFにします")
            df.at[signal_number, "on"] = 0
            df.to_csv(signal_csv, mode='w', encoding='cp932')
    except :
        print("エラーだね")
    time.sleep(1)

今回は、1秒ごとにON、OFFを繰り返し検出しているという仮定です。
検知すれば、CSVに書き込みします。
なお、encoding='cp932'は、Windowsパソコンの為みたいなので、Linuxとかは違うみたい。

次に、GPIO側(ラズベリーパイ側)

import numpy as np
import pandas as pd
import csv
import tkinter as tk
from datetime import datetime
import time

#csvの設定
signal_csv = '//データーのあるフォルダー/連携.csv'

signal_number = 0

while True:
    try:
        df = pd.read_csv(signal_csv,
                         index_col=0, engine='python')
        swich = df.at[signal_number, "on"]
        if swich == 0:
            print("機械はそのまま操業します")
        else:
            print("機械に非常停止を送ります")
    except:
        print("エラーだね")

コード内には、GPIOの記述がありませんが、パソコン側が書き込んだCSVを見ているので、通信出来てるってことで良いのではないでしょうか。
なお、ラズベリーパイ側はtry exceptが無いと、プログラムを回してる間にエラーで止まります。
0.1秒ごとに読みに行くとか、時間間隔を取ってやってみたのですが、やはりタイミング良く、書き込み中などにぶち当たるみたい(推測)
CSVの書き込みを増やせば、何台だって行けそうです。(全然違う複数プログラムがCSVを中心にそれぞれが目的のパソコン向いて通信出来そう??)
まあ~素人考えなので、もっと良い方法あるんでしょうけどね(笑)
取り急ぎの思い付きでした。

結論

シリアル接続とか難しいこと考えなくても無線LANCSVで何とかなる!!!(横着)


ではでは!!

在庫管理をPostgreSQLで作ってみた その1

ども副部長です!!
第一弾のプログラムがほぼ完成し、つぎのプロジェクト始動です。

それは、
『在庫管理をPostgreSQLで作る!!』です!!

運用のデザインは、
まず、バーコード入力で簡単入出庫を目指します。
参考書は、 『SQL 第2版 ゼロからはじめるデータベース操作』

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

SQL 第2版 ゼロからはじめるデータベース操作 (プログラミング学習シリーズ)

です。

まず、注意するのは、インストール時の設定を、
program filesフォルダーではなく、cドライブに直接入れるみたい。

さあ!頑張るぞ!!

ではでは

Windows 10のリモートデスクトップ接続がすごく遅い件

ども!副部長です!!
昨日、pythonで作った第1作目のプログラムを本番運用しました!
リアクションは、まあまあだったんでヨシとします。
実装画面はそれほど大したものでは無いのですが、年始からpythonを勉強し始めて丸9カ月掛かってるんですよね。
すごく苦労しましたよ!!
詳細については、後日書きますね。


さて、本題のWindows10のリモートデスクトップ接続の件ですが、自分が試した状況をします。

ラズベリーパイ3モデルBにUSBカメラを付け、Open CVにて赤色検出をした結果を表示させます。
ラズベリーパイにはディスプレイを繋げてないので、無線LANルーター(インターネット未接続)を経由して、ノートブックパソコン(ASUS TranceBook T100H)にてリモートデスクトップ接続してラズベリーパイのデスクトップを丸ごと見てしまおうと、考えてました。
いざ、pythonを実行するが、遅い・・・
すごく遅い・・・
自宅のメインパソコンで試験を繰り返しましたが、それほどでは無かったのですが・・・
ラズベリーパイの熱対策、無線LANルーターの位置変更、リモートデスクトップ接続の画面サイズの変更、pythonプログラムの軽量化等、様々な対策を講じるがさほど変わらず・・・
むしろ、長期運用テスト(数時間)をしていくと、もう役に立たないくらい遅くなる・・・
ウインドウ一つ開く(エクスプローラーでファイル場所を表示)のにも、劇的に遅い!
いかにも、『ラズベリーパイがバカだからどうしようもないんだよ』とノートブックパソコンが言ってるように・・・

しか~~~し!!

色々調べていく結果、Windowsのデスクトップ接続自体が原因なことが判明!!!

engineer-world.duckdns.org
多分、これで早くなることでしょう・・・
試してないんですよね・・・
結局、横にあったLinux mintを入れたNB100を使用しました。
設定は以下の通り

k99-tech.com
おバカな10年前のネットブックパソコンでも余裕で使えます!!

結論(現時点での自己流)

1.リモートデスクトップ接続はlinux同士が速いし、楽だし、リモート側とホスト側の入れ替えが簡単!
2.Windowsは設定(セキュリティー設定を触る)が必要だし、Homeだとリモート側になれない(技を使えばいけるみたい)
3.早くなるが、あくまでインターネット未接続のローカルLAN 内の話なので、セキュリティーは分からん(自己責任)
4.リモートデスクトップ接続が遅い場合、全体の画面の速度が落ちるのかと思ったけど(カーソルが飛び飛びに動く等)、ウィンドウそれぞれの動きが悪くなるので、リモート側が遅いように見えるので、注意しなければいけない

違うところがあれば、コメントにて指摘ください


では!

NB100のlinux mint17.2に初めにやっておくべきことをしてみた

ども副部長です。

いまさらながら、mintの色々初期設定をしていきます。

参考ページは以下のところ

baker-street.jugem.jpこの途中で日本語フォントの設定は、

baker-street.jugem.jp

を参考に勧めます。

フォントを入れる際は、root権限が必要なため、

メイリオをインストールの時は、ターミナルを併用して作業を進めましょう。

メニューから、グラフィックスの中のGIMPで確認するみたいです。

その他の設定は、特にしませんでした。(笑)

フォルダー名の日本語から英語の変更は使い込み度が上がると必須になるとおもいます。

 

それでは!

 

 

Windows10にAnacondaとVisual Studio Codeをインストールする(日本語化とターミナルprint非表示対策込み)

ども、副部長です。

Windows10にAnacondaとVisual Studio Code(以降VS code)をインストールしてみました。

と言いますか、メインパソコンには入れていたのですが、他のパソコンにインストールする際に、VS codeがメニューバーなどが英語になり、かつターミナルでprintの出力が表示できなかったので覚書です。

まず、Anacondaのインストールは、

www.sejuku.netで、順調に進みます。

続いて、VS codeですが、

code.visualstudio.comここから、Windows用の64bitのUser Installerでなにも問題ないと思います。

基本、そのままなにも選択を変えずに進めていきます。

そしてインストール後にVS codeを実行すると、メニューバーが英語になっています。

mattyan1053.hatenablog.comをを参考に、日本語拡張機能をインストール。

そのあと、

qiita.comの、”実行”のところの、python select interpreterを打ち、Anacondaを選択すると、コンソールでpythonの実行結果が表示されるはず!!

寄り道したので、他の変更点が効いてるかも(汗)

 

追伸 しかし、メインパソコンでは、こんな苦労してないんだけどなあ~

やはり”環境構築”は、時間と手間と知識が掛かる上に、本編のpythonの勉強を邪魔するだけで、あまり役に立たない・・・簡単にスルーする方が自分の為かも!