<   2015年 08月 ( 7 )   > この月の画像一覧

RaspberryPi で AQM0802A-RN-GBW (I2C) (8/26)

どうも安い液晶は壊れているようだ。 ≫***2016/5/5 追記有り***
ラズパイでI2Cを動かして動作確認してみると、デバイスが反応しない。

次のサイト様の手順に従った。
Raspberry Pi で LCD モジュールを使う - うみやま亭

pin 1:VDD,RESET
pin 3:SDA
pin 5:SCL
pin 6:GND

a0034780_22494364.jpg

a0034780_22531966.png

[Raspberry Pi]I2Cを使う(設定編)

sudo vi /etc/modules
i2c-bcm2708
i2c-dev

sudo reboot
sudo apt-get install python-smbus
Y
vi /etc/modprobe.conf
#blacklist spi-bcm2708
#blacklist i2c-bcm2708
(nothing)

dmesg | grep i2c
(nothing)

Raspberry Pi の I2C を有効化する方法 (2015年版) - 意識低い開発者のBlog

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

sudo rpi-update

Would you like to proceed?(y/N)
y
Total Received
47.1M 39.8M

sudo reboot

sudo raspi-config

8 Advanced Option -> A7 I2C

I2C 有効
はい
カーネル
はい

finish
reboot
はい

sudo vi /boot/config.txt
末尾に
dtparam=i2c_arm=on
(no chenge)

sudo vi /etc/modules
末尾に
i2c-bcm2708
i2c-dev

sudo reboot

dmesg | grep i2c
[ ]bcm2708_i2c ... BSC1 Controller
[ ]i2c /dev entries driver
sudo i2cdetect -y 1
3eがONになっていない。⇒デバイスのIDが認識できない。∴壊れてる。
lsmod
i2c_dev
i2c_bcm2708
動いてる

最初に配線する時にプルアップ抵抗とGNDやVCCを間違った繋ぎ方をしていた。
けれど配線を正しくしたから大丈夫と思ったが、ダメだったようだ。
改めて購入しよう。


=====

(2016/5/5:追記)
どうやらこの液晶、秋月の販売時期によって認識するものとしないものがあるらしい。
3つほど解決策が上がっていたが、結局Raspberry Pi 2 のGPIO 3番ピンのR24という抵抗を基盤から引きはがさないといけないらしい。(もちろんそんなことはしないよ)
その解決策だが、
(1) コメント欄でご指摘のあった2KΩを付ける
(2) 秋月で返金処理してもらい、ストロベリーリナックスの販売している液晶に変える
(3) 上記のR24抵抗を引っぺがす

まあ(2)一択だけどね。時間と交通費の方が高いので、返金はあきらめよう。

それぞれリンクは以下のサイト様に詳しい。

(1) 実例で学ぶRaspberry Pi電子工作 補足情報: 読者の方々の声

(Raspberry Pi を使ってみる - Attic or Garret の「小型キャラクタLCDにまつわるエトセトラ (2016/02/13~)」ここの公式(秋月)のpdfは(1)で検証してダメだったらしい。)

(2) ミニI2C液晶モジュール(8x2行)[バックライトなし] - SB0802GN - ネット販売

(3) ◎I2Cバスのプルアップ抵抗は10kΩを推奨いたします。 Raspberry Piで使用する際は、I2Cバス(SDA)のプルアップ抵抗(R24,1.8kΩ)を取り外し、外部で10kΩにプルアップすることが必要です。R24はGPIO-3番ピンの近くに実装されています。

返品については、(1)のコメントの割と最後の方に「考えている」との店とのやり取りがあっただけなので、本当にできるかは自己責任で。秋月も中国製品のコントロールがうまくいってないんだろうな。もちろん(2)もいつダメになるかわからないから、もうこの液晶は捨てた方がいいかもしれない。まったく信頼というものを中国はどう考えているんだろう。ストロベリーリナックスも100口とか書いてるけど大丈夫かな?
[PR]
by k1segawa | 2015-08-26 22:50 | Comments(2)

RaspberryPiにVNCでPCリモート接続(8/22)

上手くいかない時は別の方法で。
インストール済みのX11VNC Serverは使い方がよくわからず、うまく接続できない。

こちらのサイト様の手順でうまくいった。
VNCでRaspberry Piを別のPCから操作しよう
RaspberryPi側:
x11vnc -usepw(enter)
Enter VNC password:(VNC server用の適当なパスワード:元々は空)
Verify password:(同上)
Write password to /home/pi/.vnc/passwd? [y]/n y

LXTerm端末からifconfigと打ち、プライベートIPアドレスを確認。
(WiFiなので wlan0のinetアドレス:192.168.11.6がそれ)

