ロボットを作る

子供のころ、映画「STARWARS」 を観てワクワクし、ガンプラにドキドキしていた。時間が経つのも忘れてしまう、そんな時間をもう一度、取り戻すために、Raspberry pi を使って、オヤジがロボット作りに挑戦する!

やり始めてみると、なかなか思い通りに行かない。時間の経つのも忘れて悪戦苦闘中。 「こんなちっちゃな Raspberry Pi で、こんなことができるんだ」を日々実感している今日この頃。

Raspberry Pi

ずいぶん間があいてしまった。
サンプルプログラムの OpenGL を Raspi 自身で動かそうとしたが、私のプログラミング能力ではできなかった。



よって、もとのサンプルどおりに

 A. センサー& Webサーバ:Raspi
 B. 3D表示(OpenGL)側:別のPC(Ubuntu)

にわけて 3D表示させてやった。
サンプルの注意どおりに webサーバの ip変えるだけで、うまくいった。すげぇ、かっこいい!

もともと MPU-6050 センサーから出力される数値が、机の上で制止している状態(のはず)でも、 server.py で出力される毎に、微妙に変化しているのが、3D 画面上での 微妙に振るえてる感じで表現されている。





RaspberryPi と MPU-6050 の組み合わせでマネしたページ。

Interfacing Raspberry Pi and MPU-6050

Reading data from the MPU-6050 on the Raspberry Pi



まず、準備として I2C を使えるようにする。

$ sudo vi /etc/modules
 i2c-dev を追記
$ sudo apt-get install i2c-tools
$ sudo raspi-config
  8 Advance Options
   ->  A7 I2C

MPU-6050 を

 Pin 
  1 - VCC

  3 - SDA
  5 - SCL
  6 - GND

に接続する。



raspi を再起動して、MPU-6050 を認識できてるかを確認。

  $ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- 68 -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         
 $ 


先のWebに載っていた pythonプログラムを完コピし、SMBus(1) に変えただけ。

bus = smbus.SMBus(1) # or bus = smbus.SMBus(1) for Revision 2 boards

おもむろに動かしてみる。

$ sudo python test.py 
gyro data
---------
gyro_xout:  -278  scaled:  -3
gyro_yout:  175  scaled:  1
gyro_zout:  -209  scaled:  -2

accelerometer data
------------------
accel_xout:  560  scaled:  0.0341796875
accel_yout:  276  scaled:  0.016845703125
accel_zout:  -16792  scaled:  -1.02490234375
x rotation:  0.941128353108
y rotation:  -1.90980354956

 でけた。中身をすこし研究しよう。



Raspi戦車を拡張する。



  1.  LCDに DHCP取得した IPアドレスを表示させる。
  2.  mjpg-steamer で USBカメラを動かす。

まず、使えるようになったLCD をもとに、/etc/rc.local に

 sudo python /home/pi/Desktop/raspi-sample/07-02-LCD.py $_IP &

を追記。 再起動すると LCD に IPを表示してくれる。



続いて、USBカメラを繋げてみる。


$ sudo apt-get update
$ sudo apt-get install libjpeg62-dev cmake
$ git clone https://github.com/jacksonliam/mjpg-streamer.git mjpg-streamer
$ cd mjpg-streamer/mjpg-streamer-experimental
$ make
$ cd ..
$ sudo mv mjpg-streamer/mjpg-streamer-experimental /opt/mjpg-streamer

$ sudo sh 10-02-stream.sh

で、9000 ポートが動いてるかを確認すると。。。? あれ? ない。

/var/log の messages では、
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: starting application
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: MJPG Streamer Version: svn rev: 
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: fps.............: 15
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: resolution........: 640 x 480
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: camera parameters..............:#012
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: www-folder-path...: /opt/mjpg-streamer/www/
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: HTTP TCP port.....: 9000
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: username:password.: disabled
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: commands..........: enabled
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: starting input plugin input_raspicam.so
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: starting output plugin: output_http.so (ID: 00)
May 23 05:03:39 raspberrypi MJPG-streamer [3782]: Starting Camera
と、いかにも動いてるな感じなのに、動いてない。



