[管理者用]

イゼルローン日誌
宇宙・・・それは人類に残された最後の観光地である

         
戻る 
01月
02月
03月
04月
05月
06月
07月
08月
09月
10月
11月
12月
1998年
1999年
2000年
2001年
2002年
2003年
2004年
2005年
2006年
2007年
2008年
2009年
2010年
2011年
2012年
2013年
2014年
2015年
2016年

2016年05月
5月31日 ・さて、5月も終わり。とりあえず、お金は少し入ったかな?来月になったら確認してみよう。

5月30日 ・ネタ出しも段々行き詰まってくると、いろいろ変な物が検索されてくる。ポンプだのバルブだの・・って、一体自分は何を作ろうとしているのだろうというところ。
・この際なので、「ミニ化学コンビナート」みたいなミニチュアモデルを作って、実際に何かの精製ができたら面白いかなどと空想して、そもそもそんなに器用な手先があれば、図工であんな成績を取らなかっただろうと我に変えるのであった。

5月29日 ・いろいろ思うところがありながらも、一応5月最後の日曜日。
・次なる闇プロジェクトの計画進行でもある。さて、どうなることか。


5月28日 ・少しDMX512について調べる。あぁ、LEDモジュールの安いのも出回っているんだな。このあたりを使ってしまうのが簡単でいいか。

5月27日 ・書籍のネタだし。段々アイデアが枯渇してきそうだなと思いながら数えてみたら40個を超えている。極めて単純なものから、実現が難しそうなものもあるけど、一見難しくてもひょっとしたら玩具的なものならいけるかもしれないと思えるものもあるな。
・さて、ちょっと入出力系な部品手配。IC単体もあるけど、変換基板に載せる手間を考えたらとりあえず買ってしまってもいいか。

5月26日 ・さて、そんなこんなで少しLLVM。bitcodeまでもってきてくれるのであとはここから目的のCPU用にコンバートすればいいのだな。



5月25日 ・別件の基板のアートワークを見直し。FETの位置を少し移動させたらパターンがだいぶ楽になってきた。とりあえずこんなものでOKかな。
・個別のサーマルリリーフの、スポーク幅の設定とか、あまりやっていなかった部分もちゃんとできることが分かったし、スポークの向きも45度回転とかもうまくできることもわかったし、これから色々便利にできそうだ。

5月24日 ・さて、次の方どうぞ・・という感じだな。
・久しぶりに強化学習の翻訳本を開いてみたけど、やっぱりこれって今ひとつ。まぁ、元の趣旨がちょっと違うのかな。

5月23日 ・基板屋さんから受け付けと、代金振込みのメール。ガーバーデータのチェックはとりあえずOKだったということだな。
・一応クレジットカード決済にしておくか。ささやかだけどポイントもたまるし。
・さぁ、二週間たたずに出来上がってくるはず。どうなることやら。

5月22日 ・出図。KiCADの新しいバージョンで作ったガーバデータをもとにしたのだけど、うまく出来上がってくるだろうか。

5月21日 ・さて、原稿料の振込み明細と著作権関係の書類到着。金額は・・・まぁ予測していたとおり。厳しいなやっぱり。
・というところで、3軸加速度センサとフルカラーLED、そしてカラーLED用のドライバを探す。とりあえず実験用のものはピッチ変換されたもので良いのだけど、一箇所で全部揃わない。結構気が利かないな。
・さて、先日編集部の方と打ち合わせた範囲では、次の企画はPUSH型でないと無理だし、一緒にバスに乗ってくれるところも必要だ。今までのような具合にはいかないんだな。ちょっと大変。


5月20日 ・そういえば岩盤浴の無料券の切抜きをしていたのがあったなぁと思って見たら期限が今月一杯。せっかくなので、日帰り温泉へ。
・券を渡して作務衣みたいな館内着を受け取る。間違えて女性用のを渡してしまったのを、岩盤浴の説明中に気付いて慌てて交換した。実際に入ってみたら女性が大多数だったので、クセになってしまっていたのだろうな。
・ということで、一風呂浴びて休憩エリアでのんびりとアートワークでちょっと気になったところの再チェック。大丈夫そうだ。

