忍者ブログ

設備のマニアどっとこむ

設備、電子工作、DIYのブログ!

11/18

Sun

2018

ラズパイでログインできなかった話

先日ラズパイがどうにもこうにもログインできない状態になってしまった。
 
何度パスワードを入れてもこの画面になってしまい、エンドレスになっていた涙

パスワードを間違えると、はじかれるのでどうやらあっているようなのだけど…


とりあえず、やったことは、
・Alt+F2,F3でCUI操作
 →とりあえずCUIでは操作可能、sdカードは大丈夫そう。
・Raspberry pi configでGUIブート→CUIブートにしてもどす  
 →変わらず。
・自動ログイン設定がうまくいってないと思ったので、/etc/systemd/system/autologin@.service
から、オートログイン設定を再度設定。
→変わらず。
・ログイン時のパスワード自体を無効にしようと/etc/shadowをいじり、パスワード入力不要にしてみる。
→パスワード入れる必要は無くなったものの症状変わらず。
・CUIからstartXコマンドでGUI起動。
一応使えた。ただしデスクトップは初期の状態になる

ほかにもいろいろ試したが復旧せず。困ってしまったのでFacebookのラズパイコミニティに聞いてみた。するとこんなリンクを教えて頂いた・・。
https://m.chiebukuro.yahoo.co.jp/detail/q12166120842


うおー! SDカードの容量がいっぱいになっただけだった。少しデータを削除して復旧。
リモートデスクトップも問題なく通常通り使えるようになった。


うーん、だいぶはまってしまったな・・・。







拍手[0回]

PR

11/18

Sun

2018

ラズパイでビットコイン相場の監視

最近はじめたマイニングなんですが、ビットコインの調子がよろしくなく・・。
先日も1ビットコインあたり70万を推移していたのが、急に62万円まで急落。
なかなか厳しい状況が続いています・・。

そんなこんなでビットコイン相場の監視をすることにしました。
1ビットコイン何ドルかを定期的に出力しているAPIがあるのでそれを利用してます。
import poloniex
import smbus
import time
polo = poloniex.Poloniex()
polo.timeout = 2
chartUSDT_BTC = polo.returnChartData('USDT_BTC', period=polo.DAY, start=time.time()-polo.DAY*500, end=time.time())
print(chartUSDT_BTC[-1]['open'])
import requests
import json
SLACK_URL = "https://hooks.slack.com/services/トークンを取得してください"
def send_slack():
    content = chartUSDT_BTC[-1]['open']
    payload = {
        "text": content,
        "icon_emoji": ':snake:',
    }
    data = json.dumps(payload)
    requests.post(SLACK_URL, data)
send_slack()

このままではpoloniexがimportエラーになってしまうので下記コマンドでダウンロードします。

pip3 install https://github.com/s4w3d0ff/python-poloniex/archive/v0.4.6.zip

このpythonファイルをcrontab -eで定期的に吐き出していきます。
※やり方はこちら
1分に1度ファイルを動作させているのですが、ビットコインの更新は5分に1回です。
slackでは下記の様になります。


ちょっとドル表示なのでピンと来ないのですが、監視することができました。
んー年末に上がるとの予測でしたが、どうも極端に下がった時に購入したほうがいい気がしました。
ビットコインを持っている人は意外と手放さずじっと上がるのを待っているのかも(特にマイナーは・・)
うまく応用すれば大きく下がった時アラームを出して、その時購入→じわじわ戻した時に売るのがベストかも。
もしちょうどいいAIがあれば予測モデルでも作るのですが。 

ちょっとオープンソースAIでは無理かな~  機会があれば頑張ります!







拍手[0回]

11/04

Sun

2018

みちびき衛星サービス開始! GPSモジュールの精度は上がるか!?

国産の測位衛星サービス「みちびき」が今月から本格サービス開始したらしい。

ラズパイにGPSモジュールをつないで自作androidアプリで位置を確認した話


以前にラズパイで使ってみたものの、けっこう誤差あるなあ・・・という印象でした。
衛星が4機になり、数十センチの誤差になったそうな。ホント??


秋月で買ったGPSモジュールを再度ひっぱりだして検証してみた。
いまだに外に出て5~10分くらいは衛星探すのは変わらず。



道路で測定したが建物になってしまった。まだまだ5mくらいは誤差あるのかな…

ただし、前回使用時よりは感度が良くなった気がします。

将来的にはドローンにでも乗せて遠隔操作したいところですね・・。






拍手[0回]

09/30

Sun

2018

raspberry piでAIを使う

スペックに制限のあるラズパイでも工夫すればAIを使うことはできます。
まずAIライブラリをThonnyなどで使うのがかなりきついのでjupyter notebookを入れます。
これでブラウザでpythonを軽めに?動かすことができます。
sudo apt-get install build-essential python-dev
sudo pip install jupyter
sudo apt-get install libpng12-dev libjpeg8-dev libfreetype6-dev libxft-dev liblapack-dev libatlas-base-dev gfortran g++


インストールが済んだら jupyter notebookとコマンドを打てば起動します。

しかしそのままではログインできないので password or tokenというところに 
token= 以下をコピペして進んでください。


トークンはコマンド打ってすぐのやつです。何個か出てくるので注意!


そこから右上のNEW→pythonで新規作成できるのですが、python2のみになっている場合は 
下記コマンドで解決できます。