Win10 PC側:
UltraVNC 日本語インストール版
UltraVNC102_JP1a_v.zipを展開し、
x64/UltraVNC_1.2.0.7_SetupX64.exeをインストール。
VNC Serverはチェックから外し、VNC Viewerだけにする。
デスクトップにアイコンを作るようチェックし、.vncファイルに関連づけはチェックしない。
デスクトップのショートカットをクリックすると、以下の画面になる。
a0034780_15122564.png

192.168.11.6:5900と入れて、接続ボタンを押すと、パスワード画面になる。
a0034780_1555955.png

ついでに接続中画面が出る。
a0034780_156161.png

RaspberryPi側のVNC server用の適当なパスワードで決めたパスワードを入れてログオン。

PC側に1つのウィンドウ画面で、綺麗にRaspberryPiの画面が表示され、PCのキーボード・マウスで操作できるようになった。
[PR]
by k1segawa | 2015-08-22 17:50 | Comments(0)

Raspberry Pi 2 B+ で Minecraft プログラム(8/20)

ちょっと気の迷いというかラズパイでMinecraft。

pythonでプログラムできるというのでやってみたが、ディストリビューションもハードウェアも進化が激しいのがLinux。Raspberry Pi 2 B+でMinecraftが標準になってるので、巷のHPに書いてあるインストールは不要になってしまった関係で、パス等が変わってHP通りには動かない。

こちらのページから起動の手順を抜粋。
Raspberry Pi Model B+: Minecraft on the Raspber... | element14

1.Raspbian OSで起動したRaspberryPiで、Menu>ゲーム>Minecraft Piを起動。
2.start game>create worldで新規に遊ぶ環境作成(新規でなくてもいい)。
3.マウスがminecraftのウィンドウ内に閉じ込められているので、Tabキー押下でマウス解放。
4.Menu>アクセサリ>LXTerminalで端末起動。
5.端末上で次のように打ち込んでpython shell (専用IDE)を起動。

sudo idle &

6.shellや端末がminecraftのウィンドウの後ろに隠れてしまったら、minecraftの少しずれているウィンドウ(うちだけなのか?ウィンドウタイトルをドラッグして移動やウィンドウサイズを変えれるようにわざと?)をクリックして表に出す。間違ってminecraftのウィンドウをクリックしてもTabキー押下。
7.shell上で次のようにキー入力。(python 2.7.3)

import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.creat()
mc.postToChat("Hello World")

8.minecraftのウィンドウの、上から2/3ぐらいに細い黒いバンドが水平に出てその上にテロップみたいに白い文字で左詰めでHello Worldと出れば成功。

参考ページの2/5ぐらいの場所にHello Worldのスクリーンショットがある。
これ以降、その後のプログラムが実行可能。

こちらのHPのHello World表示が成功したあとのプログラムがよろしいかと。
Raspberry PiでMinecraft! プログラミング基礎編 » DesignSpark

どうやらimport文の書式が変わったようで、python 2.7.3だかminecraftのバージョンアップで
import mcpi.minecraft as block
でOK。
block.STONEは使えず、とりあえず1にしてみる。
mc.player.setTilePos(0,0,0)
mc.setBlock(0,10,0,1)
で自分を原点に移動して、上空にブロックを1個置く。
for x in xrange(0,10):
mc.setBlock(x,10,0,1)
この後もう一度Enterキーを押す事。そうしないとFor構文が完結しないので表示されない。
これで頭上に横一線にブロックが配置された。
(Shutterによるスクリーンショットは撮れない。WindowsのDirectX描画みたいなものか?)
[PR]
by k1segawa | 2015-08-20 00:39 | Comments(0)

開発途上国部品を利用する場合(8/15)

秋葉原で、シロッコファンUSB扇風機を2台買った。
180円と1200円のものだ。
1200円の方はアマゾンでも取り扱っていて、何回かの改善を果たしてそこそこ売れ筋になっている。
180円は製品型名を検索しても、まったく載っていない。かろうじて取扱い会社名で、ヒットするが、すでに製品ラインナップには無い。

