2017年3月16日木曜日

RaspberryPiもLinux

ラズベリーパイ上で、PythonとPHPを連携させて、ファイルを作成したり削除したりということをやろうと簡単に考えましたが、Linuxの場合はいろいろと権限が厳密で甘い考えだと大変な目にあいそうだということがわかってきました。少し頭を冷やして別の方法も考えてみようと思います。


PHPからPythonを実行

PHPが実行され、その中で、Pythonのプログラムが呼ばれる。Pythonは実行時に引数をコンソールに表示する仕組みで、Pythonで出力したものを、PHPのvar_dump($outpara[0]); var_dump($outpara[1]); でブラウザ上に表示している仕組み。



2017年3月15日水曜日

RaspberryPi3 Python ファイルから読み込んだデータの印字

現時点で、全角のみのデータですが、ファイルから読み込んだデータを印字できました。失敗も多いですが、Pythonの命令も少しずつ試せています。


Python 00~ffを0~255に変換

かなり限定的な変換プログラムです。


Python 文字列抽出

16進数で書かれた文字列を2文字ずつ抽出して数値に変換


印刷の失敗

ファイルから読み込んだ日本語のデータを印字するつもりが、コードを印字してしまいました。考えてみれば当たり前のことでした。Pythonでの文字列関係の操作に関して勉強が必要です。



レシートプリンタ対応 ファイルから日本語を読み込む場合のテスト

ファイルからUTF8の日本語を読んでシフトJISにしようとしたとき、はっきりとは説明できませんが、いったんunicodeにしてやる必要があるのかもしれないです。面倒な気もしますが、日本語を含むデータを扱うときは、本来難しいという思いでいれば、案外単純な手続きで、変換してくれるのかなとも思えます。



レシートプリンタ対応の日本語(漢字)関係のテスト

日本語の扱いはちょっと難しいとは思いますが、いくつかテストはしてみようと思います。まずはプログラムの中で日本語がシフトJISのコードに変換できているかのチェックをPythonでやってみました。結果は大丈夫みたいです。



最初は数をこなそう

感熱紙も無駄にはならないはず。


2017年3月14日火曜日

RaspberryPi3でバーコードの印刷

バーコードの印刷を行いました。CODE39というタイプのバーコードです。



RaspberryPi3でレシートプリンタ(2)

半角英数字 半角カナ 漢字  文字の印刷に関してと用紙カットに関して少しわかってきました。横倍角 縦倍角 というのは久しぶりです。VisualBasicなどで難しいと感じた、1行だけ印刷とか、行送りだけとかは普通にできました。(16進数で0Aのコードを送れば、その行を印字してくれる)



2017年3月11日土曜日

RaspberryPi3でレシートプリンタ

スマートさには欠けますが、手持ちの部品で、ラズベリーパイとレシートプリンタを接続しました。Pythonでシリアルポートに対してエスケープシーケンスのデータを送る方法です。




エスケープシーケンスがまだちゃんとできていませんが、レシートプリンタをシリアルコネクタでラズベリーパイとつないで、印字および用紙のカットができるのを確認しました。以前に印字に関してはチェックできていましたが、用紙カットも制御できるのがわかりました。Windowsほど手軽ではないと思いますが、ラズベリーパイでも、簡易的な印刷が可能になりそうです。


RaspberryPi サーバー上での環境

Apache2の画面とphpMyAdminの画面が見えました。RaspberryPi上でサーバーが動きだし、php(webでのプログラム言語)が使える。そして、MySQL(データベース)も使えますよ。という状態にまでは、なりました。あとはコツコツとやることです。




RaspberryPiでApache入ってる?のチェック

Webのプログラムについて自分のレベルアップをするとしてその前に、サーバーを動かさないといけません。以前に曲りなりに何とか動かしたラズベリーパイにはApacheを入れています。もう一度セットアップを思い出して、これから使おうとするラズベリーパイにもセットアップしようと思います。アパッチ入ってるのかな?をチェックする方法として
画像のようにコマンドを入力しました。
apachectl -v
(今後mysql「データベース」を使う可能性も高いのでサーバーはApacheのほうが便利と今現在は思っています)


2017年3月10日金曜日

レシートプリンターを活用しよう

レシートプリンターを予備機として持ってるだけというのは非常にもったいないので、予備の間を利用して、次に活用できるように、テストしてみようと思います。USB接続が一番一般的ですが、今回、少し特殊な要求に100%は答えれなくて、内部のディップスイッチ(設定スイッチ)を変更して、レシートのオートカット(紙のカット)の機能を無効にさせてもらってなんとかしました。USB接続ではなく、シリアルケーブル接続で、エスケープシーケンスを使えは細かい制御ができるのではないかと思っています。フォントに関しては目をつむることになるとは思いますが。。。ラズベリーパイ、Python、HTML5、PHP、JavaScriptこのあたりを駆使すれば何とかなるはず。。

