denshikobo’s blog

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

三年前からPIC32を搭載したArduinoが発売されていたことを知った

少し前に、秋月電子からPIC32MZを使ったオシロスコープが売り出されました。ソースコードを公開しているのですが、Arduino IDEでビルドすると知ってびっくりしました。PIC最強のプレイヤーであるPIC32MZがArduinoの軍門に降っていたなんて・・・orz

akizukidenshi.com

さらに調べてみると、これ(↓)が2014/05/09に発売されていました。

akizukidenshi.com

まさか三年も前にArduino MEGA互換のPIC32MXが有ったなんて・・・orz

全く知りませんでした。

 

実は『Arduino』という文字から目を背けていたんです。トレンドに背を向ける偏屈な姿勢を反省しました。やっぱり、Arduinoって凄い!

 

そして、こんな物(↓)まで見つけてしまいました。

Debug chipKIT Sketches in MPLAB X IDE – chipKIT® Development Platform

 

ArduinoのスケッチをchipKIT-core(Ver1.4.0以降)を使ってMPLAB-XのProjectに落とし込んで、MPLAB-Xでデバッグ出来るようにするプラグインなんだそうです。

う~ん、ここまでPICの世界にArduinoが入り込んでいたとは・・・

 

chipKIT恐るべし!

 

ちょっと補足します

 入手したArduino (互換機)ですが「EasyWorldMall UNO R3開発ボード」で検索するとヒットします。単価¥458 関東への送料無料というフレンドリー価格です。注文から10日程で届きました。添付されているUSBケーブルはかなり短く、手持ちの別ケーブルを使いました。

 

 いよいよ始まるArduinoライフに心躍らせてUSBケーブルを接続したのですが・・・

適切なUSBドライバーがPCにインストールされていないため、正しく認識されませんでした。orz

 

 しかし、WIndws10のデバイス・マネージャーで『最新のドライバーを自動検索』するとCH340用のUSBドライバが自動的にインストールされ、COM6ポートが開設されました。(パチパチパチ~)

 

 後はArduino IDEでCOM6に接続して、楽しい(悪戦苦闘の)Arduinoライフが始まりましたとさ。

目出度し、目出度し。

ーーーーーーーーーーーーーーーーーーーーーーーー

近くに経験者が居らず、人柱になる覚悟も無い場合は、Arduino (互換機)に手を出してはいけません。

ーーーーーーーーーーーーーーーーーーーーーーーー

 

動き出した互換機を眺めながら、Arduinoの世界が¥458で手に入ることの意味を考えています。

 

 

Arduino(互換機)を動かしてみた

10月始めに注文したArduino互換機が届いたので、早速動かしてみました。

 

全くの初心者なので、『Arduinoの始め方』などのサイトを参考に先ずはHello World!から。続いてLチカ・・・えっ、ポートとGND間に直接LEDを接続するって?

 

 言い訳めいた説明が後に続いていますが、いくら何でもやり過ぎです。せめて、こういう(↓)部品の使用を勧めて欲しいものです。

akizukidenshi.comーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

と言うか・・・

後で気づいたんだけど、オン・ボードのLEDがDIGITAL13の出力で点滅する。

つまりUNO Rev.3(互換機)は、お試しのLチカに外付けのLEDは必要無い。

たから、折角手に入れたArduinoを大事にしたいなら、間違ってもLEDをコネクタに直に指してはいけません。

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

 ぶつくさ文句を垂れながら、抵抗とLEDの直列回路を組んでLチカを確認しました。次にLCD-Keypadシールドを動かすことにしたのですが、ダウン・ロードしたサンプル・スケッチがビルド・エラーで動きません。orz

”ヘッダ・ファイルが見つからない”というのですが、はて?

includeディレクトリってどうやって指定すれば良いんだ?

(これ↑は誤り。ライブラリ登録という方法をまだ知らなかった)

 

LCDKeypadのサンプルは諦めて、標準で入っていたLiquidCrystalライブラリで動かすことにしました。こちらのサンプル・スケッチは問題なくビルドできました。しかし、マイコンに書き込んでもLCDは何も表示しません。

 

ArduinoとLCDKeypadシールド両方併せても1200円しない格安互換機を買ったのがいけなかったのか?(<==少し後悔している)

 

気を取り直してLチカ・プログラムでデジタル出力機能を1pinずつ確かめました。Arduinoの出力は良さそうです。ところがLCDKeypadのpinで確認すると、何か接続が変です。

 

Liquidcrystalのサンプル・スケッチ

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

 

LCDKeypad(正規品)のWeb情報

LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

 

ん、pin配置が違う!

 

Liquidcrystalのサンプル・スケッチを次のように修正して

 //const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
const int rs = 8, en = 9, d4 = 4, d5 = 5, d6 = 6, d7 = 7;

LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

書き込んでみると・・・

 

ビンゴ~

ようやくLCDHello World!が表示されました。

やれやれ

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

ライブラリ登録の方法を調べて、LCDkeypadライブラリのzipファイルをインストール

したところ、LCDKeypadのdemo-sampleも動きました。

ただし、KeypadのUPとDOWNを認識しません(LEFT、RIGHT、SELECTは認識した)。LCDにADC変換結果を表示してみたのですが、UPとDOWNを押しても1023のまま変化しません。回路不良が疑われまが、この件は当面ペンディングにします。

 

結論として、安い互換機でもちゃんと動きました。

 

 

 

 

