denshikobo’s blog

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

MCCでサクッと開発開始

Tools ==> Embedded ==> MPLAB Code Configuratorと辿って、MCCを起動すると下のような画面が表示されます。(<==起動に時間が掛かります)今回はホストとPIC間の通信にUARTを使い、Flash Programmingを行うので、Device ResourcesからEUASRTとMEMORY(<==下のLibraryの中にある)を選択して、Project Resourcesに持ってきました。で、Generateボタンをクリックして・・・

f:id:denshikobo:20170807104259p:plain

サクッと開発環境が構築されました。(パチパチパチ~)

あとはゴリゴリ、ゴリゴリ、コードを書き連ねて行きます。

 

これまでRaspiをホストにするときは、もっぱらI2Cを使ってきました。当初の構想でもI2Cを使う予定でした。ところが最新のデバイス(PIC32MK)にI2Cが搭載されていない(必要ならソフト処理でI2C通信を行う)ことが判明しました。UARTで1対Nの通信を行う(通信の始めにアドレス・バイトを送信して相手を指定する)機能を組み込み、I2Cの機能をUARTで実現しようとしています。どうやらMicrochipはI2CからUARTへの移行を進めているようです。

 

RaspiにはUARTも搭載されているので、I2CからUARTへの変更は可能です。調べてみると、ユーザが使えるのはRaspi-3 とZero Wはmini UART、他のモデルはPL011で、取り扱いが異なるようなのです。(詳しくはここ↓)

The Raspberry Pi UARTs - Raspberry Pi Documentation

Raspi-3はCORE周波数を250MHz固定にしないと上手く通信できない(通信速度が変化してしまう)とか、enable-uartの設定が必要だとか・・・

 

モデルによって取り扱いが異なるのはユーザの混乱を招きそうなので、『USB-シリアルを採用』することにしました。

denshikobo's blog再開のお知らせ

暫く更新していなかった、denshikobo's blogを再開致しますので、宜しくお願い申し上げます。

 

PICの新しい開発環境に関する構想(<==妄想)を得て、今年の6月から開発し始めました。初期構想から二転三転して(何時ものことです)、ようやく『これ』という形が見えてきました。

 

『基板にUSB-シリアル変換ICを搭載して、USBケーブルで接続する』と言う形です。そうすることで、RaspiにもRaspi ZeroにもPCにも接続できるようになります。

(パチパチパチ~)

 

 

OrangePI PCにsambaをインストールした

(2016.12.01)
OrangePI PCとRaspi間でファイルを送受出来るようになったので、既存のscriptファイルを使ってsambaをインストールします。

$ scp pi@192.168.2.101:./samba_install.sh ./

中身はこんな感じです。

#!/bin/bash
#<Install samba>
sudo apt-get install samba samba-common-bin
sudo smbpasswd -a pi
sudo mkdir /opt/samba

sudo chown pi:pi /opt/samba
chmod 777 /opt/samba
sudo mv /etc/samba/smb.conf /etc/samba/smb.conf.org
sudo cp ./smb.conf.replace /etc/samba/smb.conf
sudo service nmbd restart
sudo service smbd restart

 

もう一つsmb.confを置き換えるファイルを持ってきます。
$ scp pi@192.168.2.101:./smb.conf.replace ./

smb.conf.replaceとデフォールトのsmb.confの違いはこんな感じです。

pi@OrangePI:~$ diff /etc/samba/smb.conf smb.conf.replace
47c47
< ;   interfaces = 127.0.0.0/8 eth0

---
>    interfaces = 127.0.0.0/8 192.168.2.0/24
54,55c54
< ;   bind interfaces only = yes
<
---
>    bind interfaces only = yes
254a254,260
> [PIDRIVE]
>  comment = pidrive
>  read only = no
>  locking = no
>  path = /opt/samba
>  guest ok = yes
>  force user = pi

(全てオープンなローカル・ネットワーク内の運用が前提です)

 
samba_installを実行して・・・
$ sh samba_install.sh

 

f:id:denshikobo:20161201121657p:plain

 

OrangePI PCの/opt/sambaWindowsからアクセスできるようになりました。

パチパチパチ~

JAVAプログラムの開発は、sambaディレクトリにプロジェクト・フォルダを置いて、Windowns上のNetbeansで行うスタイルが気に入っています。

 

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センサーは無事だったようです。
やれやれ