HTML5、PHP、JavaScriptのレベルも上げよう。と思います。場数を踏もう。


2017年3月9日木曜日

ラズベリーパイのIPアドレスをシールで貼りつけた

ラズベリーパイのIPアドレスを記載したほうがいいかなと思い、参考意見を聞きました。ケースにおさめるのが一番シンプルだと思いますが、管理が悪くてどこかにうずもれていましたので、単純にプラスチック系の板にのせて、その裏にIPアドレスを印刷したラベルを貼り付ける方法にしました。固定するための穴の寸法は、あてがい細工なので、参考にはなりません。穴も実際には、直径3.2mmの穴をあけました。それから3mmにネジがラズベリーパイの基板では通せないので、2.6mmのねじを使っています。
単純ではありますが、教えてもらったことを実行できて、時間がたってもIPアドレスは何番だったかなと思う手間は省けるので、よかったと思います。





ラズベリーパイ3をLANケーブル(クロスケーブル)でつなぐ確認

ラズベリーパイ3で、wifiが普通に使える状態ですが、念のために、LANケーブル(クロスケーブル)でパソコンと1対1でつなぎ操作する確認をしておきました。ゲートウェイの設定など、必要ないようなこともあるかも知れませんが、写真のように設定して、パソコンからラズベリーパイが操作可能ということを確認できました。

ラズベリーパイを外の環境、よその環境に持っていったときに、wifiに入れないときも一時的に発生することを考えてのチェックです。ラズベリパイで設定しているIPアドレスだけは、見えるところに書いておきたいかな?と思いました。



ラズベリーパイに素直にキーボード、マウス、ディスプレイをつなぐ



ネットワークのところの


有線の設定



パソコンとLANのクロスケーブルでつなぐ

パソコンに有線LANを

 固定IPアドレス設定

パソコン側からSSHで接続できたことを確認
有線LANのIPアドレスが表示されているのでOK

2017年3月7日火曜日

python タイマー割り込み(別スレッド)

ネットの情報を参考に、ラズベリーパイのpython(プログラム言語)でタイマー割り込みの処理をチェックしてみました。5秒ごとにloop heloを出力する中で、3秒ごとにhelo warikomiを出力する。というイメージだと思います。24時間動かして問題ないかのチェックはできていませんが、足がかりはつかんだ気がします。これとは別に、GPIOの入力値変化での割り込み処理もどこかで試そうと思います。



2017年3月5日日曜日

水位のレベル変化をファイルに記録

水位のレベルが0から7まであるように設定して、レベルが変化したときの時刻をファイルに記録してみました。秒単位で水位をチェックしたら、水面の波などでレベルが絶えず変化するようなデータが取得されると思います。たとえば、1分なり5分なりの間隔でデータ取得を行うと、長い期間で見た時に、どう変化したかは把握できるのではないかなと思います。


日付と時刻に関するプログラム python(パイソン)

ラズベリーパイで、プログラムを作りました。python(パイソン)という言語です。プログラムの内容は、プログラムの動いた日をファイル名にして、動いた時刻をファイルの中に追加モードで書き込むという単純なものですが、Excelのマクロや、JavaScriptなどと、どう違うのかを把握するにはちょうどいい感じのプログラムだと思います。


2017年3月4日土曜日

水面レベルの検知

つっこみどころは満載だと思いますがラズベリーパイを使って水面のレベルがどこなのかを把握する仕組みを作ってみました。水深が何ミリではなく、水面レベル3とか4とか、そんな感覚です。


2017年3月3日金曜日

ラズベリーパイで水を検知

ラズベリーパイを使って水を検知してみました。実際の川の水なので、きれいなものではないのでそこはご了承ください。LEDを光らすだけのテストプログラムです。


2017年2月4日土曜日

2017年1月29日日曜日

ハンダ付け

普段より多めにハンダ付けをしました。(箇所)
得意なほうではないですが、拡大鏡とかルーペのおかげで思ったよりはスムーズにいったと思います。
逆に言うと今まで見えてなかったんだなというのを感じました。


2017年1月12日木曜日

pythonのインデントについて

pythonのプログラムは、インデント(字下げ)が
重要なのはわかっているんですけど、、

スペースとタブが混じってしまうとエラーに
なるんだということで、気をつけたいと思います。

自分では、タブを使うようにしているのですが、
ネットからダウンロードされたファイルの場合
すべてスペースで、字下げされていることも
あるようで、自分で、そのソースに変更を
加えたときに、見た目ではインデントが正しいと
思えるのにエラーになって悩むようなこともある
かもしれません。

エラーメッセージもケースによって、違うメッセージに
なるでしょうから、やはり、その場その場で、エラー
メッセージの意味をチェックしたほうが良いようでした。

もしかしたら、これは違った情報になるかも知れませんが
書いた時点では、そういう認識です。


交通系icカードをラズベリーパイで認識