パターン・チェックまで通ったけど・・・

水魚堂氏の作成したMBE(Minimal Board Editor)はデザイン・ルール・チェックを行うことが出来ます。パターンとランドが近すぎるとか、小さな結線ミス(電気的にはOKだけど、パターンとしては繋がっていない)等を探し出す優れものです。このデザイン・ルール・チェックに通った後、BSch3V(回路図エディタ)とMBE(Minimal Board Editor)のネットリストを使ってパターンの整合性をチェックします。

 抵抗や無極性コンデンサのpin番号まで一致させないと通らないので大変なのですが、回路図通りのパターンであることがソフトウェアで確認出来る(目視だとチェック漏れの懸念が拭えない)ので助かっています。

 

 しかし、パターン・チェックは通ったものの・・・

 

この二日間、回路図を見直すたびに小さな誤りに気づいて訂正を繰り返しています。orz

ネットリストを使ったチェックでは回路図の誤りは(当然ですが)見つけてくれません。またつい先ほど、ベタ・パターンの設定間違いでGNDと+5Vがショートしている所が見つかりました。これもアートワーク上の作業なのでネットリストを使ったチェックには引っかからないのです。危ない危ない・・・

 

まだ暫くはPic-colo基板を発注できそうもありません。orz

 

 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
10μF25Vのチップ・コンデンサを1608から2012(こっちの方が安い)に変更しました。この修正が最後になってくれるだろうか?

 

 

 

基板設計を始めた

 Pic-coloプログラムのデバッグはまだ終わっていませんが、先行して基板設計に取りかかりました。パターンの設計には水魚堂さんのこれ(↓)を利用しています。感謝!

Minimal Board Editorのページ


 普通なら、回路図を書き上げてそれに従って基板設計を行うものですが、一人でやる作業なので変更は自由です。パターンが引き辛いときには回路の方を変更します。¥(^_^)

 先ずはザラザラと部品を配置して、取りあえず必要な部品が配置出来ることを確認しました。コンデンサや抵抗に表面実装部品を使うので余裕で入ります。O.K

(その分、パターンの引き回しが難しくなっているのですが・・・).

 続いて、回路図を眺めながら部品配置を整理します。O.K.

 でパターンを引いて行きます・・・ん! N.G.(<==案の定)

f:id:denshikobo:20171009113208p:plain

この配置だと真ん中のU1から上辺CN5の6,7,8pinとCN6の2,3,4,5pinにパターンが届きません。orz

 もう少し粘ることも考えましたが、無理をして後で回路の修正が入ったときに二進も三進も行かなくなる(4層基板にせざるを得なくなって製造コストに跳ね返る)のが心配です。離れた所からパターンを接続しようとして無理しているのは明かです。ここはスッパリ、今の配置を見直すことにします。

 

またやり直しだ~(<==実は嫌がっていない)

 

 

Windows 10にMosquittoをインストールした

MQTTを試すため、WIndows PCにMosquitto(これ↓)をインストールしてみました。

www.eclipse.org

OSは64bit版ですがdownloadしたのはmosquitto-1.4.14-install-win32.exeです。

インストーラを実行すると、libeay32.dllとssleay32.dllが見つからない無いと言われ、0.9.8版をインストールしたら、「序数****が見つからない」という訳の分からないエラーになりました。orz

 

このエラーは、libeay32.dllとssleay32.dllが古いときに出るらしく、これ(↓)を入れ、

https://slproweb.com/download/Win64OpenSSL_Light-1_1_0f.exe

OpenSSLのインストール・フォルダにあったlibeay32.dllとssleay32.dll(1.0.2版)をSystemフォルダにコピーしpthreadVC2.dllも探してきて同様に処置し、なんとかインストールを完了しました。

Windows管理ツール==>サービス(ローカル)にあるMosquitto Brokerを起動して、1883ポートを開放し、MQTT publishコマンドと subscriveコマンドを試すと・・・

 

無事、subscriverのコンソールにpublisherのメッセージが表示されました。

パチパチパチ~

Pic-coloの構想が発散気味になってきた

Pic-coloはUSB-シリアルでPCと接続する構想で設計を進めてきました。リモート接続したい場合はRaspi-PICcoloを使ってもらう(Raspi-3BのWifi機能を利用する)計画です。

 しかし、Raspi-3Bを独立電源で動かす(そのつもりでDCDC電源も手配した)のは、なかなか大変(特に運用時の充電)です。PIc-coloにESP-WROOM2(これ↓)を

espressif.com搭載することを考え始めました。

 

ところが、直ぐ¥150の差ならBluetoothの付いたESP-WROOM32(これ↓)の方が良いような気がしてきて・・・

Resources | Espressif Systems

 

でも、PIC16F1788では釣り合わない気がしてきて・・・

 

10月には基板化する計画だったのに、ここにきてPic-coloの構想が発散気味です。orz

 --------------------------------------------------------------------------------

方針が決まりました。(早っ)

ESP-WROOM32はオーバー・スペックなのと基板レイアウトが厳しいので止めにして、ESP-WROOM-2をオプション扱いとしてswitch-scienceのこれ(↓)が取り付け

www.switch-science.comられるソケットを設けることにしました。

構想が発散しかけたけれど、これにて収束!

 

実は、ESP-WROOM-2とPCとの通信をどうするか?迷っています。
ATコマンド?

Socket通信?

MQTT?==>その場合、Brokerは?

この辺りはボチボチ詰めて行こうと思います。