5月19日 ・ということで一応ガーバを出してみる。あっ、レジストのクリアランス設定を忘れていたな。もう一回・・・ということで、やりなおしてそれなりに出力できた。
・一応穴位置も正しそうだし、これでもう一回パターンのチェックをして作ってみる事にしよう。
・さて、そんなこんなで19日なので振込み手続き。振込み予約して残高をチェック。やっぱりここまで減ったか。まぁ、このところこの口座はあまり使っていないから仕方ない。

5月18日 ・基板をAppendして多面付けしようとしてはまる。どうしても基板の追加メニューがシャドウされたままになる。
・一応最新版だし、まだ未完成ということもないだろう。本家サイトにいって眺めてみると、なんかメニューが違う。
・ひょっとして・・・と思ってpcbnewを単独で起動してみたら正解。なるほど、プロジェクトの画面からLaunchするのは、あくまでもSchematicと連携を取る事が前提というわけか。

5月17日 ・色々テスト。波形を見て確認していると、やはり変更したくなってきたな。
・4芯のケーブルで電源/信号1/GND/信号2という具合に並べると、、信号1と信号2の立上り/立下り時間が変わってくる。やはり信号/電源/GND/信号の方がいいのかな。
・いずれ公開するならKiCADの新しいものの方が良いかということで、読み込んでみる。一応うまく変換できたみたいだな。あとは基板の製造データがちゃんと作られるかどうか。


5月16日 ・せっかく作ったので、少し原稿形式でまとめておくことにする。果たして日の目を見ることがあるのかどうかは分からないけど、まぁあって悪いものではないだろう。

5月15日 ・これでPIC、PSoC、RaspberryPiの共通化ができた。
・ハードウェアも自分用のモジュール化で共通化できたので、何かと便利になった。次はAVRをどうするかかな。
・こうなってくれれば、今度何かの原稿書くにしても、prinfデバッグなどもできてすこぶる便利。LCDが複数使えるというのもなにかとお役立ちだな。

5月14日 ・というところで、とりあえずAVRは置いておいて、RaspberryPi+wiringPi。
・こちらは低レベルなAPIが無いので、ちょっとごまかしも入るのは仕方ないか。まぁ、一応互換が取れていればそれでいいのだという方針で書換え。
・ちょっとファイルディスクリプタの扱いで手が滑ったところを手直しして無事動作。あっけなかったな。

5月13日 ・Arduinoだと、ちょっとビルドまでの手間がかかりそうだなという感じ。どうせ裏で動いているのはavr-gccなんだから、もう少し素直に表に出てきてくれても良さそうなものだけどな。
・それならAtmel Studioなのか。はて。


5月12日 ・ATTiny13に入ったら面白いなと思って、PICやPSoCでビルドした時のmapファイルを見ていたらどうもメモリ容量的に無理そうだ。手持ちにあるものというと、Arduinoに使っているATMegaを使うしかないのかな。

5月11日 ・PIC版もとりあえず動いた。やっていくうちにファイルの構成などもなるべくハードウェア依存部分を切り離して共通部分をくくりだすようにしていく。
・一応形になったのでMPLAB-Xでビルドしなおして書込み。うん、ちゃんと動いたな。二つのACM1602が同時に動いているというのも、動いて当たり前なのだけど、見ている分にはなんとなく面白い。
・さて、もう少し機能拡張だな。
・そして改めて見直し。とりあえずということで1バイトリード/ライトだけだったのを複数バイト対応に書き換えて、1バイトリード/ライトは複数バイトリード/ライトを呼ぶ形に変更。スタックは使うけど、ROMの節約にはなる。どっちが得なのかはよくわからないけど、まぁいいだろう。
・とりあえず、PIC24とPSoCで動作確認。さて、次はAVRかな。これはArduinoを使うのが良いのか、はたまたAtmel Studioあたりがいいのか、あるいはLinuあたりでなコマンドライン系なツールチェーンが良いのか。

5月10日 ・さて、噂のPanama Papersはこのあたりで、右上の「DATA」をクリックして、国名などで検索すれば良いわけで、何となく眺めてしまったけど、「だから何」でもあるな。
・STARTコンディション、STOPコンディション、REPEATED STARTコンディションの生成、NAK応答などなど、とりあえず基本的なバス動作も確認できた。いよいよ移植作業かな。