切り分けのため、10-02-stream.sh の中身をコマンドラインから叩くとエラーが。
$ sudo /opt/mjpg-streamer/mjpg_streamer -i "input_raspicam.so -fps 15 -q 50 -x 640 -y 480" -o "output_http.so -p 9000 -w /opt/mjpg-streamer/www"
MJPG Streamer Version: svn rev: 
ERROR: could not find input plugin
       Perhaps you want to adjust the search path with:
       # export LD_LIBRARY_PATH=/path/to/plugin/folder
       dlopen: input_raspicam.so: cannot open shared object file: No such file or directory

input_raspicam.so をフルパスで書くと、また違うエラーが出た。 あれ???


続きを読む

以前、失敗した LCD AQM0802(秋月電子) の利用。リベンジした。

失敗したときの記事

といっても結果的にはハンダ付けをやり直しただけだ。

著者 Webにもあるとおり LCDの9本の足の間はピッチが狭いだけに、初心者の私には難しかった。

"はんだ吸取線"を買って、隣同士が引っ付いたのを吸い取りながら、四苦八苦、何とかハンダ付けを終えた。

おもむろに、

$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- 3e -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         

おおっ、認識した。3e がその印。

07-02-LCD.py を実行し、Hello World を液晶に表示させた。。。はずが、
黒くなるばかり。。。あれ???


説明書のコントラスト設定を データシートの初期設定例をみながら

0x70,0x56 を 0x77,0x54 に変えてみて、短い文字を流すと見れた。

$ python 07-02-LCD.py 'test'

ただ、液晶画面の2行にわたる文字になると、今度は文字が薄くなる。なんで???

よくわからんので、もう一度ハンダを付け直した。団子の部分を解消したり、半分付いてなさそうなところをしっかり付けたり。”ハンダ吸取線”を駆使しながら、再構築した。

すると。。。 うまくいった。ハンダ付けに苦労したが、ちゃんと付いていれば液晶にくっきり文字が出る(当然なんだろうが)。ちょっと嬉しかった。

コントラスト設定を元に戻しても、くっきり文字が出た。



 

USBカメラを買った。

ELECOM
UVC WEBカメラ
UCAM-C0220FEシリーズ 



$ sudo apt-get install motion
$ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. 
Bus 001 Device 004: ID 04b4:aef9 Cypress Semiconductor Corp. 
Bus 001 Device 005: ID 1a81:2004 Holtek Semiconductor, Inc. 
Bus 001 Device 006: ID 056e:7016 Elecom Co., Ltd 

$ sudo motion

カメラを機動したあと、ブラウザで

http://localhost:8081

とするとカメラに写る自分が。

ただ、default で、/tmp/motion/ の下に沢山の jpg ファイルを生み出す。
これを止めるのに、

/etc/motion/motion.conf の

# output_normal on
output_normal off

と off に変更した。
これで jpg ファイルは無くなった。

Flash(swf)ファイルが生成される。再生するツールとして、gnash を入れる。

$ sudo apt-get install gnash

とりあえず動いた。





 




キャタピラ模型に、RaspberryPi2 と ブレッドボードなどを載せる。


webiopi を自動起動するように、以下を設定。

 $ sudo update-rc.d webiopi defaults

本ではLCDで ip address を表示するようにしてあるのだが、LCDがうまく使えてないので、
一旦、モニターとかを付けて起動して、ip を確認してから切り離して、動かした。

 
DSC04906

家にあったモバイルバッテリーを乗せる。ブレットボードはセロハンテープで止めた。
RaspPi2 は、ネジサイズがあわず、ネジ止めがうまくできなかった。ネジりん棒で止めた。

DSC04907



で、動いたぁ~!!!!!

DSC04909

うまく繋がったはずの wifiドングルが、つながらなくなった。


