あら、嬉しいですな

投稿日:

 ブログのアクセスログを見ていたら、Aidafruiteの小型TTLシリアルJPEGカメラの基本的な扱いについて書いた私の記事を参考にされた方があって、その方がブログに取り上げてくださっていることが分かった。

 取り上げていただいて、誠に恐縮なことである。

時事片々

投稿日:
ガソリーヌ山尾

 民進党の代議士・山尾氏。

 意外にも殊勝らしく、身内の不始末をよく調査し、例のガソリンの事はどうやら秘書のしでかしたことらしいと突き止めて報告したまでは良かったが、ネタに飢える世間の食いつきっぷりたるや、それ見たことかと非難轟々である。

 いやもう、他のサイトもブーメランブーメラン言ってて、おいおい保守祭りかよ、と思えて、右翼の私がむしろ笑ってしまった。

 で、そういやあ、「ガソリーヌ」って、そもそも何だっけ、なんで「ガソリン山尾」じゃなくて、「ガソリーナ」とか「ガソリーヌ」なのかな、これ、2ちゃんかなんかのネットスラングだっんだっけ、でも、それだったら、産経だって大新聞なんだから、ネットスラングなんか使って記事書くかな、と疑問も覚えたので、念のため「ガソリーナ」で検索してみたら更に笑えた。

 要するに、「あなたの太いノズルでアタシにどっぷりガソリンぶち込んでェ~というような、余人をして目を覆わしめんばかりの淫乱ビッチのことを「ガソリーヌ」とか「ガソリーナ」と言うんだそうで、日本の隠語ではなく、スペイン語などで言うもののようだ。

 それを知ってから上の産経の記事を読み直すともう、笑える笑える。……っていうか、ここまでボロカスに根拠のない人格批評、つまり「ガソリーヌ=淫乱」という意味で使っているのであればだが、大新聞がこんなに書いたら、山尾氏に訴えられるんじゃねえの、と逆に心配してしまう。

 ガソリーヌはさておき、山尾志桜里って人は、そもそもどういう代議士なんだっけ、と姿勢を取り直してググッってみると、これはこれでまた……。いや、これは山尾氏が悪いんじゃあないんだけど、検索アシストで一緒に出てくるキーワードが「山尾志桜里 かわいい アニー」とかいうのはまだしも、続いて「山尾志桜里 カップ」「山尾志桜里 胸」「山尾志桜里 乳」「山尾志桜里 貧乳」……なぞというものばっかり出てきて、ご本人が見たらそれこそ青筋立てて、「こんなこと言う日本なんて、日本なんて……日本死ね!」と言いかねまじき状況である。ほんっと、お前らって、相手が女と見るや、即、乳しか見てないのなー、何にも考えてないのなー、ほんっとに、男ってバカなのなー、と、(あき)れるのを通り越してむしろ清々(すがすが)しく、あっぱれと青空を仰いで胸を張りたいくらいである。