使用感だが、180円とは思えないほど風量が強くなんでこれが消えてしまったのかと思っていたら、1週間ほど長時間回して使用していたら、ある時急に電源を入れても回らなくなった。
仕方ないので分解すると、製品全体の鋳型や風を送る仕組みやUSBコネクタとスイッチ等、よく出来ていて何の問題も無い。肝心のモーターだけが、回らなくなっていた。
どうやら回り出しのきっかけがないと電磁石が固着して固定してしまうらしい。そのきっかけを与えてもしばらくすると止まってしまい安定しない。
一切の製品番号もなくチープさが漂う。
モーター以外の部分は工作精度も高く、風送りためのファン外側の作りもこんな方法があるのかと感心するほどなのに、安く上げただろう心臓部分の部品の品質を管理できなかったために、上位会社の黒歴史として葬り去られてしまったようだ。開発途上国を使うという事はそういうよくありすぎるリスクも負うという事。もう国内でいいんじゃないかな。製品も安いか高品質の二極化してる。

どんなに抜き打ち試験をやってもその情報が洩れ、その時だけいい部品を使ったり、大量発注後は、手を抜くというのは、マクドナルドでも痛い目に合っているし、社会的信用を大事にする会社ならこういう方法でコスト削減するのはリスクが大きすぎる。

中国の期限切れ鶏肉使用事件、高い品質管理下でなぜ発生?防止策における3つのポイント
ここでも言っているようにもうコストはそれほど安いとも言えないし、国内の社会の成熟化を待たないと「信頼」が大事だとはならないだろう。
[PR]
by k1segawa | 2015-08-15 12:39 | Comments(0)

ソフトオシロに100均イヤホンで苦戦(8/13)

ソフトオシロをPCのライン入力からの取り込みで計測しようとして、
100均のイヤホンをばらしてプローブを作るのがよく紹介されているが、
あの線はリッツ線といって、絶縁膜で覆われた細線を撚り合わせており、
はんだづけしてもちっとも導通しないので、苦労するよりイヤホンジャックのメスの部分(オスにもはんだ付け出来るけどむき身のままだと抜き刺しで力がかかる)と、3.5Φの両方オスのコードを組み合わせた方がいいです。(オスオスケーブルは加工しないから別の用途にも使えるし)

私はこれを使いました。
a0034780_18291225.jpg

イヤホンジャックの方を分解して、こんな風にしました。
はんだがくっつかないので、少し紙やすりでこすって、フラックスを塗ってからたっぷりはんだを盛って。
a0034780_1834396.jpg
先端にはプローブの代わりにICクリップを付けます。(ICクリップの写真は後述)

イヤホン オスオスのコードはこんなやつ。
a0034780_18405942.jpg
これを上の自作ケーブルと繋ぎ、ライン入力に差し込むわけです。

作ったケーブルは1CH(1つ)ですが、イヤホンジャックの分解写真で、もう一つピンが空いているのでそれにも付ければ2CH(2つ)になります。まあ、使わないけどね。(前の写真の緑の線がGNDに繋ぐプローブだと覚えておく事)

ソフトオシロは有名どころのHandyOscillo。ベクターで落とせます。
Windows10でも動いてますが、設定変更後、終了時にOCXモジュールがどうのこうのってエラーが出るので、変更後はアプリの再起動した方がいいです。

【使い方】
スタートメニュー>すべてのアプリ>(ひらがなの”は”)>ハンディ・オシロスコープで起動し、設定変更>デバイス・周波数>サウンドデバイスで、「2.ライン入力(XXXXXXX)」を選びます。(一つしかサウンドボードがなければ1.のプライマリサウンドキャプチャでもいいかも)
ライン入力に自作ケーブルを差し込むと、インストールドライバによっては選択画面が出るので「ライン入力」を選んでおきます。オシロスコープ画面では2つ水平線が出てるけど、どちらかがプルプル震えていればうまくいってます。

【計測】
今回arduinoのPWM出力スケッチである、01.Basicの下にあるFadeを使いました。(LED1個の明るさをゆっくり変化させるプログラム)
IDEは1.6.5をインストール。arduinoはJapaninoを持っていたので、設定(ボード、プロセッサ、書き込み装置)を次のようにした。
a0034780_195479.png

スケッチを見るとLED=9とあるので、GNDとD9ピンをプローブで挟めばいい。
Japaninoの回転ハンドル兼LEDのコネクタをちょっと浮かせて、挟んだのがこちら。
a0034780_19121199.jpg

オシロスコープには下のようにPWM特有のパルスが表示される。
a0034780_191675.png

実際にはこのパルス幅がゆっくりと変化する様子を見ることができます。

最初いくらやっても波形が出ないので、なぜ?と思ったら、リッツ線にやられました。
質問箱でも良い回答はなかったです。急がば回れ。

電子工作で5Vレベルの入出力なら、今回のケーブルのようにライン入力直結でもOK。
12Vとか車載に使う時は、バッファと言われるオペアンプで出来た回路をかました方がいいでしょう。
まあやらないけどね。(部品を買って準備済みなのは内緒)
やっとこれでI2Cで初期化コマンドがうまく送信されているかチェックできるぞー
[PR]
by k1segawa | 2015-08-13 19:17 | ポケコン | Comments(0)

