denshikobo’s blog

PICプログラミングやPCの操作で感じた日々の由無し事を綴ります

OrangePI PCとRaspiをscpで接続してみた

(2016.11.30)
ローカル・ネットワーク内にあるコンピュータとファイルの送受が出来るようになると、大変便利です。OrangePI PCにSSHでログインできるのでscpコマンドでファイルの送受が出来る筈だと考えました。

pi@Raspi-1:/opt/sambaへファイル送信を試みたのですが・・・

pi@OrangePI:~$ scp xfce-install.log pi@192.168.2.105:/opt/samba
ssh: connect to host 192.168.2.105 port 22: No route to host
lost connection

あれ、No route to host?
この結果は何なんでしょうか?

試しに逆向き(Raspi側から)の接続を試してみると・・・

pi@Raspi-1 ~ $ scp ./smb.conf pi@192.168.2.117:/opt/samba
The authenticity of host '192.168.2.117 (192.168.2.117)' can't be established.
ECDSA key fingerprint is ~
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.117' (ECDSA) to the list of known hosts.
pi@192.168.2.117's password:
smb.conf                                      100%   12KB  12.0KB/s   00:00

成功しました。

pi@OrangePIのhomeディレクトリへの送信も・・・

pi@Raspi-1 ~ $ scp ./smb.conf pi@192.168.2.117:./
pi@192.168.2.117's password:
smb.conf                                      100%   12KB  12.0KB/s   00:00

問題ありません。

う~む、何故OrangePIからscp出来ないんでしょうか?
pi@192.168.2.105のご機嫌が悪かった?
-----------------------
理由は分かっていませんが、Raspiはネットワーク接続を一次的に切断していることがあるようです。公開しているsambaディレクトリが見えないとかxrdpで接続できないとか・・・
そんなとき、一度pingで接続確認してから再接続すると上手く行きます。
-----------------------

で、気を取り直してpi@Raspi-1:/opt/sambaからファイルを受信してみると・・・

pi@OrangePI:~$ scp pi@192.168.2.105:/opt/samba/smb* ./
The authenticity of host '192.168.2.105 (192.168.2.105)' can't be established.
ECDSA key fingerprint is ~
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.2.105' (ECDSA) to the list of known hosts.
pi@192.168.2.105's password:
smb.conf                                      100%   12KB  12.0KB/s   00:00
pi@OrangePI:~$ ls
Desktop  Downloads  WiringOP  smb.conf xfce-install.log

出来ました。
pi@Raspi-1:/opt/sambaへのファイル送信は・・・

pi@OrangePI:~$ scp  xfce-install.log  pi@192.168.2.105:/opt/samba/
pi@192.168.2.105's password:
xfce-install.log                              100%  145KB 145.5KB/s   00:00
pi@OrangePI:~$

問題ありません。
最初の不具合は無かったことにします。¥(^_^)

 

OrangePI PCの初期設定からリモート・デスクトップ接続してLチカまで

(2016.11.28)
前から気になっていたOrangePI(Raspberry pi互換機)を手に入れました。送料込みで凡そ¥2000(これ↓)です。
https://www.aliexpress.com/item/Best-Seller-Orange-Pi-PC-H3-Support-the-Lubuntu-linux-and-android-mini-PC-Beyond-Raspberry/32448079125.html?spm=2114.13010608.0.0.IhJi3h

カーネル(OrangePI_Jessie_Xfce.img)は以下のWEBページを参考にして、インストールしました。
http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342
http://technical.live-on.net/orange/Linux03.html

RaspiはRaspbianのインストールでそこそこ動きましたが、OrangePIの場合はそうは行きませんでした。元々OrangePIの情報が少ない上に、カーネル・イメージごとに手順が異なるので、そのまま参考にできるWEBページはなかなか見つかりません。

ささやかながら、現時点のOrangePI_Jessie_Xfce.imgを用いたセットアップ手順を以下に記しましたので、ご参考にして頂ければ幸いです。

<セットアップの目標>
Windowsからリモート・デスクトップ接続し、日本語キーボードを利用して、JAVA、C、WiringPIのプログラム開発環境を整え、Lチカプログラムを動かしてみる。
------------------------------
手順1
scriptbin_kernel.tar.gzを解凍したフォルダからuImage,script.binをコピーする(script.binは適当なものを選ぶ)。