つながっているときは、

$ iwconfig 
wlan0     IEEE 802.11bgn  ESSID:"xxxx"  Nickname:"<WIFI@REALTEK>"
          Mode:Managed  Frequency:2.432 GHz  Access Point: xx:xx:xx:xx:xx:xx 
          Bit Rate:150 Mb/s   Sensitivity:0/0  
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=67/100  Signal level=28/100  Noise level=0/100
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

 $ cat /proc/net/wireless 
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
 wlan0: 0000   67.   31.    0.       0      0      0      0      0        0

で、Link Quality もこれくらいあった。で、何かの拍子にネットが切れてしまう。


debugのコマンドをとりあえず残しておく。

 $ sudo wpa_supplicant -d -Dwext -iwlan0 -c/etc/wpa_supplicant/wpa_supplicant.conf

ただ出力結果を見てもいまいち分からなかった。で、つながっているときに iwconfig をなんどか叩いてると Link Quality が、50以下になるときもあった。
で、おそらく wifi 電波の強さが関係しているんだと思う。

家のリビングに置いてある wifi ルータから RaspPi2 までは、廊下を挟んだ距離にあり、ドアを締め切っていた。念のためドアを開けっ放しにしたら、取りあえずつながるようになった。

増幅器でも買ってくるか。
 




いよいよラジコンのように切り離す。wifiドングルはうまく使えるようになったので、poweroff スイッチを付ける。

/etc/rc.local の exit 0 の前に以下を足す。

  sudo python /home/pi/Desktop/raspi-sample/10-01-sw-poweroff.py

本では、LCDも足すのだが、前にテストでLCDがうまく認識できてなかったのでスキップする。(改めてLCDにリトライしよう。と思いつつ。。。)
 
再起動。・・・・、途中で止まる。 がぁーーー、やってしまった。rc.local に追記した行の最後に & を忘れた。

えーーー、どうしよう。Goolge に聞いてみよう。すぐに答えを教えてくれた。



【Rasbian OSを single mode user で起動し、ファイル編集】

起動直後のRaspberryマークで、 shift + 上↑ で、cmdline.txt を以下のとおり追記する。

 dwc_otg.lpm_enable=0 init=/bin/sh console=・・・・・

このまま立ち上がっても、rc.local を編集できない。write権を与えるために remount

  # mount / -o remount,rw

これでめでたく rc.local を編集できて、うまく立ち上がった。


で、タクトスイッチで poweroff できた。
が、起動はスイッチじゃだめなので、電源抜き差しに。



そしてキャタピラ模型を組み立てる! こんな感じに。

DSC04905
DSC04904


ELECOM WDC-150SU2MBK を使えるようにする。



なにげにはまった。Raspberry Pi2 で、8188eu のdriver を入れるの巻。



ここをちゃんと読んでやるべし。
https://www.raspberrypi.org/forums/viewtopic.php?p=462982

ここにちゃんと書いてある。Pi2 は、

"a different one for Pi 2 with kernel 3.18.7-v7+ #755, 8188eu-v7-20150212.tar.gz."

と。使うgzファイル名が違うのだと。

まず、自分のOSバージョン確認。以下に #755 と出てる。

$ uname -a Linux raspberrypi 3.18.7-v7+ #755 SMP PREEMPT Thu Feb 12 17:20:48 GMT 2015 armv7l GNU/Linux


だから wgetするのも違う。

  $ wget https://dl.dropboxusercontent.com/u/80256631/8188eu-v7-20150212.tar.gz
  $ tar xzf  8188eu-v7-20150212.tar.gz
  $ ./install.sh


でOK!


そのあと、いろいろあったが結果的に以下に落ち着いた。

$ sudo cat wpa_supplicant.conf 
 
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid="elecomXXXXX"
psk="PASSWORD"
proto=RSN
key_mgmt=WPA-PSK
pairwise=CCMP
auth_alg=OPEN
}