Leap Motion v2の仕組み(8/12)

2015年7月にLeap Motionのv2が正式リリースされた。
昨年発売された時よりずいぶん良くなったと聞いて、興味があったので購入。
ソフトウェアアップデートだけでハードは前と同じ。

でHPから落としたWindows用ドライバで、OK。巷の記事ではSDK v2をインストールしないといけない事が書いてあるが、すでにv2.3ぐらいにアップデートされているので、Windows用ドライバでも問題なく指の関節が表示される。SDK v2を入れるとタスクトレイからビジュアライザーというのが選べて、それが赤外線で映したカメラ映像が表示されて、どんな仕組みで指を認識しているのかが非常によくわかるから、入れるべきのようだ。

そのカメラ映像を見て思い出した。なんか見たことあるぞ。
「Webカメラ 赤外線 認識 タッチパネル」で検索すると、

[pdf]手作りマルチタッチディスプレイの制作プロセス

5年位前にタッチパネルをWebカメラと赤外線ランプと赤外線フィルターで作るのが一部で流行ってた。
OpenCVみたいので認識して、アクリル板に指先を触れさせてその明度差でタッチしたかどうか検出する。
その時のアクリル板が無い時のカメラ映像じゃないか。
a0034780_23364364.jpg


あの頃は結構な設備が必要で、環境光もノイズになって難しかったのに、こんなにコンパクトに赤外線フィルターも高精度になって、アクリル板ではなく、手自体をOpenCVで画像認識させて、指や手首を検出するプログラムを載せたのか~

このウィンドウでhキーを押して左にキーヘルプを表示させて、fキーでカメラ映像をON/OFFし、oキーでジェスチャーなどを表示させるとこうなる。(円とか指をキーを打つようにタップとかスワイプがある-結構素早く)
a0034780_23365717.jpg
円は結構認識するけど、映画マイノリティリポートみたいにウィンドウを握って、回転させて、移動してなど、なかなかv2と言えども難しい。
最初のAPP HOMEにある、掴む動作やGoogle Earth(ツール>オプション>ナビゲーション>マウス以外のコントローラ>有効にする)の操作でさえ、思ったようにいかないのだから。

SDKのAPIで用意されているので握る(グラブする)など自分で検出させなくてもいいが、さらなる検出率向上を願いたいな。

そして、映画みたいに、グラブをオブジェクトの選択に、グラブしたままスワイプをドラッグ、グラブしたまま回転をボリュームみたいなGUIに割り当ててズームやスクロールなど数値を増減するインターフェースにして、マウスクリックのような繊細な操作でなく、今のスマホのようなニュース画像のスライドやピンチのような拡大縮小みたいな大雑把な操作に割り当てれば、そこそこ使えるインターフェースになるのかな。あと今なら音声認識も組み合わせて、アプリの起動も出来るしね。
a0034780_03142.jpg

[PR]
by k1segawa | 2015-08-12 23:48 | Comments(0)

AND回路(8/11)

ちょっと時間が空いた。
少しI2Cで苦労してるので、一旦休止。

で、AND回路を実際の電子部品で実装してみる。
a0034780_1465383.jpg
左上、右上、右下の順で、論理記号、回路図、実体配線図となる。
動作させるためには点線の部分を必要とし、めんどうといえばめんどう。
(マイコンも結局内部でこう繋がっている)
※抵抗値は電源やLEDの種類で異なる。

0/1の信号を入れるためには、電源に繋いで3V流すか、GNDに繋ぐかをスイッチで切り替える。GNDに繋げば、LEDの内部抵抗値を嫌ってダイオードの方へ電源から電流が流れるから、LEDの方へは流れず点灯しない。電源にスイッチを切り替えれば、ダイオードの方には電流は流れず、LEDの方に流れ点灯する。
つまりどちらか一方がGNDなら電流がダイオードの方に流れてしまうのでLEDは点灯しない。
結果スイッチを電源に切り替える方を1、LEDに電流が流れて点灯するのを1とすると、AND回路が実現される。

Fritzingで描いた配線図は次のようになる。
a0034780_1281415.jpg
1や2の線はスイッチの代わりに+や-に切り替えて繋ぐ。
実際の写真はこれ。
a0034780_135334.jpg
ICにはこういうのが一杯入っていて、実際にはこんなに色々考えて繋ぐ必要がある。
[PR]
by k1segawa | 2015-08-11 02:06 | ポケコン | Comments(0)