uImage_OPI-2 ==>  uImage
script.bin.OPI-PC_1080p60_hdmi ==> scpit.bin

手順2
5V電源と有線のイーサネット・ケーブルを接続し、カーネルを起動する。

カーネルが起動すると赤いLEDが点灯します。緑と黄色のLEDしか点灯しない場合はカーネル起動に失敗しているのでSDカードの書き込み&差し込みetc.を見直します。

手順3
赤いLEDの点灯後、暫く(20秒以上)して緑と黄色のLEDが瞬くまで待つ。
(ネットワークにDHCPサーバがあることが前提)

 

DHCPサーバから割り振られたIPアドレスを使って、SSHでログインする。


ログイン
User:orangepi
Passwd:orangepi

ログイン出来たら第一ステージ クリアです!
パチパチパチ~
-------------------------
手順4
piユーザを設けて、作業環境を整える。
(Raspi用の作業環境に合わせて、OrangePIでもpiユーザを用意する)

$ sudo fs_resize
$ sudo sh -c 'echo 127.0.1.1 OrangePI >> /etc/hosts'
$ sudo useradd -m -k /home/orangepi -p `perl -e "print(crypt('raspberry', 'a0'));"` pi
$ sudo visudo
  ==>pi ALL=(ALL:ALL) NOPASSWD:ALL

ーーーーーーーーーーーーーーーーー
(2016.12.13) 構文の誤り訂正

ーーーーーーーーーーーーーーーーー
$ sudo reboot

手順5
以後、piユーザでログインして作業を進める。

ログイン
User:pi
Passwd:raspberry

$ sudo apt-get update
$ sudo apt-get upgrade
(1時間以上掛かる)

手順6
xrdpをインストールする

$ sudo apt-get install -y xrdp
$ sudo apt-get install -y vnc4server

以後、windowsからリモート・デスクトップ接続できる。

手順7
プログラム開発環境をインストールする

$ sudo apt-get install -y make gcc gcc-arm*
$ sudo apt-get install -y libncurses5-dev
$ sudo apt-get install -y openjdk-8-jdk
$ sudo apt-get install -y git
$ sudo apt-get autoremove
$ git clone https://github.com/zhaolei/WiringOP.git -b h3
$ cd WiringOP/
$ chmod +x ./build
$ sudo ./build
$ sudo make really-all
$ sudo ./blink

 

GPIO 17に接続したLEDが点滅したら第二ステージ クリアです!
パチパチパチ~
-------------------------
手順8
日本語環境を整える。

$ sudo ln -sf /usr/share/zoneinfo/Japan /etc/localtime
$ sudo sh -c 'echo ja_JP.UTF-8 UTF-8 >> /etc/locale.gen'
$ sudo locale-gen
$ sudo nano /etc/default/locale
  ==>LANG="ja_JP.UTF-8"
  ==>LC_ALL=

手順9
キーボードレイアウトを日本語レイアウトにする
$ sudo nano /etc/default/keyboard
  ==>XKBMODEL="jp106"
  ==>XKBLAYOUT="jp"

手順10
Xwindow用に日本語フォントをインストールする

$ sudo apt-get install ttf-kochi-gothic xfonts-intl-japanese xfonts-intl-japanese-big xfonts-kaname
$ cd /etc/xrdp/
$ sudo wget http://w.vmeta.jp/temp/km-0411.ini
$ sudo ln -s km-0411.ini km-e0010411.ini
$ sudo ln -s km-0411.ini km-e0200411.ini
$ sudo ln -s km-0411.ini km-e0210411.ini
$ sudo reboot

これで現時点の最終ステージ クリアです!

おめでとうございます、パチパチパチ~

Analog_referenceが動き始めた

(2016.11.19)
電流センサーの校正回路を検討していて、これを単なる校正回路に留めておくのは惜しいと思うようになりました。Raspiで操作する基準電源(直流電圧源&直流電流源)になるのではないかと考えたのです。

回路はこんな感じです。