以前にWindowsでJRで使うICOCA(中国地方)
の識別のたもに、カードリーダを買っていましたが

ネットの情報を参考に、設定してみました。

ちょっと苦労はしましたが、ラズベリーパイ3で
カードの識別ができるのが確認しきました。

もとのソースは変更せずに、プログラムを組み合わせて
内部情報を取得してみました。



2017年1月9日月曜日

LibreOfficeのCalc

WindowsのLibreOfficeのCalcでマクロを作って
そのまま、ラズベリーパイに持って行って
動くかどうか試しました。

バージョンの関係?で
LibreOffice Basicだけでしょうけど

Windows側で作ったマクロが
そのまま
RaspberryPi3の上で動きました。

試せるならMacの上でも試してみたいです。


2017年1月8日日曜日

リナックスのリダイレクト

ラズベリーパイ3のpython(パイソン)で
作ったプログラムの出力結果を
リダイレクト という方法で
ファイルに出力しました。

単純ですが、いろいろと組み合わせて
仕組みを作るときに、役立つときも
あると思います。




ラズベリーパイをFlashAirで接続

FlashAirを固定IPにして(つもりです)
ラズベリーパイ3と、アンドロイド端末を
wifi接続してみました。

通常は、インターネットにつながっている
ルータのwifiで問題ないんですが、

野外(現場)で、そこだけで処理を完結させたい
場合もかなりあると思ったので
こういうテストをやってみました。

ちなみに、通常、自宅のルータだと
IPアドレスは、192.168.11.xxxとなるんですが

FlashAirで、192.168.12.xxxを設定してみました。

テストは、自宅の無線ルータの電源を切った状態で行いました。


まだ、1つ疑問点が。。。

ラズベリーパイ3の側で、無線LANの設定を
複数しているとき、接続の優先順位をどう変更できるのかな
というのがわかっていません。



2017年1月7日土曜日

簡易的な水準器をブラウザ上に表示

ラズベリーパイ3と加速度センサーで、
Web上に簡易的な水準器を表示する仕組みを
作りました。精度的にはそんなにシビアな
値ではないと思いますが、表示と同時に、
データの取得もできるのが今回チャレンジした
理由です。


JavaScriptでcanvasを重ねた

JavaScriptでcanvasをレイヤーのように
重ねて、上にあるcanvasの側で、図形を
移動させてみました。


2017年1月6日金曜日

傾きを取得する

加速度センサーの出力を
AD変換して、その値を
角度に変換してみました。

X,Y,Z軸の加速度センサーを
使いましたが、そのなかなか
X,Y軸の情報を使いました。

水平から -90度
水平から 90度
の範囲で値が取得できる感じでした。

水平を0度として -90度~0度~90度と
いう要領でした。

三角定規を使って、30度、45度、60度
などの時の値を実測して、
なめらかにグラフを書くと、なんとなく
サインカーブかなという感じがしました。

-90度付近 と 90度付近は、やはり
いい値が取れないかなという感じがしました。

角度は、サイン関数の逆関数 アークサインを
使いました。

答えはラジアンのあたいなので、
一般的な、(度)に変換する関数を使いました。

予想していたより、正確な角度が取得
できたように思います。

ラズベリーパイ3 と パイソン(python)





2017年1月5日木曜日

プログラムでリブート

通常はシャットダウンとか、リブートなどは
しないですが何かの条件で、電源を切ったり
再起動させたりしないと、いけないようなことが
あるかも知れないので、テストをやってみました。

このプログラムでは、実行して、3秒後に
リブートがかかりました。

ラズベリーパイ3


ラズベリーパイ3 インストール時にエラー

SD Formater4.0でフォーマットして

最新ではないですが、以前にダウンロードしていた
NOOBS_v1_9_2.zipを解凍したものを
SDにコピーして
ラズベリーパイ3をセットアップ開始しました。

その時に

Error downloading or extracting tarball
xz: corrupted data
tar: short read

のエラーが発生しました。

自分としては、ラズベリーパイのセットアップは
3回目なので、なんでエラーになるんだろう?
という感じでした。

検索してみると、SDの相性?というような情報も
ありました。

別のSDを用意して試しましたが、同じエラーがでて
諦めかけましたが、

zip ファイルを開いて、全部のフォルダ、ファイルをつかんで
(コントロール+A)SDにコピーしたら、その後セットアップは
正常におわりました。(解凍しながらコピー)

今回は、こういう方法。ということで、100%の正解では
ないと思いますが、途中で断念にはなりませんでした。

2017年1月2日月曜日

水面感知

この回路だとどうだろう
一応回路を組んで、水道水では
試してみました。
そこではOKでした。

水面検知
水面感知


2017年1月1日日曜日

由加山蓮台寺に行ってきました

午前9時ごろ行ってきましたが
とてもいい天気でした。

初詣てきな写真ではないですが
たいやき おいしいです。
ぼくにとっては恒例になりつつあります。