使いますroot@satoraspi:~#......と、いうわけで、サクッと入る。PHPの作動を確かめるそれでは早速......。infotest.phpで、中身はこじんまりとこう書いて......<html><head></head><body><?phpinfo();?></body></html>早速ブラウザで見ると......うん。動いちょる動いちょる。PHPでLチカさて、次に、phpからGPIOだな。マンネリだけどやっぱり「Lチカ」か。17);?></body></html>ブレッドボードにLEDと330Ωの抵抗を直列につけて、17番ピンとアースにつなぐ。いうフォームになるのだが......いや、そりゃまあ、動くわけないわな、GPIOはrootでなきゃ読み書きできんのだから。「何かをSUID」......などと、いろいろあるが、どうも、どれもいまいち、ピンと来ないな......。GPIOのアクセスをヌルくする、これかなあ......。gpio/root@satoraspi:/sys/class#なんっか、もう、力いっぱい777丸出しですけどね(笑)。700とか760でも大丈夫じゃないかなあ。これで、フォームをクリックするとLEDが点いたり消えたりする。SSRでAC100Vの家電製品を制御これをそのまま、いつぞやArduinoでやったSSR(ソリッド・ステート・リレー)につなぐと、家電製品のオン・オフなどができるわけだ。SSRモジュールでは、やってみよう。2で扇風機のオン・オフ真ん中の黒い箱がSSRだ。2は3.3Vで電圧が違うが、このSSRは3Vから8Vまでの入力を受け付けるので、大丈夫なのである。(季語は「屁こき虫」秋。ホソクビゴミムシ科の甲虫。体長二.五センチほど。黒地に黄色の紋がある。身を守る為、危難にあうと悪臭を放つ。Pi、線がダラダラつながっているのは面倒くさいから、メインのifをWiFiにしてみたい。GW-USNano2」というのをかなり前から持っている。RTL8188CUS]......もう、サクッとプラグアンドプレイの一発認識である。KiB)これも、もう、イッパツ。-y、LANケーブル抜いて電源を入れなおす。ケーブルがだらだらつながっていたのが減って、これはとてもいいなあ。USBのWiFiアダプタが快調に作動している様子アナログ入力をしてみるさて、今度はいろいろといじってみよう。PiとArduinoにはいろいろと違いがある。その違い認識は世間ではもうとうの昔に確定済みであるようだが、私はその無視できない一つが「アナログ入力のあるなしではないだろうか?」と思い至っている。Arduinoはシンプルで扱いやすいにもかかわらず、10ビットのアナログ入力が6個もあり、これは意外と使い応えがある。抵抗やポテンショメータ、サーミスタ、CDSセル、音声など、実にいろいろなものをつなぐことができるのだ。Piにはアナログ入力は、ない。アナログ入力をしたければ、手段の一つに「Arduinoをつなぐ」というのがある。Arduinoを持っているなら、これは良い手段だが、なんだか無駄が大きい。一つが、「A/D変換器をつなぐ」ということだ。A/D変換IC、つまり「ADC」は、百何十円~数百円だから安い。これについて解説しておられるサイトはたくさんある。それを参考にさせていただき、早速秋葉原へ行って2種類ばかりICを買い込む。これは、マイクロチップ・テクノロジー社製の「MCP3008-I/P」。8チャンネル10ビット、千石電商で320円。MCP3008-I/Pコッチは、同じくマイクロチップ・テクノロジー社の「MCP3208-CI/P」。こちらも8チャンネルだが、幅は12ビット。秋月電子でソケット付き、データシート付きで320円。MCP3208-CI/Pついでにこの前壊したTLC5940NTも二つ買い込む。TLC5940NTで、まずはMCP3208から試してみよう。PiとICは、SPI通信でつなぐ。PiでSPI通信を行う要領を知る必要がある。raspi-config」でAdvancedの中からSPIを選び、enableにすればよい。lsmodで確認し、次のように「spi_bcm2835」というモジュールが入っていればSPIが使える。uio_pdrv_genirqさっそくブレッドボードにMCP3208を配置し宮城大学のサイトの記事にあるコードを使わせてもらったのだが、これがそのままでは動かず、ハマッた、ハマッた......。ioctrlに渡すデータ長に違いでもあるらしく、かなり試行錯誤した末、このようになった。26677番ピンにポテンショメータをつなぎ、残りのピンは解放してあるので、乱雑な値が出ている。JST昨日夜遅く、くたびれ果てて帰ってくると、妻子がテレビを見ている。見るともなしにそれに耳が向いた。不世出の歌手、矢沢永吉が自動車のコマーシャルに出演している。「やりたくないことをやる人生など面白くない。やりたくないことをやる人生など愚かだ。俺はやりたいことだけをやってきて、愉快だ。いう人生を送るべきだ。」......というような意味のことを言っている。こっちはそんな言葉を聞かされて、不愉快だ。矢沢永吉の言葉ではあるまい。した広告屋の台本だろう。それにしてもしかし、生活人たるもの、やりたくないことでも我慢し、何かのために奉仕して生きる、そこに何らかの意味を見出す、苦しくともそれに喜びを見つける、そういう態度が必要なのと違うか?あんなふざけたコマーシャルを作るのが年に給料1000万貰っている電通か博報堂の社員だか何だか知らんが、まったく賛同できない。あんな言葉を聞かされて、そうだそうだと愉快がる人間が一体世の中にどれくらいを占めているか、そんなことにすら見当がつかない連中があんなコマーシャルを作って世間に垂れ流している。テレビを見ると、そういう連中に金を払うことになるから、だからテレビはあまり見ない方が良い。テレビ屋も、こういう映像づくりばかりしていると、どんどん視聴者が減り、自分の首をじわじわ絞めることになると心しておいた方がよかろう。JST先日作成した「ピアノでLチカ」の、光り方のダイナミックレンジと言うか、そういうのが小さいので、もっと多段階に光らせられないものかな、と思った。そもそも、5V/10ビット=1024段のAD変換器にせいぜい4ビット分くらいの入力しかしていないのだから、これを12ビット分4096に展開したって、光り方に濃淡が足りないのは当たり前である。これは適切なアンプを使っていないからだというのは自明だ。そこで、今朝、フリップフロップ遊びをするために使ったトランジスタ、「2SC1815」に目が向く。うんうん、これで1石増幅してやろう。普通はこの場面ではオペアンプとかリニアICを買いに行くのだろうが、何しろ150円で10個も入っていた2SC1815がもったいない。えーっと、どうやるんだっけな、と思い出し思い出し、ブレッドボードを作る。抵抗分圧でベースにバイアスをかける。エミッタにつなぐ抵抗に増幅したい倍率をかけ、それをコレクタにつなぐ。普通は直流成分カットのためのコンデンサを出力につなぐが、0~5VまでのArduinoのアナログ入力に入れるのだから、これはいらない。結局、ベースバイアスには220kΩ×2個、コレクタに10kΩ、エミッタに1kΩをつけた。望ましい抵抗値は他にあると思うのだが、なにしろ、手持ちのものがそれしかない。粗製1石アンプいやまあ、お詳しい方からすると、各種の数値がツッコミどころ満載なのでしょうが、いや、その、手元にある抵抗等がこんなのしかなかったんですよ(苦笑)。小さいスピーカーをつないで音を聴いてみると、耳がおかしくなるくらい音が歪んでいるが(笑)、レベルは十分であるようだ。こんなスケッチを書き、PCのヘッドホン端子にArduinoをつないでレベルをチェックする。「2SC1815」を1個通しただけで、うんと幅広になる。2SC1815で増幅して入力した場合......というわけで、うまく幅広な入力が得られるようになった。入力はこれでOKだ、というわけで、それを「ピアノLチカ」につないでみたのだが、あれ......?3端子レギュレータが触れないくらい熱くなっている。いかんいかん、というのですぐ電源を外す。回路にどこか間違いがあるのかな、と小一時間調べたが、間違いはない。LEDドライブICのTLC5940NTがダメになってしまったみたいだ。いつもArduinoを保護するために、TLCには3端子レギュレータで5Vの別建て電源を作り、それを与えていたのだが、ネットの情報によると、それでTLCが不安定な状態の時に電源が通り、壊れてしまうことはよくあることらしい。うーん、390円、もったいないなあ......。買いに行くとするか......。ピアノLチカは、また今度だな......。JSTそういえばまだアレをやっていなかったな、と思いつく。やっていなかったな、というのは正確ではない。やるのは30年ぶりくらいかな、というと正確だ。アレ、というのは「マルチバイブレータ」という回路のことだ。この「マルチバイブレータ」という回路ををもとに少しづつカスタマイズを進めていくと「2安定マルチバイブレータ」、つまり「フリップフロップ」になり、それはそのまま1ビット記憶素子となり、やがてコンピュータそのものにつながっていくのである。その原点の、「マルチバイブレータ」というのは下のような回路である。私などは若い頃、職場でこの回路を随分と叩き込まれたもので、当時は二つのトランジスタのところが真空管になっている回路がさまざまな機材の中にまだ現役で存在した。真空管でマルチバイブレータを構成する場合はヒータ回路などを一緒に考えなくてはならないことや、電圧が高いことなどで、実際に作動させるにはもう少し複雑な配慮が必要になる。その点、トランジスタで構成すると電力も少なくてすみ、単純明瞭だ。回路自体の知財権等がどうなっているか、ということを今日まで知らなかったが、今ネットで少し検索してみると、Wikipediaには「イギリス人の物理学者ウィリアム・エックルスとフランク・ジョーダンによって1919年に作られた」とある。ウィリアム・エックルスは1966年に亡くなっているが、フランク・ジョーダンの没年は不明である。電子回路の知財権に関して、著作権はあいまいでよくわからないが、回路配置利用権については、日本では申請登録が必要で、かつ登録後10年となっている。要するにマルチバイブレータの回路図をネットでコピーしたり利用したりする場合の知財権関係の問題点は、回路配置利用権については申請されていないから存在しないが、著作権についてははっきりせず、よくわからないということである。マルチバイブレータの回路図は、あらゆる教科書に作成者の紹介もなく掲載されているので、多分ネットに書いても大丈夫なのではなかろうか。おき、この回路の動作原理は複雑で、理解するのは困難だが、動作結果や回路自体はご覧のように簡単なので、すぐに覚えてしまえる。一方のトランジスタのベースをもう一方のトランジスタのコレクタにコンデンサをはさんで「たすき掛け」に接続し、それぞれの接続点に抵抗を全部で4つつなぎ、これを介して電源電圧を加え、最後にエミッタを接地する......、というふうに覚えるのだ。発振周期の計算は私は恥ずかしながら覚えていない。ネットを漁ると、......と、すぐにその式は出てくる。コンデンサふたつと、真ん中の抵抗ふたつで周期が決まる。両側の抵抗ふたつはトランジスタに流す電流を決めると思えばよい。この両側二つの抵抗をLEDの電流調整抵抗とみなせば、LEDはここに直列につなげばよい。2秒に1回くらい、つまり0.5HzくらいでLEDをチカチカさせる場合を考える。手持ちの部品で47μFの電解コンデンサがいくつかあるのでそれを使いたい。左右とも同じ周期で発振させるなら、この場合はR2とR3、C1とC2は同じ容量のものを使えばよい。先ほどの式は......というふうに簡単になる。手持ちの電解コンデンサ47μFで、0.5HzくらいのLチカをやりたいときの抵抗は、......というふうになる。私のガラクタ箱の中に入っている一番近い値の抵抗は、10kΩだ。代わりにこれを使うと、結局、......というわけで、2秒に3回くらいチカチカするものが作れる。C1とC4、つまり両側の電流調整用には330ΩとLEDを直列に入れる。適当なトランジスタがないので、買う。NPN型の定番品に2SC1815というのがあり、秋葉原千石電商で10個入りのパケットが150円だ。この「2SC1815」は汎用的に使われている石なので、さまざまな電子工作にもよく登場している。余分に持っていて損はないし、10個で150円ならお金を使った気にすらならないので、一袋買っておくのは正解だと思う。ブレッドボードに並べれば、次のようになる。上のほうに3端子レギュレータを設け、ACアダプタの13Vを5Vに落としている。切り欠きのあるトランジスタふたつ、切り欠きに向かって左からエミッタ・コレクタ・ベースなので、――昔はこれを「E-C-B」とも「エ・ク・ボ」とも覚えたものであった――ベースから黄色いジャンパで「たすき掛け」になっているところがよくわかる。R1・R4が下のほうの抵抗で、茶・黒・橙(1・0・3、10×10の3乗)の10kΩであることが見て取れる。動かすとこんな感じである。次に、この「Lチカ周波数」をできるだけ正確に測ってみよう。私はオシロスコープなど持っていない。そこで、LEDの電流調整抵抗の後に直列にArduinoのデジタル入力をつなぎ、LOW~LOWの間をμ秒単位で計れば、周波数がわかるわけだ。電源も5Vなので、ちょうどよい。非安定マルチバイブレータの周波数を測る。}}それから、このように繋ぐ。Arduinoのシリアルモニタで観測すると、波長から周波数が計算されてくる。2.062Hzとなっているから、最初の計算の1.5Hzからすると、だいぶ誤差があるが、CR回路の発振なんて、こんなもんである。この「非安定マルチバイブレータ」は、回路にコンデンサが含まれていることにミソがある。ふたつのコンデンサが入っているからその充放電の働きにより発振し、放っておいても時間ごとに切り替わるのである。そこでこのコンデンサをとっぱらい、少し回路の配置を変える。するとアラ不思議、状態を保持する1ビットの記憶素子、「フリップフロップ」になるのである。フリップフロップ(2安定マルチバイブレータ)この場合、トランジスタのベースから出したスイッチを押すたび、状態が切り替わる。ブレッドボードに組むとこうなる。動かしている様子である。ボタンを操作するたび、光っているLEDが代わる。二つの状態のいずれかを保持しているということであり、それが1ビットの記憶ということである。2安定マルチバイブレータが1ビットのメモリーだということがここからもわかる。和名の緋衣草は花を衣に見立てたものです。PiのGPIO端子は、オスだ」......ということかも知れない。Piの端子は、2.54mmピッチのピンヘッダだ。このピンヘッダには、2550、あるいはQIとも言われるコネクタを使うと接続することができる。上段左からQIコネクタメス端子、同オス端子。下段左から6列のQIコネクタハウジング、同5列、同4列、バラの1列。Piに接続できるようになる。ところが、どうもこの「QIコネクタ」、情報が少ない。作り方にも多少のコツがある。それで、私が書こうか、と思ったら、既に詳しく紹介されているサイトがあった。【Tips】電子工作でよく使う『QIコネクタ』の圧着方法(デジットBlog)もう、このサイトが書いておられること以上には付け加えることなどないが、工具については、5年前に私のブログでも紹介しているので、参考にする方がいるならお役立ていただきたい。エントリは5年前のものだが、昨日(平成27年8月15日(土))千石電商本店の1階に立ち寄ったところ、まったく同じ工具がほぼ同じ値段で売られていたことを付け加えておきたい。クリンピングプライヤー」である。この工具を使う場合は、一番手前の「AWG22・0.3mm^2」のダイスで導線をかしめ、被覆は一つ隣の「20・0.5」のダイスで半分だけかしめて、残りを普通のラジオペンチで締めあげるとよい。Piや電子工作だけではなく、PCの内部など、いろいろなところで使われている規格なので、覚えておけば何か修理や改造の必要に迫られたときに役立つと思う。入り口から見て左側の、一番奥より少し手前の小さい抽斗の中段くらいに入っている。5年前当時は、使い方が良く分からなかったので、レジの店員さんに「このコネクタ、カシめ方と、使う工具を教えてもらえませんでしょうか」と頼んだら、得たりとばかりの落ち着いた態度で、実際の使い方とコツ、注意点を、店のディスプレイ用にとっておいてある端子だと思うが、それで実演してくれたものであった。若い店員さんだったが、その該博な知識と技に驚嘆したものであった。先日、八潮の秋月電子の初老の店員さんは、「これにハウジングみたいなモンは存在しませんよ」と言っていたが、千石電商にはあるので、秋月に行って見つからなければ、千石電商で買うとよいと思う。私も、秋月電子八潮店で、「いや、ありますよ」と店員さんに直接教えて上げられればよいのだが、私は素人なので、プロに対してそこまでする義理はないだろう。