これでやっと動いた。この Webも wifi 経由で書いてる。






ついにここまで来たぞ。
第10章「WebIOPiを用いたキャタピラ式模型の操作」


準備として、TAMIYAのキットを組み立てる。これは得意分野だ!

まずは、ギヤーボックスから。

 楽しい工作シリーズ NO.97
 ツインモーターギヤーボックス

DSC04897
DSC04898

と、思いきや、ちゃんと本を読んでから取りかかることに!


アームクローラー工作セットに付属するモータ1つのギアボックスと入れ替えるために、ちゃんと本を読んで、全体の工作ストーリーを理解してから取りかかることに。

 楽しい工作シリーズ NO.211
 アームクローラー工作セット


の説明書の応用編に「ツインモーターギヤボックスの取り付け」が出てきた。
本にも書いてあるが、ツインモーターギアボックスは、Cタイプで組む。

DCモータにコンデンサ(0.01μF=103)と25cm程の長めのケーブルをハンダ付けした。
DSC04899

モータドライバ2つを、左右のDCモータにつなげて、いざプログラム起動!

でけた。
 

第9章の
 9.5 ブラウザのスライダの利用 〜RGBフルカラーLED
 9.6 タッチイベントの利用 〜DCモーターの速度調整
を本のとおりに。



ブラウザのスライダの利用では、4本足のLEDを利用。前回3つ必要だったときは検証をスキップしたが、今回1つだけの利用なので、ちゃんとやってみる。

一番長い足が、共通アノード(+)で、抵抗を3つ接触しないように組んで完成。
本のとおりスライダを動かして、RGBでの濃淡がきれいに変化した。

次の検証へは念のため(接触させないため)電源切ってから組み替える。


タッチイベントも本のとおり、さくっとできた。
iphoneで、真ん中よりにタッチすると弱めで、外よりにタッチすると強めになった。


ここまできたか。
今年1月下旬に、この本に出会ってゆっくりではあるが、ここまできた。

ついに第10章の戦車!!!!だぁ!!!!

「Raspberry Pi で学ぶ電子工作」(講談社ブルーバックス)


 

第9章 P.250「9.4 ブラウザへの温度センサの値の表示」



I2C接続して前に利用した温度センサ ADT7410 を使用する。

準備として P.251の
 $ sudo apt-get update
 $ sudo apt-get install libi2c-dev
 $ wget http://ftp.de.debian.org/debian/pool/main/i/i2c-tools/i2c-tools_3.1.0.orig.tar.bz2

とりあえず本のとおり、3.1.0 を入れる。3.1.1 があったが。
 $ tar xf i2c-tools_3.1.0.orig.tar.bz2
 $ cd i2c-tools-3.1.0/py-smbus
 smbusmodule.c を sampleのものと入れ替える。
 $ python3 setup.py build
 $ sudo python3 setup.py install

エラーなく、終わった様子。



で、前回同様に iphone から http://<rasp ip>:8000/bb/02/ へアクセスしたが、あれ?

取りあえず、rasp自身のプラウザからはアクセスでき、温度も表示したのでネットワークが問題か。/etc/init.d/webiopi restart とかしてみる。

wireshark で iphoneからアクセスされてるかを確認しようと、
 $ apt-cache search "tshark"

で、wireshark を見つけて入れた。
 $ sudo tshark -i eth0 -f "port 8000"

を実行して流れてる。
あれ、今度は iphone で見れた。なんだったのか?  結局?のまま続きを読む



今度は本のサンプルファイルを用いてLチカする。

 $ sudo chown -R pi /usr/share/webiopi/htdocs
 $ cp -r 09-samples/bb /usr/share/webiopi/htdocs

最初は「9.3 ブラウザのボタンによるLEDの点灯」から。 
 $ sudo vi /etc/webiopi/config

[SCRIPTS]セクションに以下を追加。


 myscript = /usr/share/webiopi/htdocs/bb/01/script.py