5月9日 ・一日早くトランジスタ技術誌到着。うーん・・・・全体像を描くのに失敗してしまった感がしてくる。もう少し上手な「掴み方」が無かったものかとちょっと反省。
・さて、気を取り直してPIC24FのI2Cまわり。検索で見つかったPIC24FシリーズのI2Cコントローラのマニュアルは、PIC24F08のI2Cモジュールである、MSSP(Master Synchronous
Serial Port)とは何の関係も無い、全くの別物ということが分かって、結局データシートを読む。
・言ってることは分かったし、だいたいの流れというのか、弄り方も想像はできたけど、こればかりは実際に動かしてみないとわからないこともあるしな。とりあえず、昨日作ったLED点滅なサンプルのところにバススイッチICへの書き込みでも付け足して、波形を見れば良いかな。
・とりあえず出来たものを書き込んで動かしてみる。まずはスタートとストップ、続いて書き込み、その後リード動作という具合でやってみたけど、それほど問題無くデータのライト/リードができるところまできた。それほど難しくは無いな。
・これで雛型はほぼできたので、あとは移植か。これは明日やることにしよう。


5月8日 ・さて、ずっと寝かせていたMicrochipのPIC24F08KL200を使ってみることにする。書き込みは手元のユニバーサルプログラマ(ミナトエレクトロニクスのModel1882・・・だけど、実はELNECのBeeProg+と互換・・というのか、OEM版だろう)
・とりあえず昔インストールしていたMPLABーXを起動。と、ちょっと古いみたいなので、古いのを削除して改めてVersion3.26をインストール。デバッガ類は持っていないのでSimulatorを選んでおく。
・チュートリアルをちょっと見ながら、プロジェクトをこしらえて、コンフィグレーションビットの設定も眺めたけど、とりあえずデフォルトのままで良さそうだ。
・ということで、結局main()の中身を書けば良いだけだな。GPIO系なレジスタを眺めて出力ポートに設定して出力をトグル。適当にディレイを入れておいたので、まぁ、点滅くらいするだろう。
・さて、書き込みしようとしたのだけど、こちらも制御ソフトが古いので、最新版をダウンロード。いまだにサポート機器になっているあたりが嬉しいところだ。
・USBドライバが古いとかなんとか言われたけど、一旦削除して再インストールさせて、リブートしたらOK。
・さて、コンパイルして得られたHEXを読み込んで書き込み・・と思ったら、ここでもコンフィグレーションビットが設定できる・・というのか、ここで設定してやるってことになっているのかな?一応こちらもデフォルトでOKなようなので、そのまま書き込み。
・さて、ブレッドボードで動かしてみる。最初全く動かないので焦ったけど、原因はMCLRのプルアップを忘れていたためだった。プルアップしたら無事ポートに繋いだLEDが点滅した。
・さて、これで必要最小限の環境は整ったな。

5月7日 ・基本的なところの動作がわかったので、今度はLCDサポートをしてみる。
・こちらも初期化だのなんだのとあるのだけど、最初はやっぱり動かない。これまたロジックアナライザで何が起きているのか見たら、あれ?エラーになっているような挙動を示している。
・もう一回ソースコードを見直したらフラグの判定で手が滑っていた。いかんな。混乱しにくいようんに#defineしていた名称を直して、ミスしにくくしておく。
・2、3変更を加えて動作した。液晶パネル2枚構成も簡単に対応できる。なかなか良い感じだ。

5月6日 ・書き換え版で動作確認。とりあえずPSoC EVAL1でテスト。最初はやっぱり動かないので、ちょっとロジックアナライザをひっかけてI2Cデコードをさせて確認したら、つまらないミスがわかって、直したら動いた。とりあえず基本的なところはこれでよし。

5月5日 ・とりあえずの書き換え終了。今日はちょっとばたばたとしているので、確認はまた今度。