python3 -m IPython kernelspec install-self

あとはwindowsでもラズパイでも変わりません。

下記コードで以前のこの記事の手書き数字画像の判別ができます。
画像データはフルパスが好ましいですが home/pi/直下であれば動かせます。
※ちなみに、
sklearn、numpyのインポートは必要ですがopenCVはjpg→png変換に使用しているだけで
必須ではありません。


from sklearn import datasets, cross_validation, svm, metrics
import numpy as np
from PIL import Image
import cv2

digits = datasets.load_digits()

im_gray = cv2.imread('test6.jpg')
cv2.imwrite('my_photo.png', im_gray)
label_test = [6]
image = Image.open('my_photo.png').convert('L')
image = image.resize((8, 8) Image.ANTIALIAS)

img = np.asarray(image, dtype=float)
img = np.floor(16 - 16 * (img / 256))


img = img.flatten()
data_train = digits.data

label_train = digits.target
data_test = img

clf = svm.SVC(C=1.0, cache_size=200, class_weight=None, coef0=1.0,
decision_function_shape='ovr', degree=3, gamma='auto', kernel='linear',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
clf2 =data_test.reshape(1,-1)
clf.fit(data_train, label_train)


predict = clf.predict(clf2)

print(data_test)
print(clf2)
print(clf)
print("テストラベル=",label_test)
print("解析結果=",predict)
ac_score = metrics.accuracy_score(label_test, predict)
print("正解率=", ac_score*100, "%")

これでラズパイで手書きデータを判別することができました。
AI関連のライブラリはリソースが必要と思われがちですが、大量のデータのディープラーニングでもやらない限り
結構動いてしまったりします。 今後はラズパイのような小型PCにAIが搭載されるのがトレンドに……
なるのかなあ。


↑こんな本も出てます!







拍手[0回]

08/14

Tue

2018

ラズパイ拡張ボード DesignSpark Pmod HATについて

先日ラズパイコンテストに応募してみました。 https://trendy.nikkeibp.co.jp/pcls/rpic/

このコンテストにはスポンサーから部品類が提供されます。2018年はオムロンから環境センサ、RSコンポーネンツから Pmod HAT、eneblerからAPI的なものが利用でき、これを使ったアイディアを応募します。

設備のマニアどっとこむ的にはオムロンの温度センサーを希望したが、次点でPmod HATになりました。




応募して数日後この液晶PmodOLEDrgbと拡張ボードが届きました。


さーてコンテスト用の作品をつくるか、と思ったのですが予想以上にハードな道のりでした。

まずはググっても日本語記事が検索できず、参考文献はほぼ英語だった…。

数少ない日本語での解説 https://www.rs-online.com/designspark/easy-peasy-peripheral-interfacing-with-pi-python-and-pmods-jp

この記事を参考にしてインストールは可能でパイソンコード例は使えるんですが、PmodOLEDrgbはこの記事だけでは動かせません。SPI通信でJA1か2を使うみたいなのですが…
(SPI設定はraspi-configでやっておいてください)

リファレンスをみると

https://reference.digilentinc.com/reference/pmod/pmodoled/reference-manual

The Pmod OLED communicates with the host board via the SPI protocol. By driving and keeping the Chip Select (CS) line at a logic level low, users may send both commands and data streams to the display controller based on the state of the Data/Command (D/C) pin.

どうやらCSピンをGNDに落とさなければならないのですが、いったいどれがCSピンなのか…??

拡張ボードのリファレンスにラズパイのピン配置との対象表があるのでこちらを参照してください。(JA1とJA2でGNDに落とすピンは異なるので注意してください)
https://reference.digilentinc.com/reference/add-ons/pmod-hat/reference-manual


無事CNピンをGNDに落とし、サンプルコードをpython2で実行すると


from DesignSpark.Pmod.HAT import createPmod
from luma.core.render import canvas
from luma.oled.device import ssd1331
oled = createPmod('OLEDrgb','JA')
device = oled.getDevice()

with canvas(device) as draw:
draw.rectangle(device.bounding_box, outline="white", fill="black")
draw.text((16,20), "Hello, World!", fill="white")

while True:
pass



ディスプレイにHello World!の文字が出てきます。
注意して頂きたいのが、この状態でないとSPI通信をしていると反応しません。
lsmodコマンドで事前に確認する事はできません。(ここで結構つまづいた)
 


無事動作確認する事ができたのですが、普段日本語のブログなどに頼りきっていたのでいい経験になりました。 やはり電子工作をするにあたり英文が読めないいけないですね笑
今回数少ない日本語解説記事として参考になればと思います

そのうちコンテスト応募作品を紹介していきまーす。








拍手[0回]

翻訳(Translate)

AD

シェアしてね

プロフィール

HN:
アルティメット雅史
性別:
男性
自己紹介:
製油所、データセンター、化学工場を渡り歩いた設備のマニア
最近はarduino,Raspberry piyear等の電子工作にハマる。
取得資格は電験3種、消防設備士甲4、2級ボイラー技士、危険物乙4、電工2種、技術士補(電気・電子)、エネ電、フォークリフトほか

カウンター

お問い合わせ

忍者アクセスランキング

Copyright © 設備のマニアどっとこむ : All rights reserved

TemplateDesign by KARMA7

忍者ブログ [PR]