f:id:denshikobo:20161119160334p:plain

基準電源ICと12bitDACと18bitADCを組み合わせています。DACとADCはRaspiからI2Cで操作します。

 

秋月のこの基板(↓)にレイアウトしてみました。
http://akizukidenshi.com/catalog/g/gP-11073/

f:id:denshikobo:20161119160156p:plain

 

例によってJAVA SWING+BCMLIB_FOR_JAVAで簡単なプログラムを書いて動作させてみました。

f:id:denshikobo:20161119160127p:plain

ここまで簡単に動いたように書きましたが、実際は・・・

(まぁ、その辺りのゴタゴタは割愛します)


電流センサーの校正は基準抵抗(こんな奴↓)を手に入れてから行う予定ですが、まずは”お試し”で校正データを取得してみようと思います。
http://jp.rs-online.com/web/p/products/3511519/

 

電流センサーを作り始めた

(2016.10.25)
18650バッテリーと充電器の動作テストは一応終了しましたが、充放電電流を観測出来ていないのが心残りです。秋月のカタログページを眺めていてこんなものを見つけました。

(↓)
http://akizukidenshi.com/catalog/g/gI-07014/
http://akizukidenshi.com/catalog/g/gP-11206/

この二つを組み合わせて、リニアリティ校正を掛ければ、精度の高い(精度0.5%くらい?)電流センサーが出来そうです。早速、部品を買い揃えて試作を開始しました。

ブレッド・ボードにセンサーと電源を取り付けて静止電圧を計ってみると・・・
マニュアルには静止出力は2.5V±0.075Vと記されているのですが1.0Vしか出ていません。標準的な使い方を改めて確認しても、間違いは見つからない・・・f:id:denshikobo:20161025161226p:plain

ん!
”Pin numbers in brackets refer to the UA package”

えっ!

f:id:denshikobo:20161025161239p:plain


購入したのはUAパッケージなのに、LHパッケージのPIN番号で配線していました。
GNDとVoutが逆です。orz

慌てて修正し、ようやく静止電圧2.5V±0.075Vの出力が得られました。
手元のネオジム磁石を近づけると出力電圧が大きく(0.3V~4.7V)変化しました。

どうやらHallセンサーは無事だったようです。
やれやれ

NCR18650Bの充放電試験を始めた

(2016.10.10)
Oscilogi410に新たに組み込んだデータ・ロガー機能は、18650と充電器(これです↓)の評価試験を行うためでした。

https://www.amazon.co.jp/gp/product/B010FJTEFC
https://www.amazon.co.jp/gp/product/B00IFXP1NU


試験の結果、電池容量はおよそ1000mAh(1A放電時)ということになりました。

f:id:denshikobo:20161010170135p:plain


公称容量3000mAhの1/3がこの電池の実力なのか?
それとも充電器との相性が悪いのか?
(電池の保護回路と充電器の保護回路が重複している)
その辺りの調査は今後の課題です。

何といっても安いし、私が必要としてる性能は満たしているので、1000mAhという結果に不満はありません。(^_^;)

電池ボックスと充電器が2個余ったので、新たにこれ(↓)を購入し、調べてみることにしました。
https://www.amazon.co.jp/gp/product/B00ATP5A88


すると・・・

f:id:denshikobo:20161010170149p:plain

見事、公称容量3400mAhを超える放電試験結果を得ることが出来ました。
パチパチパチ~

いわゆる生セルと呼ばれるもので、過充電・過放電保護機能を備えた充電器との相性が良かったようです。


終わりの方で電池電圧がバタバタしています。そこの時間軸を拡大してみると・・・

f:id:denshikobo:20161010170202p:plain
(1)過放電保護回路の働きで電池の放電が止まる
(2)すると電池の電圧が回復してくる
(3)過放電保護回路が切れて放電を再開する
(4)電池の電圧が急速に下がり、過放電保護回路が働く
これを繰り返しているようです。気になる動作ですが、過放電保護は大丈夫なんじゃないでしょうか?


ただ今充電試験の最中ですが、試験時間がどれだけ掛かるか、5時間か?それとも7時間を超えるのか?、検討もつきません。