5月4日 ・一応連休中日。そんなものはこちらには関係ない。というところで、モジュールI/Oのソフトの見直しに本腰。
・以前作ったものは結構引数を細かくしてユーザレベルでいろいろできるような切り口を作っていたのだけど、これだと他のものに移植するときにやりにくい(標準のAPIでは用意されていなかったりする)ので、全面的に見直して、必要最小限の機能に抑えることにする。どうせソースコードごと公開なんだから、小細工したい人はソースを弄ればいいのだ。
・という方針を決めて新しいバージョンで作り直し。
・この際なので関数へのポインタも利用して構造体の中に収め、ついでに便利なようにtypedefする・・・のだけど、ここでちょっと引っかかったのが、
typedef struct abc{・・・}ABC;
 なんていう具合になったときに、自分自身へのポインタが欲しいということで、ABC *p;なんていう具合に恰好良く書きたいところだけど、{}の中にいる身としてはまだABCなんて知らないわけで、これはエラー。
・ということで、struct abc *p;という具合に書くことになるのだな。


5月3日 ・ちょっと疲れてうたた寝していたら、深夜に目がさめてしまって、日付が変わっていて5/3。何気なく先日出たNode-RED本をAmazonで検索したらカテゴリ別で1位。カテゴリがちょっと不思議だけど、なんだってあのAmazonで一等賞は良いものだ。

5月2日 ・さて、contrib-gpioもうまくいったので、少し整理をかねてModulioな原稿にできそうな絵を描いておく。
・Node-REDから利用するのも良いけど、ワンチップマイコンからも弄れるというのも大事なことだろう。Node-REDで作成して、生成されたjsonファイルを実行するプログラム(jsonエンジン?)を作るのも良い手だろうけど、とりあえず普通のプログラミング用に共通ライブラリの作成を考えてみる。
・関数へのポインタを使うと少し綺麗になるな。C++でクラスを使えればthisが使えて便利なのだけど、Cの範囲で済ませるとなると、構造体のポインタを引数で渡すしかないかな。


5月1日 ・さて、そんな騒動も片付いて5月である。
・昨日、騒動の合間に届いたRaspberryPi3を動かさないといけないのだけど、まずはその前にRaspberryPi2でやることがある。
・最大の課題・・・node-red-contrib-gpioで、Firmata(Arduino)を使う分には良いのだけど、raspi-ioのプラグインがうまく入らない、動かないという問題。
・試行錯誤していたのだけど、結局GPIOを使おうとするとwiringPiを使う、そしてここではroot権限がないと駄目。でもなぜかrootになって~/.node-red下にインストールしていっても、やっぱりプラグインがうまく動かない。
・それなら、npmでグローバルにインストールして、この時に--unsafe-permを付ければ良いんじゃないかとやってみたら、大正解。FirmataとRasp-IOが両方うまく使えるようになった。
・念のためにうまくいった方法のメモ。まずはこのページのように、


sudo apt-get remove nodered
sudo apt-get remove nodejs nodejs-legacy
sudo apt-get remove npm # if you installed npm


という具合にして既存のものを削除して


curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
sudo apt-get install -y build-essential python-rpi.gpio nodejs


で、node.jsをインストール。続いて


sudo npm cache clean
sudo npm install -g --unsafe-perm node-red


で、Node-REDをインストール。そして


sudo apt-get update && sudo apt-get install python-rpi.gpio


というとしてnrgpioを入れてから、
sudo visudo
としてファイルを開いて、一番下の行に
NodeREDusername ALL=(ALL) NOPASSWD: /usr/bin/python
を追加しておく。ここまでは先のページのとおり。
ここからcontrib-gpioやraspi-ioなどを見ると、単にnpm install・・・で良いと書いてあるのだけど、これが実際にはうまくいかないので、次のようにする。


sudo npm install -g --unsafe-perm node-red-contrib-gpio
sudo npm install -g --unsafe-perm raspi-io


こんなふうに、contrib-gpioとraspi-ioをグローバルインストール。これで
sudo node-red
とすればOK。sudoするのはGPIOノードでWiringPiにアクセスするときに必要だからで、GPIOノードを使わないなら、sudoしなくて良い。グローバルインストールしてあるので、piユーザでもrootでも同じようにGPIOノードが使える。
・動いてしまうとこんなに楽で便利なことはない。もうデモやサンプルの類は全部Node-REDでいいかな。


前月 次月
エース