tag:blogger.com,1999:blog-6558574304592725596.post8448485936972630624..comments2022-02-08T13:43:07.521+09:00Comments on Raspberry Piで学ぶ電子工作 補足情報: 本書発売後の追加情報(Pi Zero~Pi 4までの古い情報)Takashi Kanamaruhttp://www.blogger.com/profile/11364738618850170255noreply@blogger.comBlogger12125tag:blogger.com,1999:blog-6558574304592725596.post-10681393355604680712021-12-21T08:20:46.895+09:002021-12-21T08:20:46.895+09:00Takashi Kanamaru様
大変失礼いたしました。とても参考になりました。うまく動作できまし...Takashi Kanamaru様<br />大変失礼いたしました。とても参考になりました。うまく動作できました。こちらの書籍も購入させていただきます。Anonymoushttps://www.blogger.com/profile/11368018955991767543noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-9024491279687451792021-12-20T14:51:52.478+09:002021-12-20T14:51:52.478+09:00コメントありがとうございます。
貼り付けて頂いた JavaScript プログラムですが、
私の書...コメントありがとうございます。<br /><br />貼り付けて頂いた JavaScript プログラムですが、<br />私の書籍で紹介していない方法が多数使われています。<br /><br />例えば、私のサンプルプログラムでは JavaScript を<br />HTML ファイルに書かないようにしてます。<br /><br />また、私のサンプルプログラムでは、<br />setFunction 関数や digitalWrite 関数を<br />JavaScript から呼び出すことはしておらず、<br />全て Python から呼び出すようにしています。<br /><br />ですので、私の書籍以外で参考にされた<br />書籍やサイトがあるのでしたら、<br />その執筆者に質問されるのが良いのではないかと思います。<br /><br />以上を理解して頂いたうえで、一点だけコメントするとすれば、<br /><br />webiopi().setFunction(port,portb,"OUT", ...)<br />や<br />webiopi().digitalWrite(port,portb,val,valb);<br />の部分で、<br />「二つのポートを同時に設定する」<br />ということを行っていますが、<br />そのような記法はサポートされていませんので、<br />そこで JavaScript のエラーがでるだろうと思います。<br /><br />この件につきましては、この回答を最後とさせてください。<br /><br />よろしくお願いします。<br />Takashi Kanamaruhttps://www.blogger.com/profile/11364738618850170255noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-30172525850878948842021-12-19T16:19:30.611+09:002021-12-19T16:19:30.611+09:00はじめまして、本書にてとても勉強になりました。webiopiでスマホ経由でLEDをGPIO24で点灯...はじめまして、本書にてとても勉強になりました。webiopiでスマホ経由でLEDをGPIO24で点灯させることはうまくいきましたが、下記のようにHTMLプログラムを改編して24と23GPIOを設定しましたがOUTにする初期値までは動作しているようですが、WEB上の23,24のボタンは押されて色も変わりますが両方ともONにならない(0から1に)状況です。何が間違っているかご指摘いただけますでしょうか。<br /><br /><br /><br /><br />webiopi().ready(function() {<br /> var port = 24; //GPIO24<br /> var portb = 23; //GPIO23<br /> var val = 0; //初期値<br /> var valb = 0; //初期値<br /><br /> // 初期設定: GPIO24をOUTモードにして、出力を0にする<br /> webiopi().setFunction(port,portb,"OUT",function(){<br /> webiopi().digitalWrite(port,portb,val,valb);<br /> });<br /> <br /> // ボタンが押されたらGPIO24の値を反転する<br /> $('#btn1').click( function() {<br /> val = (val) ? 0 : 1;<br /> webiopi().digitalWrite(port,val); // 値valを出力<br /> // ボタン背景色の変更<br /> color = (val) ? "#f88888" : "#f8f8f8";<br /> $(this).css('background',color);<br /> }) ;<br /><br /> // ボタンが押されたらGPIO23の値を反転する<br /> $('#btn2').click( function() {<br /> valb = (valb) ? 0 : 1;<br /> webiopi().digitalWrite(portb,valb); // 値valbを出力<br /> // ボタン背景色の変更<br /> color = (valb) ? "#f88888" : "#f8f8f8";<br /> $(this).css('background',color);<br /> });<br />});<br /><br />Anonymoushttps://www.blogger.com/profile/11368018955991767543noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-29102182583336925312020-01-09T16:35:40.029+09:002020-01-09T16:35:40.029+09:00はじめまして。正月の暇を見て昔かったこの本を取り出してRaspberryPi3B+で遊んでいました。...はじめまして。正月の暇を見て昔かったこの本を取り出してRaspberryPi3B+で遊んでいました。現在とそぐわない箇所もあり、こちらのページを見るとしっかりサポートされていて感謝の至りです。<br />ところで、私がハマったのは、WebIOPiがインストール時には起動するのに、何度か操作するうちに起動しなくなることです。この時は、上の方に書いてある通りにWebIOPiを再インストールしてもダメでした。これで2日間ほど苦労しました。<br />今日になって原因がわかりました。/etc/webiopi/configの中にある"myscript= ~"の記述に削除してしまったファイルが入っていたのです。<br />試しに"myscript= ~"の行の先頭に#を入れてコメントアウトしたらあっさり起動させることができました。<br />WebIOPiの起動で悩んでいる方はお試しください。奈川太郎https://www.blogger.com/profile/03618242075432786132noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-11112764510245762862017-04-26T00:55:22.605+09:002017-04-26T00:55:22.605+09:00お久しぶりです。秋月電子通商さんより、Raspberry Piで正式に利用可能なLCDモジュールが発...お久しぶりです。秋月電子通商さんより、Raspberry Piで正式に利用可能なLCDモジュールが発売されたので解説を追加しました。<br /><br />http://raspibb.blogspot.jp/2016/02/blog-post.html<br />の「7章全般:利用できるLCDについて1~秋月電子編」Takashi Kanamaruhttps://www.blogger.com/profile/11364738618850170255noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-20812569851325903382016-08-04T15:53:48.853+09:002016-08-04T15:53:48.853+09:00お久しぶりです。小型LCD(AQM0802)について、既に解決済みとは思いますが、小型LCD(AQM...お久しぶりです。小型LCD(AQM0802)について、既に解決済みとは思いますが、小型LCD(AQM0802)の新しいロットがRaspberry Piで動作しない件について、正式な対処法が公開されましたのでお知らせします。<br /><br />本書発売後の追加情報<br />https://raspibb.blogspot.jp/2016/02/blog-post.html<br /><br />において、<br /><br />p.171:完成品のLCDを購入しても認識されない場合の対処法<br /><LCD対処法:予備知識><br /><LCD対処法:暫定版><br /><LCD対処法:正式版(ただし上級者向け)><br />の順で記しましたので、ご参考ください。<br /><br />この「正式版」で用いられているI2Cリピーターは、トランジスタ技術8月号付録の基板でも用いられているものです。<br />http://toragi.cqpub.co.jp/tabid/807/Default.aspxTakashi Kanamaruhttps://www.blogger.com/profile/11364738618850170255noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-54890776214358862852016-02-04T22:57:30.647+09:002016-02-04T22:57:30.647+09:00先程、上記の問題が解決致しました。
色々と試した結果、原因はLCDの不具合だったと思われます。
...先程、上記の問題が解決致しました。<br /><br />色々と試した結果、原因はLCDの不具合だったと思われます。<br /><br />まず、金丸様が挙げられた3点について試してみました<br /><br />1.回路の接続<br />何回か確認、刺しなおし等を行いました。ブレッドボードも逆さにして試してみましたが、結果は変わりませんでした。<br /><br />2.温度計との相性<br />温度計のみを外してsudo i2cdetect -t 1を実行してもアドレス3eは認識表示されませんでした。<br /><br />3.プルアップ抵抗<br />除去後も結果は変わりませんでした。<br /><br />その後私は、<br />RaspberryPi本体を別の個体に替える<br />microSDをフォーマットしてOSを再インストールしたのですが、これらを行っても結果は変わりませんでしたので、当ブログにある、<br />『【大型】I2C低電圧キャラクタ液晶モジュール(16x2行)通過型』と、<br />『ミニI2C液晶モジュール(8文字x2行 バックライト無・反射型)』<br />の2点をストロベリーリナックス様より購入、後者は秋月様で既に購入して組み立てていなかったピッチ変換キットの基板とピンヘッダを流用組み立てを行い、それぞれsudo i2cdetect -y 1及びサンプル07-02-LCDを実行した結果、正常に3eを認識表示、LCD上にHallo Worldを表示出来ました。<br />以上、ご報告まで。大介https://www.blogger.com/profile/14827661106740506048noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-18439483162223831622016-01-31T23:13:49.931+09:002016-01-31T23:13:49.931+09:00お知らせいただき有難うございます。
お調べ頂いた通り、「sudo i2cdetect -y 1」と...お知らせいただき有難うございます。<br /><br />お調べ頂いた通り、「sudo i2cdetect -y 1」というコマンドを実行すると、<br />温度計を示す48とLCDを表す3eの2つのアドレスが表示されるのが通常動作です。<br />3eが表示されないということは、LCDが認識されていないということを意味します。<br /><br />これまでLCDについてご質問頂いた方は多くがLCD作成に問題があったようで、<br />LCDの完成版を購入したらトラブルが解決した、というケースがほとんどでした。<br />そのため、大介さんのケースは新しいケースと言えるかもしれません。<br /><br />現時点で原因は分かりませんが、思ったことを幾つか述べてみます。<br />なお、回路はp.170の図7-7を前提とします。<br /><br /><1. 回路の接続に問題がある場合><br /><br />Raspberry Piから温度計までの回路が正しくて、<br />温度計からLCDまでの回路が正しくない場合にLCDが認識されない、<br />ということはあり得ます。<br />「1 VDD」「2 RESET」に3.3Vが接続されていない、<br />「5 GND」にGNDが接続されていない、などです。<br /><br /><2. 温度計との組み合わせ><br /><br />あまり起こるとは考えにくいのですが、温度計との相性が悪くて<br />LCDが認識されない、ということがあるかもしれません。<br /><br />念のためではありますが、図7-7から「温度計のみ」を取り外した状態<br />(ジャンパワイヤはそのまま残した状態)で<br />「sudo i2cdetect -y 1」というコマンドを実行すると、<br />何が起こるでしょうか?<br />LCDが認識されていれば、3eというアドレスが表示されます。<br /><br /><3. LCD基板上のプルアップ抵抗について><br /><br />完成品LCDの基板(裏側)には、下図のような電極が2つあり、<br />(B)のようにはんだが盛られてショートした状態になっています。<br /><br />http://4.bp.blogspot.com/-qx8DpctHsBU/Vq4SKX3jI8I/AAAAAAAAENU/RGXOCEItaQM/s1600/LCD-PU.png<br /><br />これはLCD基板上のプルアップ抵抗が有効にされた状態を意味します。<br />次作「実例で学ぶRaspberry Pi電子工作」では、このLCDをモーター用回路と同時に使う際、<br />この電極上のはんだを取り去って図(A)の状態にしないとLCDが認識しない、ということはありました。<br /><br />ただし、これは「LCDをモーター用回路を同時に使う場合」の話です。<br />今回のように「LCDと温度計を同時に使う場合」にこの問題が起こった経験はないので、<br />必ずしも関係ないかな、という気はします。<br /><br /><br />以上、思いついたのはこの3つくらいでしょうか。<br />Takashi Kanamaruhttps://www.blogger.com/profile/11364738618850170255noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-28327444269984206002016-01-31T03:25:12.921+09:002016-01-31T03:25:12.921+09:00現在、ご著書「Raspberry Piで学ぶ電子工作」を拝読しつつ演習を作成、実験しておりますが、7...現在、ご著書「Raspberry Piで学ぶ電子工作」を拝読しつつ演習を作成、実験しておりますが、7章のLCDモジュールのところでつまづいております。<br />07-02-LCD.pyを実行してもモジュールには何も表示されず、エラーも表示されません。<br />はんだづけに失敗してモジュールを壊してしまったのではと考え、3個作り直し、更に完成品も購入して試してみたのですが、結果は同じでした。<br />また、Webで調べてi2cdetectコマンドを(p.170、図7-7の回路にて)試してみた結果、温度センサは48と検出されますが、LCDモジュールは検出されません。<br />この場合、不具合の原因は何が考えられますでしょうか?<br />ご返答の程、よろしくお願いいたします。大介https://www.blogger.com/profile/14827661106740506048noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-84311622058453807672016-01-11T17:17:37.896+09:002016-01-11T17:17:37.896+09:00すいません、もう一つコメントです。
WebIOPiを今回の新しい方法でインストールし直す場合、一旦...すいません、もう一つコメントです。<br /><br />WebIOPiを今回の新しい方法でインストールし直す場合、一旦WebIOPi-0.7.1というディレクトリ(フォルダ)を削除し、新たにWebIOPi-0.7.1.tar.gzを解凍するところから始める必要がありますので、ご注意ください。Takashi Kanamaruhttps://www.blogger.com/profile/11364738618850170255noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-5730892192275738602016-01-11T17:12:00.041+09:002016-01-11T17:12:00.041+09:00お知らせ頂きありがとうございます。
0x3f000000という数値ですが、WebIOPi-0.7....お知らせ頂きありがとうございます。<br /><br />0x3f000000という数値ですが、WebIOPi-0.7.1.patched.tgzに含まれるgpio.cでは、<br />peri_base = buf[0] << 24 | buf[1] << 16 | buf[2] << 8 | buf[3] << 0;<br />という命令の周辺でperi_baseに0x3f000000が動的に格納されるようになっています(値自体は/proc/device-tree/soc/rangesから取得されます)。それがうまく機能していないということだと思いますので、お手数ですが、御使用のOSのバージョンをわかる範囲でお知らせ頂けないでしょうか?<br /><br />また、補足ページ中のWebIOPiのインストール法を変更しました。一般的にWebIOPiのコミュニティで使われることの多いwebiopi-pi2bplus.patchというファイルを使うものです。もし次にWebIOPiをインストール機会がありましたら、試してみてください。Takashi Kanamaruhttps://www.blogger.com/profile/11364738618850170255noreply@blogger.comtag:blogger.com,1999:blog-6558574304592725596.post-37723408287916049012016-01-11T16:00:59.794+09:002016-01-11T16:00:59.794+09:00下記のパッチですが、gpio.cのほうが更新されていないようです。BCM2708_PERI_BASE...下記のパッチですが、gpio.cのほうが更新されていないようです。BCM2708_PERI_BASE_DEFAULT 0x20000000をBCM2708_PERI_BASE_DEFAULT 0x3f000000にすると動きました。<br />https://dl.dropboxusercontent.com/u/69652790/bb/WebIOPi-0.7.1.patched.tgzyoukosekihttps://www.blogger.com/profile/00960491551159641289noreply@blogger.com