嘘ネット

 嘘ニュースのことが話題になっている。

 ネットで嘘ニュースが流れてくるなんてことは今更特段珍しくもないことだが、さすがに次のようになってくると、何だ嘘か、ああヤレヤレ、……では済まなくなってくる。

 まったくシャレにもなりゃしねえ。

 西村博之氏は「嘘を嘘と見抜ける(ry」と言ってのけたが、何しろ嘘のような本当の出来事、例えば昔だったら戦艦プリンス・オブ・ウェールズが我が海軍航空隊に撃沈されるとか、今だったらトランプ氏が大統領になるとか、そういったことはしょっちゅう当たり前にあるもんで、つい嘘を本当だと信じたくなるのも人情というものかも知れない。

Arduino S.r.l.とArduino LLCが和解してたの、知らなかった

 秋頃、友達からフィードされてきたシェア記事で、秋葉原の「はんだ付けカフェ」が閉店していたのは知っていたが、他の事に取り紛れてArduinoの情報を追っていなかった。

 ふと思いついて、久しぶりにArduinoで検索してみたところ、同じスイッチサイエンスの記事や、他のニュースなどに、Arduinoファン懸案の「Arduino S.r.l.とArduino LLCの分裂・対立・訴訟」が、和解したと書かれていることを知った。

 よかったよかった、と思うと同時に、あー、でも、これ、揉めてるうちにだいぶ売り上げ落としちゃったんだろうなあ、とも思った。Arduinoのユーザ層からRaspberry Piに行っちゃった、なんて人だって、けっこういるんだろうし。

何でも警察のせいであるかのように報道するのはどうなのか

 ストーカー事件があとをたたず、ニュースなどによく出ている。

 警察や役所の不始末も原因になって殺された方の話など、まことに気の毒である。

 こういうニュースを見聞きするたびに思うのは、まず犯人の懲罰が厳然と行われるべきであり、これが徹底的に報ぜられることが最優先だということだ。

 しかるに、まるで「ストーカー事件で一番悪いのは警察と役所だ!!」というような印象を与えかねない報道が繰り返されているのは、断固不可である。犯人が一番悪い。犯人をやっつけろ!ストーカーなんていなくなってしまえ!!

漢字
(あくつ)(はなわ)

 「圷さん」という苗字の人がいる。この人のお名前、なんて読むんだっけ、と、その都度聞くなり調べるなりするのだが、実は会って話したことがなく、名簿などで見かけるだけであるため、しばらくすると忘れてしまう。

 この方は「(あくつ)さん」と読むのだそうだ。この漢字の意味ってなんだろう、と思って調べると、地面が低くなったところのことだそうである。

 「『(あくつ)』の反対の漢字」というのがあって、これが「(はなわ)」だという。地面が高くなったところのことだそうで、土へんに高い、と書くわけだから、本当に意味そのまんまである。この字も人名で時々見かける。「(はなわ)さん」と言う人は圷さんという人よりちょっぴり多いような印象もある。「ちびまる子ちゃん」に出てくるお金持ちの脇役は、たしか「塙君」と言った筈だ。

ピアノ+IoT

投稿日:

 アクセスログを見ていると、「ピアノ IoT」で検索してこのブログに来た方がいたようだ。

 残念ながらこのブログ、「ピアノ+IoT」の記事はあるようで、ない。それに近い記事で唯一あるのは、自宅のデジピにArduinoをつなげてLチカをやってみた記事だけだ。

 恐らく、「ピアノ IoT」というキーワードで検索する人が求めているものは、デジピでやるLチカではあるまい。

 直接ネットにつながったピアノが、音楽コミュニティや調律師やピアノ教師や、いや、そればかりか測定装置などのハードウェア、ピアノの機能検査結果によりメンテナンス時期がメーカーに送信されたり、演奏の正確さを素早く検する採点クラウドや電子頭脳によるレッスン等々……。

 検索した人は、そうした「ピアノ IoT」を求めているような気がする。

最近の一般向けワンボード・コンピュータ、なかんづく「Arduino」「Raspberry Pi」の状況

投稿日:

平成28年2月
JISTA ML リレーコラム 第1回
会員 関東支部 jista1197 佐藤俊夫

1 はじめに

 このところ、若い方やDIYなどを楽しむ一般の方向けに、ワンボード・コンピュータが売られています。しかも、相当な売れ行きであると仄聞(そくぶん)します。

 「Arduino」や「Raspberry Pi」、「IchigoJam」「Intel Edison」「mbed」と言った製品名を聞いたことがある方も多いでしょう。秋葉原を歩くと、店の表にこれらのカラフルな箱が山積みになっています。また、イタリア人マッシモ・バンジ氏の「TED」スピーチを見たことがある方もたくさんおられると思います。

 数年前から、普及価格帯の3Dプリンタが出現してきたことにより、一般人でも小規模の製品を作り、それを世に問うようなことが可能になってきました。そこから、「Makers Movement」と言われる流行が盛り上がりはじめました。これはオープンソース・イノベーションの自然な興隆ということに加えて、出版と連携した一種のマーケティングの成功であるとも言われているようです。ちなみに、この「Makers Movement」について著書を出し、流行に火をつけたのはクリス・アンダーソンと言う人ですが、この人の名を覚えている方もJISTA会員の皆さんには多いことでしょう。そう、かの「ロング・テール」の著者その人です。

 古くから言われる「DIY」と、最新流行の「Makers Movement」との違いは、そこに「ネット」が介在するか否かだ、と言ってもよいと思います。物を作る上での発想やハウ・トゥ、設計図、使用感などは、インターネットを通じて迅速に共有され、改良が加えられ、更に共有されます。

 こうしたことを背景に、3Dプリンタを使用してものを作り、作ったものへデジタルやITのパワーを盛り込むことが広く行われるようになりました。ものへデジタルやITのパワーを盛り込むのには、廉価なワンボード・コンピュータがうってつけだというわけです。

 実際、巷間ではArduinoがこれまでに100万台、Raspberry Piが700万台売れたと言われていますから、これらのワンボード・コンピュータは、ITのプラットフォームとして無視できない勢力になっていると言えます。また、これらは安価に数を得られることから、「IoT」流行の趨勢とも関連する雰囲気が濃厚に感じられます。

 私は仕事の上ではこれらと関わっておりません。しかし、その一方で、ITストラテジの道というものは、ITワールドを形作るもののうちの何が将来の影響要素としてつながってくるかわかりません。そうしたことから、これらワンボード・コンピュータを体験しておくことが何かの足しになることもあろうと思い、ArduinoとRaspberry Piを少しばかりいじってみておりましたところ、ちょうど今般リレーコラム執筆の機会を頂きました。

 そこで、この機会をお借りして、ArduinoとRaspberry Piについて、その状況などを簡単に紹介させていただきたいと思います。

2 Arduinoについて

 「Arduino」はイタリア人のマッシモ・バンジ氏を中心に、平成17年(2005)から開発が始められたワンボード・コンピュータです。バージョンアップや派生を含め、既に数十種類の製品があります。現在店頭で入手可能な製品には、代表的な「Arduino UNO」があり、これは本日(平成28年2月7日)現在、税込み2,940円で手に入ります。

 その特徴に、次のようなことを挙げることができます。

○ ハードウェアが「オープンソース」であること。

 仕様も設計もオープンで、一般人がネットから基盤のパターンなどをダウンロードしてそっくり同じものを製作することも可能です。また、そのため、世界中にArduinoのクローンを作っている企業やグループがあり、それら自由なクローンの種類を数え上げることはもはや不可能と言う状況にあります。

○ 開発環境が無料で配布されていること。

 開発環境は統合環境(IDE)になっており、これも無料です。様々なライブラリが日々提供され続けており、一般に入手可能なほとんどのハードウェアやIC、電子素子などを扱うためのライブラリがGitHubなどですぐに手に入ります。

○ アナログ入出力、デジタル入出力が簡単に可能であること。

 「Arduino UNO」の場合、基板上にはデジタルI/Oが14本、アナログINが6本、アナログOUTが6本あります。これにさまざまな電子部品をつないで制御することができます。

○ C++で簡単にプログラミングできること。

 従来の「マイコン」はアセンブラ一辺倒でしたが、ArduinoはC++でプログラミングでき、しかも、ややこしいハードウェア・アクセスはC++のクラスの中にすべてカプセル化され、手軽に扱うことが可能になっています。ユーザはオブジェクトを生成し、入出力ピンを開いて読み、書くだけでさまざまなことができます。

 こうした特徴があるため、Arduinoを使用すると、一般人がデジタル・プロダクトを簡単に製作することができます。

 かく言う私も次のようなことを試しました。

「スマート・ファン」

 安物の扇風機にArduinoとEtehrnetインターフェース、温度センサをとりつけ、Webサーバをこの扇風機に実装してブラウザから制御できるようにし、温度によって風量を変え、1/fゆらぎ送風ができるなど、ものすごく無駄にリッチ化した扇風機です。

 1980円の安物扇風機をめっちゃ高機能化(笑)して、結構遊べました。

ウェブ扇風機

「メールサーバ監視ランプ」

 メール来着状況を監視し、ランプの色で教えてくれるもの。昔はISDN用のルータにこうした機能があり、パソコンのスイッチを入れていなくてもメールチェックのタイミングを教えてくれて便利だったのですが、今はこういうものがなくなってしまったので、意を決して自作したわけです。実は、今はスマホでこれは出来てしまうのですが、LEDの輝度のパルス幅変調などを試して遊ぶのに格好の題材でしたので、あえて試してみました。

メールサーバお知らせランプ

「多機能リモコン」

 赤外線リモコンのある電化製品を、Webで制御するようにしたものです。パソコンからでも、スマホからでも操作できます。赤外線LEDは秋葉原などで100円ほどで手に入りますので、これを試す人は非常に多いようです。

いよいよ多機能リモコン

「モーターで動くおもちゃの類をデジタル・パワードにする」

 おもちゃにArduinoを積み込むと、男の子などは大変喜びます。ここでは、モーターで動く自動車に超音波センサをとりつけ、自律制御させるとともに、その自動車にデジカメを乗せて動画を撮影しています。

虫瞰(ちゅうかん)カメラ

 私には男の子供はありませんが、私自身が男の子じみた中年(笑)ですので、みずからこういうことを試して遊びました。

 このように、Arduinoを使うと、手軽にさまざまな機器を制御したり、デジタルパワーを盛り込んだものを作ることが可能です。

 伝統的にArduinoにはAtmel社のマイコン「AVR」シリーズが使われていましたが、最新の製品「Arduino 101」にはIntelのCurieが採用され、Bluetoothや6軸の加速度ジャイロセンサーが搭載されるなど、大変高機能化しています。

 さて、目が離せないArduinoですが、昨年ごろから、長年Arduinoを牽引してきた5人の人たちが仲違いし、分裂騒動を起こしてまだ決着がつかず、もめているようです。Arduinoコミュニティは既に大きなものになっているので、この騒動は残念なことであり、かつ、目が離せないところです。

3 Raspberry Piについて

 「Raspberry Pi」はイギリス人のイブン・アプトン氏を中心に、Raspberry Pi財団というところが開発しているワンボード・コンピュータです。SONYなども深くかかわっていると聞き及びます。

 平成24年(2012)に最初のモデルが発売され、バージョンアップ等で数種類の製品があります。現在店頭で入手可能な製品の代表的なものに「Raspberry Pi 2 Model B+」があり、これは本日(平成28年2月7日)現在で税込み5,000円です。

 次のような特徴があります。

○ れっきとした「PC」であること。

 前述のArduinoは「マイコンボード」であり、OS等は載っておりません。しかし、Raspberry PiはSoCを利用するれっきとした「パソコン」で、OSを載せて作動します。主としてRaspberry Pi用に最適化されたLinux(「Raspbian」というディストリビューション)が作動するほか、マイクロソフトからは「Windows 10 IoT core」というWindows製品が、なんと無料でコントリビュートされています。余談、最近のマイクロソフト社の変革ぶり、オープンソースやフリーへのコミットぶりには驚くばかりです。それだけ、IoTにからむ製品に注目しているということでしょう。

 また、HDMI端子やUSB、Ethernetの端子を基板上に標準で備えているので、キーボードやマウス、ディスプレイをつないでPCとして利用することができます。

○ あらゆる開発環境が利用可能なこと。

 「Linuxマシン」なので、Linuxで利用できる開発ツール類は全て利用できると言って過言ではありません。Raspberry Piになじみの良いのはPythonで、入門本などにはPythonの作例が多く載っております。他にRaspberry Pi向けに最適化されたビジュアル言語の「Scratch」などもあります。しかし、別にこれらにこだわる必要はなく、GCCが走りますから、C/C++も使えますし、他にシェル、PerlやPHP、Ruby、Javaも扱えます。極端な話、g77をインストールして「FORTRAN」でハードウェア制御を行うことも可能でしょう(聞いたことはありませんが……)。私などは、RubyやPythonに暗いので、CやPHPでRaspberry Piのプログラムを書きました。

 エディタやIDEも、自分が使い慣れた好きなものが使えます。私はviが好きなので、Raspberry Pi上でももっぱらviを使っています。

○ 簡単にデジタル入出力が可能なこと。

 「GPIO」と呼ばれるデジタル入出力端子を豊富に備えていますが、これらは、ユーザからはUNIXで言う所の「ファイルシステム上にあるスペシャル・ファイル」に見えます。ですので、このファイルをオープンし、読み、あるいは書くだけで外部に入出力ができ、ハードウェアの制御が可能です。

○ あらゆるミドルウェア等が利用可能なこと。

 Linuxであるがゆえ、Linuxで使えるミドルウェアなどはほとんどのものが利用可能です。例えば、MySQLやPostgreSQLなどのRDBも扱えます。また、ApacheなどのWebサーバ、sendmail、DovecotなどのPOP/IMAPサーバなども走ります。

 こうした特徴があるため、既存のオープンソース・ソフトウェアを用いて、相当複雑なことも可能です。

 Arduinoと違って、Raspberry Piは単体ではアナログ入力ができません。そこで、私はRaspberry PiにADC(アナログ・デジタル変換)のICを接続し、これにサーミスタを取り付け、Apache+PHP+C言語を使用して「ウェブ温度計の製作」などを試してみました。

Raspberry Piで温度を測ろう

 また、PHPでハードウェア制御もできます。私はこんなふうに、PHPを使用して、Webインターフェイスにより家電製品のスイッチをオン・オフすることなどを試しました。

そうか、PHPでもモノにつながるな

 Arduinoに比べてRaspberry Piの歴史は浅いのですが、その出荷台数などから見ても新進気鋭の勢いを持っており、躍進中であると言えます。

 もともと5,000円ほどの値段で、高価ではないRaspberry Piですが、昨年(平成27年(2015))11月に流れたニュースでは、なんと650円(5ドル)という驚くべき価格の製品「Raspberry Pi Zero」もラインナップに投入されました。

Raspberry Pi Zero

 この値段と大きさでLinuxが走るのですから、驚きです。さすがにEthernetはついていませんが、USBの無線LANドングルを接続すればネットにつながります。

 「Raspberry Pi Zero」は、この値段と大きさのゆえに数量を稼ぐことができますから、IoTにからむ何らかのブレイク・スルーをもたらす可能性も相当にあると言えるでしょう。

4 むすび

 私などが若い頃には、ワンボード・コンピュータというとNECのTK-80にとどめを打ったものです。一定の年齢層の人には大変懐かしいものの一つです。

 他方、ここまで触れましたように、現在のワンボード・コンピュータは長足の進歩を遂げており、ますます興味の尽きないものに変貌しております。

 今回紹介したものは一般向けのものなので、エンタープライズでの応用については、別途考察と検討、研究が必要であると思われますが、既に一般向けには広く普及していることから、早晩業務用途にも応用が広がることが想像されます。

停年が近い

投稿日:

PHM01_0115 この前の誕生日で、いよいよ停年まで5年を切ってしまった。

 今は「定年」と書くのが正しいわけだが、かつては標記のように「停年」と書いたもので、いつ頃からだったか、この字面ではあんまりにも寂寥感が漂っていていけない、というような批判があって、「停年」から「定年」に書き換わったのである。「子供」が「子ども」になったようなものか。

 なんにせよ、悠々自適と言うわけにはいかないので、働き口を探さねばならぬ。

 私はいくつかIT系の資格を持っているが、それはもともと、なんとか就職に有利になればという考えもあって取ったものだ。日本ITストラテジスト協会というところに加入しているのも、無論、自学研鑽、IT業界の人たちから刺激を得て自分の仕事の質を向上させたい、という純然たる動機が主ではあるが、それにあわせて、就職情報でも得られれば、という考えが少しあった。モロに誰かに雇ってもらうとか、そこまでは考えないにしても、なにか働き口を探すきっかけやヒントでも人々の話から得られれば、という気持ちである。

 ところが、なんだか最近、迷いが出てきたのだ。IT業界の人々と付き合いを深め、話を聞いたりしているうち、「俺、ホントにITやりたかったのかしらん」と、自問するようになってしまったのである。

 このところ、ArduinoやRaspberry Piをいじっているのも、「一つ、迷いを見極めるために原点に戻ってみよう」と思ったからである。私のコンピュータの原点はNECのTK-80など、ワンボード・マイコンにある。ワンボード・マイコンやハードウェアに回帰すれば、なにかつかめるかも知れないと思ったのである。

 やってみると、やはり、ワンボードは面白い。

 こうやって子供の遊びみたいなことをしながら、よくよく考えてみると、ITと言うより、なにか、「工場で働きたい」ような気がしてきた。

 それで、妻に「なあ、おい、俺、定年になったら工場で働きたいんだが」と言ったら、妻は「ええーっ、ダメだわよ工場なんて」という。

「なんでだ?」

「だって、気の荒い、変な人がいて、イジメられちゃうわよ、『コラ爺ぃ』とか言って」

「……。ぬぅ、それもそうだのう」

「お父さん、銀行のフロア係とかやりなよ、いいよ、アレ」

妻は昔、銀行員だったので、フロア係はいい仕事だ、よく知っている、というのである。

「けどお前、銀行にだって、変な客がいて、エラそうに文句言われたりするのと違うか?」

「そりゃ、たまには来るけど、そんなには来ないのよ。適当に右から左へ案内しとけばいいんだから」

「ははあ、しかし、ワシには向かんなあ。フロア係って、人相手なんだもの。ワシは本来は狷介(けんかい)な性格で、人嫌いなんだぞ」

「人は見かけによらないって言うけど、それもそうねえ。社交的によく喋るように見えて、実はお父さん、社会不適合の変なオッサンだもんねえ」

「……自覚していても、あえてそう言われると、なんかムッと来るな……。工場は工場でも、食品工場なら、変なDQN(ドキュソ)はそんなにいないんじゃないか?」

「あー、ダメね、お父さん、鼻が悪くってくしゃみばっかりしてるから、食品に唾や痰が入って、クビになるわよ。どうすんのよ、娘ふたり、学校に行かせなくっちゃいけないし」

「うーむ。ワシ自身が中卒のオッサンだっちゅうのに、自分の子は大学出さにゃならんってのも、世の中不公平じゃのう」

「中卒中卒て、お父さん夜間大学行ってたんでしょ。ホンモノの純粋の中卒の人に失礼だわよ」

「……そ、それもそうだのう。とはいえ、夜間大学ってったって、4年通って中退しちまったがな」

 あの頃は忙しかった。自分の成人式の日だって、仕事してたんだもんなあ、俺。(遠い目)

 しかし、考えなければならないのはここだ。今の仕事だって、本当に腹の底から芯からやりたいと思って選んだのかと言うと、必ずしもそうではない。いや、やってみたい仕事ではあったが、それにも増して、当時家庭が裕福でなかったから選んだ、という理由も大きかった。IMG_3628

 だが、これからは違うぞ。これからの俺には選ぶ自由がある。人に左右されず、やりたい仕事を自由に選んで働いてよいのだ。やったー!そう考えると嬉しいぞ。自由だー!フリーダム!

 いずれにしても、言えることは、こーんな、休日に鼻栓つっこんでフザけているようでは、雇ってくれるところも雇うのをやめてしまうであろうということである。

Arduino/Genuino 101

投稿日:

 用事を済ませて改めて見てみると、Arduino/Genuino 101、いっぱいニュースが出ている。

この前気づいた記事

えっらいIntel + Arduinoがキタぞ。

投稿日:

arduino-101-1 ぐはっ、な、なんじゃこりゃあ。

 ともかく、ウォッチ。

タミヤの六角シャフト

投稿日:

 先週、虫瞰カメラを作って遊んだ際、タミヤのギヤボックスを使ったのだが、その際、ギヤボックス付属の「六角シャフト」に適当にゴムタイヤを取り付けた。

 それはそれでうまく行っていたのだが、タイヤを差し込んだだけだから取り付けがどうも不安定・不確実である。

 タミヤの純正のタイヤなどを使えばよいのだろうが、高いし、面倒くさい。

 そこで、シャフト両端にネジを切る。

IMG_3595

 万力にしっかりシャフトを止め、たまたま手持ちに3mmのダイスがあるからそれで切る。

 ダイスは、しっかりと噛みつかせるのにコツがいる。切削油をよく注し、下方向にしっかりと力を加えて、最初は注意深くまっすぐ切る。3回転くらい切ったら、半回転戻して切り粉を落とし、油を足す。

 それから、半回転切っては、1/4~1/3回転戻して切り粉を落とす、ということを繰り返して所望の長さになるまで切っていく。

IMG_3596

 切った後はこんなふうに切り粉だらけになるから、ワイヤブラシなどでよく落とす。


IMG_3597
IMG_3598

 こうして、ナットでしっかりとタイヤが止まるようになる。

 実はタミヤからはシャフトのセットが出ていて、両端にねじを切ったシャフトもあるにはあるのだが、これは丸形で、ギヤボックスのギヤに取り付けることができないのだ。ギヤの内腔はシャフトに合う六角形になっており、それで回転させる仕組みなのだ。

虫瞰(ちゅうかん)カメラ

投稿日:

虫瞰カメラ 唐突だが、虫瞰(ちゅうかん)動画を撮りたいっ、などと思ったのである。それはTwitterのだいぶ前からのお知り合いで、クリエイターの齋藤美紀さんという方が、このところArduinoでのロボット製作を試しておられ、それに刺激を受けたということも大きい。私のほうがArduinoに関しては少しばかり先達なのだが、モーターで動くものについては齋藤さんのほうが熱心に取り組んでおられるので、まあ、インスパイアされたわけである。

 モーターで動く小さい台車にデジカメを乗せ、走り回らせて動画を撮りたい。虫の視点で動画を撮るわけだ。人の視点では思いもよらない、家の中のいろいろなものが写り込んで、面白いのではないだろうか。

 Arduinoで制御し、手持ちの超音波センサで障害物を避けるようにしたい。

 できるだけシンプルに作るため、操向装置を工夫する。普通ならサーボなどを用いて操向輪の向きを操作するのだろうが、ここを単純にしたい。

 3輪の台車にし、後輪をキャスターのようなものにする。前進時はまっすぐに向くが、後退させるとモーメントがかかって後輪が傾き、左右どちらかに振れるようにする。そうすると、前進・後退の制御のみであちらこちらに台車を走行させることができるだろう。直進していって、ある程度まで壁などの障害物に近づくと、後退させる。後退させると、左右どちらかに向きが振れるので、超音波センサで測距しつつ後退させ、ある程度障害物が離れたらまた前進させる。

 Arduinoでモーターを回すには、FETやトランジスタを用いる方法もあるが、前進・後退をさせるためには逆転ができた方がよい。それをFETなどを使ってスクラッチでやるのは面倒くさい。そこで、「モータードライバIC」を購入して、手っ取り早く済ませよう。

 検索すると、よく売れていて入手しやすく、かつ他人の作例も多そうなものには東芝のTA7291Pというのがある。メーカーのサイトには生産終了予定と出ているものの、秋葉原へ行けば多分千石電商あたりに置かれているだろう。180円とか300円とか、そんな値段なので、どうってことはない。

 このモータードライバに合うような模型用のモーターを選ぶ。スペックシートによるとTA7291Pは1A流せる。乾電池で台車を動かすとして、Arduinoには5Vがいるから、単3×4本の6Vとして、良さげなものをマブチのページで見繕う。

 6Vだと電流が途端に2.9Aくらいにハネ上がり、モータードライバに合わない。しかも、急に1000円近くするので、趣味の工作にはちょっとどうかと思う。それで、電圧は3端子レギュレータを一つ買って落とすとして、3Vのものを見繕うと、「FA-130RA」というのに結局落ち着きそうだ。このモーターはよく使われているようで、他の方の作例にも良く出てくる。電圧は3Vまで、500mAだから、TA7291Pで動かすにはぴったりだ。

 このモーターをタミヤあたりのギアボックスにうまく取り付ければいいだろう。

 ギヤボックスを探すと、モーター込みのものも多くあるようだ。見ていると、このFA-130RA込みのギヤボックスがある。「タミヤ・3速クランクギヤーボックス」というやつだ。モーター込みで600円かそこらは安い。

 最後に、ゴムの車輪を三つ、だな。まあ、これは何か、いいものがあるだろう。

 休みなので、さっそく秋葉原へ行き、いろいろと買い込んでくる。秋葉原にはないものを、帰りに北千住の東急ハンズで買う。

買い込んできたブツいろいろ
IMG_3537

 まず、タミヤの「ミニモーター標準ギヤボックス」というのを買ってみた。モーター付きだが810円。安いかと言うと微妙なところだが、自力でギヤをいろいろやるとこれが結構大変なので、まあ、値段はこんなところだろう。

ミニモーター標準ギヤボックス
IMG_3538

 それから、走行させるためのゴムタイヤを買う。向きをうまく変えるための「キャスター」は東急ハンズで買う。

タイヤとキャスター
IMG_3540

 タイヤはさておき、この「キャスター」が、今回の私の工夫だ。前進・後退のみ、モーター1個の制御で、操向もしてしまおう、という工夫だ。このキャスターの変向角度を一定に制限し、後退する時だけランダムに向きが変わるようにするのだ。

 それから東芝のモータードライバ「TA7291P」と、モーター用に電圧を落とす3端子レギュレータ。3端子レギュレータは3.3Vのものを探したが、なかったので、2.5Vのものを買った。これでだめなら、抵抗分圧で電圧を落とそう。

IMG_3541

 ギヤボックスは組み立てるとこうなる。

IMG_3543

 これを、いつもの100円ショップ「ダイソー」にあるアクリルの枠にねじ止めし、タイヤを取り付け、例のキャスターも取り付ける。

IMG_3544
IMG_3545

 このキャスターの根元に、適当な金具を共締めし、変向角度を制限してやる。

IMG_3546
IMG_3547

 これが、「モーター1個だけで向きも変える工夫」である。ためしに、2.5Vで動かしたがどうも力がなくていけない。そこで、ギア比をうんと落とし、9Vを直接モータにくれてやることにした。まあ、壊れやせんだろ。電流を測ると、200mAくらいなので、Arduinoに直接流さなければ許容範囲である。

 さて、機械のほうはこれくらいのぞんざい適当、次に電子回路のほうに取り掛かる。

 次のように考え、この通りブレッドボードを作る。

モータドライバ及び超音波センサ結線要図
虫瞰カメラ台車

 モータ付きの台車に取り付けると、次のとおりである。

IMG_3570
IMG_3569

 スケッチは次のように書く。

//
//  crawlCar.ino
//    27.10.11(日) 0600~
//    佐藤俊夫
//    台車を這いまわらせる
//

// モータードライバ
const int MOTOR1 = 7;
const int MOTOR2 = 8;
const int MOTORPWM = 6;
//  超音波センサ
const int TRIG  = 9;
const int ECHO  = 10;
//  現在の台車の状態
const unsigned int STOP = 0, FORWARD = 1, BACK = 2;
//  ストップさせる距離、前進を再開させる距離
const float FOWSTOP = 20.0, FOWCONT = 50.0;
//  ある程度はバックを持続するようバック継続時間制限(ミリ秒)
const unsigned int BACKLIMIT = 2000;
//  PWMの強さ
const unsigned int POWER = 128;

void setup(){
  pinMode(MOTOR1,OUTPUT);  //  モータードライバ入力1へ
  pinMode(MOTOR2,OUTPUT);  //  モータードライバ入力2へ
  pinMode(TRIG,OUTPUT);
  pinMode(ECHO,INPUT);
}

void loop(){
  static unsigned int state = FORWARD;
  static unsigned long int backstart = 0;
  float range = 0.0;
  
  range = ranging();
  if(range >= FOWSTOP && state != BACK){
    state = motor(FORWARD);
  }
  else if(range < FOWCONT){
    if(state == FORWARD){
      state = motor(BACK);
      backstart = millis();
    }
    else{
      if(millis() >= (backstart + BACKLIMIT)){
        state = motor(FORWARD);
      }
      else{
        state = motor(BACK);
      }
    }
  }
  else{
      if(millis() >= (backstart + BACKLIMIT)){
        state = motor(FORWARD);
      }
  }
}
//
//  モーター制御
//
unsigned int motor(unsigned int command){
  switch(command){
    case FORWARD:
      digitalWrite(MOTOR1, LOW);
      digitalWrite(MOTOR2, HIGH);
      analogWrite(MOTORPWM, POWER);
      break;
    case BACK:
      digitalWrite(MOTOR1, HIGH);
      digitalWrite(MOTOR2, LOW);
      analogWrite(MOTORPWM, POWER);
      break;
    case STOP:
      digitalWrite(MOTOR1, LOW);
      digitalWrite(MOTOR2, LOW);
      break;
    default:
      digitalWrite(MOTOR1, LOW);
      digitalWrite(MOTOR2, LOW);
      break;
  }
  return command;
}  
//
//  測距
//
float ranging(){
  float time = 0.0, range = 0.0;

  digitalWrite(TRIG,LOW);
  delayMicroseconds(1);
  digitalWrite(TRIG,HIGH);
  delayMicroseconds(1);
  digitalWrite(TRIG,LOW);
  time = pulseIn(ECHO,HIGH);
  if (time > 0) {
    range = (time / 2) * 340 * 100 / 1000000;
    return(range);
  }else{
    return(9999);
  }
}  

 これを走り回らせると、次のようになる。

 これにカメラを積み込み……

虫瞰カメラ

 で、動画を撮影するわけだ。

 なかなか這いまわっている感じが出て、いいと思う。

Raspberry Piで温度を測ろう

投稿日:

 以前、Arduinoのアナログ入力にサーミスタをつなぎ、温度計にして遊んだ最近はLCDディスプレイに温度を表示してみたり、なかなか面白い。

 一方、Raspberry PiはWebによくなじむ。ApacheもPHPも走る。

IMG_3317 それで、先週宮城大学小島研究室のサイトで公開しておられるADCアクセスのためのソースコードを拝借して遊んだが、これを使ってWeb温度計にしてみた。

 まず、ブレッドボードにAD変換ICのMCP3208と、サーミスタ、分圧用の抵抗1kΩを置き、適切に配線する。これには、以前Arduinoで遊ぶために買った「Seeedstudio Arduino Sidekick Basic Kit」に入っていたMF11-503Kというサーミスタをそのまま使う。

 それから、C++でこんなプログラムを書く。先週も書いたが、宮城大学小島研究室のサイトで公開しておられるコードは、Raspberry Pi 1では何の支障もなく動くが、Raspberry Pi 2 Model Bではそのままでは動かない。一部の型キャストなどを変更する必要がある。それについては先週のエントリで記してある。

//
//    tempMesure.cpp
//      佐藤俊夫
//      Sun Sep  6 13:57:53 JST 2015
//      サーミスタMF11-503Kと1kΩ抵抗を直列につなぎ、3.3Vを印加して、
//      その間から分圧をとって温度を測る。
//      宮城大学小島研究室でウェブ公開しておられるソースコードを拝借した。
//      コンパイル
//        cc -lm tempMesure.cpp raspSPI.o raspADC.o -o tempMesure
//
#include <stdio.h>
#include <math.h>
#include "raspADC.h"

#define ADC_CHIP  ADC_3208
float tempMesure(int srcVal);

int main() {
  ADC adc;

  adc.init("/dev/spidev0.1", ADC_CHIP);
  printf("%2.2f\n", tempMesure(adc.get(0)));
}

float tempMesure(int srcVal){
  const float B = 4350.0, Ta = 25.0, Rt0 = 50000.0;  //  MF11-503Kスペックシート記載
  const float K = 273.15;  //  熱力学温度の定数
  const float v0 = 3.3, r0 = 1000.0;  //  Arduino +5Vと電流調整抵抗1kΩ
  const int resolution = 4096;  //  アナログ入力の分解能
  float vt = 0.0, rt = 0.0;

  vt = srcVal * (v0 / (resolution - 1));
  rt = (v0 * r0 - vt * r0) / vt;
  return(1.0 / (log(rt / Rt0) / B + 1.0 / (Ta + K)) - K);
}

 これは単に、サーミスタで計った現在の温度を標準出力に書くだけだ。

 これを「popen();」で開けば、PHPで読める。簡単である。

<html>
 <head>
  <meta name="Editor" content="vim">
  <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
  <link rel="icon" href="favicon.ico" type="image/x-icon" />
  <link rel="Shortcut Icon" type="image/x-icon" href="favicon.ico" />
  <title>PHPで温度計</title>
  <meta http-equiv="Keyword" content="佐藤俊夫, 佐藤, 俊夫, SATOTOSHIO, SatoToshio, sato, toshio, Raspberry Pi, Raspberry Pi 2 Model B">
 </head>
 <body bgcolor="#888888">
<body>
  <center>
  <h1><img src="raspberry_pi.png" width="50px" align="middle"/>Raspberry Pi + PHPで温度計</h1>
  <hr>
  </center>
<?
ini_set( 'display_errors', 1 );
$process = popen("sudo /home/toshio/SPI_ADC/tempMesure", "r");
$temp = fgets($process);
?>
<center>
<table border=1 width="120px">
<tr> <th>0</th><th>10</th> <th>20</th> <th>30</th> <th>40</th> <th>50</th> <th>60</th></tr>
<tr><td colspan = 7>
<table>
<tr>
<td bgcolor="red" width="<?print $temp * 2?>px"><?print $temp?>℃</td&t;</tr></table>
</tr>
</table>
</td></tr></tr></table>
</center>
</body>
</html>

raspberry_tempMesure
 テーブルの幅を温度計のアルコール柱に見立てて、赤い帯で表すようにしてみた。


 Arduinoでも同じようなことはできるが、Arduinoで難しいのは、こういうふうに、無駄に画像を配置したり、少し分量の多いHTMLを書いたりすることだ。だが、こんなことはRaspberry Piには造作もなくできてしまう。

 反面、Arduinoはアナログ入力が直接可能だが、Raspberry Piで同じことをしようとすると、アナログ入力にAD変換ICを準備し、これとの通信にもいろいろと研究の上で取り組む必要がある。簡単で刺激的な目的のために少しプロトタイピングをしてみようと考えている多くのクリエイターがなしうるところではない。

 入門書籍「Raspberry Piをはじめよう」にもそうしたことが少し書かれてある。