そしてプロセスの再起動

 $ sudo /etc/init.d/webiopi restart


で、iphone から http://<respiのip>:8000/bb/01/ へアクセス。

でけた。

 



続いて、図9-5 LEDを点灯させる回路を作り、WebIOPi からLチカしてみる。

いままでのように Pythonプログラムを idle から起動させるようなことはない。
Raspi のGPIO 25pin をLEDへつなげるだけ。


P.237 「図9-6 デモアプリケーション GPIO Headerの画面」 は、
WebIOPi をインストールしたときの含まれていたデモアプリケーション。

本のとおり、自分のiphone から Lチカできた。なんかニヤニヤしてしまった。

 

第9章「WebIOPiを用いたPCやスマートフォンとの連携」に入る。



だが、2015/4/6現在、WebIOPiが Raspberry Pi2 に対応していないことは周知の事実であるようだ。 

ただ、この本の

著者のWeb 

の”第9章”では、すでにワークアラウンドが示されていた。これに添って進める。

WebIOPi-0.7.1をダウンロードし、/pi/homeに展開。
本のP.227-228のとおり進める。というのも解凍ツール Xarchiver 登場するが始めて見るので操作が、???な感じ。

そのあと、P.228 のインストールする前に、パッチを当てるようだ。
 $ wget https://dl.dropboxusercontent.com/u/69652790/bb/WebIOPi-0.7.1.patched.tgz
 $ tar zxf WebIOPi-0.7.1.patched.tgz
 $ cd WebIOPi-0.7.1/

 $ sudo ./setup.sh
  Do you want to access WebIOPi over Internet ? [y/n] n




無事終わったら、とりあえず、本のとおり webiopi を起動してみる.

$ sudo /etc/init.d/webiopi start

で、自分の iphone から Raspiの http://ip address:8000 でアクセスしてみると、
ログイン画面が出た。P.235 のユーザ名とパスワードで

 WebIOPi Main Menu

が出た。取りあえず出来た。

第8章の続き。



ここでは、精度の高いPWM信号を用いてサーボモータの角度制御を行う。

サーボモータ
Arduino Sidekick Basic Kit2 に付いてきたものを使う。
コネクタは、茶赤黄の3色。茶:GND、赤:+、黄:PWM信号


【準備】

wiringPi と wiringPi2-Pythonのインストール

 $ git clone git://git.drogon.net/wiringPi
 $ cd wiringPi
 $ ./build

 $ cd
 $ sudo apt-get install python-dev python-setuptools
   <ディスク容量喰うけどいいっすか?  yes> 

エラーでた。

  =================
  E: いくつかのアーカイブを取得できません。apt-get update を実行するか
  --fix-missing オプションを付けて試してみてください。
  =================



で、sudo apt-get update してからもう一度実行したらうまくいった。


 $ git clone https://github.com/Gadgetoid/WiringPi2-Python.git
 $ cd WiringPi2-Python
 $ sudo python setup.py install 


これで準備終わり。
 

08-04-servo.py を、おもむろに起動してみる。
=====================
>>> 
Traceback (most recent call last):
  File "/home/pi/Desktop/raspi-sample/08-04-servo.py", line 4, in <module>
    import wiringpi2 as wiringpi
ImportError: No module named wiringpi2
>>>  
=====================
エラーが出て、動かない。

 $ sudo python
 Python 2.7.3 (default, Mar 18 2014, 05:13:23) 
 [GCC 4.6.3] on linux2
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import wiringpi2
 >>> wiringpi2.piBoardRev()
 2
 >>> 
 $

ん? もしや。
idle(python2.x)で動かすとできた。idle3(python3.x)だとこのエラーか。

とりあえず。でけたぁ。python2 と python3 の違いに注意。


機械学習を学んでみよう。

◆利用できそうなパッケージをキーワードで検索してみる。
$ apt-cache search "weka"
weka - Machine learning algorithms for data mining tasks
weka-doc - Machine learning algorithms for data mining tasks

 $ sudo apt-get install weka weka-doc