24時間連続計測の実績を誇るオシロジ・データ・ロガー無しでは、考えられない試験です。

Oscilogi2(PIC基板)の動作がおかしい

(2016.10.02)
Raspi3に乗せたOscilogi2の動作がおかしいことに気付きました。
Osci_Logi_Consoleの起動直後に計測ボタンが点滅しています。計測ボタンを押していないのにPICは計測中のようです。しかも、中断ボタンを押しても止まりません。データ・ロガー・モードばかりテストしていたので、通常計測の異常に気付きませんでした。orz

リセット直後のOscilogi2に異常は見られません。しかし、計測を開始すると中断できなくなります。驚いたことにRaspi2Bの方はこれまで同様、計測開始/中断が出来るのです。

いったい何が起きているんでしょうか?

データ・ロガーと通常計測の大きな違いは、計測中にコマンドとデータの送受を行うか否かです。通常計測の場合は、計測を終了(または中断)するまで、受信コマンドの解析を行いません。(I2C割り込みで受信は出来ます)
唯一、BRKコマンド(最初の文字B)だけ、I2C割り込みの中で識別してbreak_flagを立てています。それによって計測を中断しています。

PICkit3でOscilogi2の動作を調べてみると・・・

(1)I2C割り込みの中でbreak_flagを立てる所にbreakポイントをセットする
(2)Osci_Logi_Consoleで中断ボタンを押す
(3)PICkit3がbreakで止まる
(4)break_flagはセットされている

ふむ、正常。

(1)通常計測ループを抜けた所にbreakポイントをセットする
(2)Osci_Logi_Consoleで中断ボタンを押す
(3)PICkit3がbreakで止まる
(4)break_flagはセットされている

ふむ、正常。

(1)breakポイントを外す
(2)Osci_Logi_Consoleで中断ボタンを押す
(3)PICkit3でbreakを掛ける
(4)通常計測ループを走っている

一旦計測ループを抜けて、また計測を再開している?
えーとコマンド・ステータスは・・・LOG_COMMAND?
LOGコマンドを送っていないのに?

あっ!

2016.09.28のブログの中で”計測終了時にコマンド・ステータスをCOMMAND_NULLにする処理は削除した”と記しましたが、単純に削除してはいけなかったようです。

denshikobo.hatenablog.com

Raspi2Bの場合
(1)文字Bを受信して計測を中断
(2)BRKコマンドを全て受信してから(30μS以上経過)
(3)コマンド・ステータスがBRK_COMMANDになると
(4)Oscilogi_mainループで計測再開判定==>再開せず

Raspi3Bの場合
(1)文字Bを受信して計測を中断
(2)BRKコマンドを全て受信する前に(20μS未満)
(3)コマンド・ステータスがLOG_COMMANDのまま
(4)Oscilogi_mainループで計測再開判定==>計測再開

と言うことことではないでしょうか?

以前判定したLOG_COMMANDステータスで計測を再開しないよう、新たにコマンド・ステータスの有効/無効を示すフラグを設けて、不具合は解決しました。

やれやれ

100mHzサンプリング試験が無事終わった

(2016.09.30)
時間の掛かるOscilogi410の24時間連続計測試験ですが、不具合無く動いてくれればサクサク進みます。500mHzサンプリングと100mHzサンプリングの連続計試験が無事終了しました。100mHzサンプリングだと24時間で反復回数は4回ですが、まぁ十分なんじゃないかと思います。

500mHzサンプリング試験の最初の反復で新しい不具合が見つかりましたが、動作停止するような重大なバグではなく、対策もすぐ出来たので再試験の必要は無いと判断しました。これでデータ・ロガー関連のノウンバグに対する対策は全て完了しました。
パチパチパチ~

実は1mHzサンプリングの計測試験がまだ残っています。しかし、始めると23日掛かる試験なので、(いつかはヤルつもりですが)当面は実施を見合わせます。

いよいよ、Oscilogi410は懸案事項の改善に取り組みます。
(1)ログ・ファイルのフォーマット変更
(2)グリッドの見直し
(3)2ndカーソル導入
(4)Horizontalカーソルの導入<==やるかどうかまだ迷っている

何だか、とっても楽しみです!