なんか入った。取りあえず起動してみる。
トップ画面が上がった。バージョン 3.6.6。エラーも出た。

$ weka
---Weka Editor Registration ---
Trying to add database driver (JDBC): RmiJdbc.RJDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): jdbc.idbDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): org.gjt.mm.mysql.Driver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): com.mckoi.JDBCDriver - Error, not in CLASSPATH?
Trying to add database driver (JDBC): org.hsqldb.jdbcDriver - Error, not in CLASSPATH?


サンプルファイルから決定木を作り、木構造のビジュアル化で java のエラーがでた。
表示できるビジュアル化もある。

すこし修行が必要だ。 
 

「第8章 PWMの利用」の続き。



図8-11 DCモーターの速度制御用回路 を作る。
先に作ったLEDのやつをベースに若干つなぎ変えるところから始める。


 半抵抗ツマミを回す → ADコンバータ →[SPI通信]→
        【RaspPi】 →[GPIO]→ モータードライバ → DCモーター





DCモーター
事前にDCモーターに、コンデンサ(103)とワイヤーをハンダ付けしておいた。
モーターは、本のとおりのものを購入した。ラベルに

 MERCURY MOTOR
 FA-130RA 01/2014
 DC1.5V 9100RPM

と書いてある。
子供のころ買ってもらったプラモデルにお約束のように付いていた 130モータ。
それらは確か”マブチモーター”だったと思う。
同じ形状の130モータを見ると懐かしさが溢れてくる。

モータードライバ
TA7291P】
正逆転切替え用としてブリッジドライバで正転・逆転・ストップ・ブレーキの4モードがコントロールできる。 



図のとおり結線して動いた。
つまみの微妙な加減なのか、モータ回転とは別に振動する(通電する)ような音がずっとしている。「うーーーー」って唸ってる感じ。
 

第8章 PWMの利用に入る。



8章の最初にあるとおり、振り返る。
 RasPiが、デジタル出力 0/1(Low/High)の2値 【4章】
 RasPiに、デジタル入力 0/1(Low/High)の2値 【5章】
 RasPiに、アナログ入力 SPI通信:アナログ値→デジタル値変換【6章】
 RasPiに、アナログ入力 I2Cセンサ:アナログ値→デジタル値変換【7章】

この章で、PWMを用いて「擬似的な」アナログ信号を出力できることを学ぶ。



図8-6 を組んで、結果的には半抵抗のつまみを回してLEDが明るくなったり暗くなったりりしたので、うまくいった。

途中、PIN位置を間違えてまったく動かなかった。原因分からず四苦八苦した。


で、「8.4 RGBフルカラーLEDの色を変更しよう」は都合により、スキップする。
都合、半抵抗が2個足りない。買いに行くのを忘れた。orz 

【2015/3/20 19:00時点】未解決!
実は今日の半日がこれでつぶれた。。。がーーーん。基盤を壊したのだろうか。


LCDモジュール AQM0802A-RN-GBW を認識できず。

どうも LCDを認識していないようだ。
$ sudo i2cdetect -y 1
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- -- 
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 
70: -- -- -- -- -- -- -- --                         



もちろんプログラムも起動しない。 
----------------------
>>> 
Traceback (most recent call last):
  File "/home/pi/Desktop/raspi-sample/07-02-LCD.py", line 70, in <module>
    setup_aqm0802a()
  File "/home/pi/Desktop/raspi-sample/07-02-LCD.py", line 17, in setup_aqm0802a
    sys.exit()
SystemExit
>>>  
----------------------


Debbugをかけてみる。

Debug Control画面で、「Step」すすむと
            bus.write_i2c_block_data(address_aqm0802a, register_setting, [0x38, 0x39, 0x14, 0x70, 0x56, 0x6c])

の行で

IOError:(5, 'Input/output error')

で黄色くなる。そらそうだ。


 

↑このページのトップヘ