電子工作」カテゴリーアーカイブ

ここに電子工作関係のページを集めます。

Raspberry Pi と Arduino をシリアル通信でつなぐ (のつづき)

QR234

QR234

Raspberry Pi は 3.3V 駆動。多くの Arduino は 5V駆動。

おまけに Raspberry Pi は過電圧耐性がありません。なので、入出力ピンに 3.3V以上の電圧をかけると壊れてしまうと考えることになります。正確に何点何ボルトまでが限界なのかは、データシートを読まないといけない(すいません、読んでないです)のですが、とにかく5.0Vに耐えられないのは確かです。

なお、こういう文脈で「耐えられない」といったことをやってしまっても、実際には動いてしまうことがありますが、こういう文脈での「耐えられない」とは、「何が起きてもあなたのせいよ」という意味です。ただちに火を噴くかもしないし、うんともすんとも言わなくなるだけかもしれないし、全然予期しない動作をするかもしれないし、一時的にせよ正常に動いちゃうかもしれない、ってことです。とにかく、定格を越えたことはやってはいけないのです。

というわけで、両者をつなぐには電圧を変換するコンバータが必要で、そうしない限り(すなわち直結は)ダメだよ、というのが、オリジナルの投稿でのやりとりでした。

なので、電圧を変換すればよいのですが、業務用機器(究極的には軍用機器)を作るのか、アマチュアのお楽しみでよいのかで、対応がまるで違ってきます。

ここでは、アマチュアのお楽しみで良い場合の対応を書きます。

今回の場合は、両者をつなぐ線は、GND線以外は、TxD と RxD しかなく、それぞれに流れる信号は単方向です。なので対応は実は意外に簡単です。

まず 3.3V系(RPi)から 5V系(Arduino)に向かう線は、多分何もしなくても大丈夫です。3.3V系の H レベルはほぼ 3.3V 出ると予想されます。これだけの電圧があれば、5V系でも H と認識されます。

逆方向の 5V系から 3.3V系に向かう線には一工夫必要です。速度がそれほど問題にならないので、抵抗2本で分圧してしまうのが簡単そうです。

というわけで、T君には、抵抗2本使って試してもらって、その結果を報告してもらいたいと思います。

抵抗2本?どうつなぐの?何Ω、なんて言ってるようじゃいけません。SparkFun のサイトにゆけばたくさんの回路図がロハで手に入ります。毎日少しずつでもこれらの回路図を読むととても勉強になりますよ。>> T君

 

Raspberry Pi と Arduino をシリアル通信でつなぐ

QR204

QR204

「Raspberry Pi と Arduino をシリアル通信でつなぐ」という記事を見つけた。
以下で紹介する Tweet のように、記事のタイトルどおり Raspberry Pi に純正の Arduino をつなげると Raspberry Pi が壊れてしまうので注意が必要だ。


続きを読む

なぜ電子工作?

QR193

QR193

以前のε-ARKプロジェクトをご存知の方は、ε-ARKデバイスは既存のハードウェアにソフトウェアを追加して構成するものであって、ハードウェアの製作には手を出さない方針だったのではないかと疑問を持っていらっしゃるかもしれません。

たしかに,後にε-ARKプロジェクトとなる一連の活動が始まった2006年頃は,自前のハードウェアを作ってそこに自分の望むOSを入れてその上に必要なソフトウェアを導入するというのはあまり現実的ではありませんでした。ハードウェアの自作は無理でも「既存の Linux が動く電子手帳」を使えばなんとか目的が達せられるという状況で、プロジェクトとしてはこれに飛びつきました。

時代は流れ、当時は電子手帳上になんとか構築して実現していたことが、電子手帳よりもさらに小さいハードウェアで実現できるようになり、周辺装置も含めて手作りできるようになりました。そこで、理想的なε-ARKデバイスの実現をめざし、ε-ARKプロジェクトではハードウェアの製作にも研究開発の範囲を広げることにしたのです。トップページにある「電子工作」カテゴリは、そういう近況が反映された結果です。

 

第5回 木いちごの会開催予定 (2013年2月12日)

QR118

QR118

木いちごの会は、原則として月に2回、第2火曜日の夕方と、第4木曜日(あるいは最終木曜日)の昼休みに開催しようと思いますが、毎回のアナウンスでご確認ください。

以下の日程で、木いちごの会の開催を準備しています。Raspberry Pi に関する(あるいは直接関連しなくても、こじつけられればなんでも)話題の提供、情報交換などをしたいと思います。

日時:2013年2月12日(火) 18:30-20:30

場所:金沢BizCafe(石川県金沢市片町)3階会議室

費用:無料

当日は、19時から同じ BizCafe の 1,2階で、ICT関連分野の異業種交流会「アイアイプラネッツ例会」が開催されます。

アイアイプラネッツ例会は参加費3,000円で、飲食できます。

 

第4回 木いちごの会開催通知 (2013年1月31日)

QR83

QR83

木いちごの会を開催します。

日時:2013年1月31日(木) 12:00〜13:00

場所:金沢大学総合メディア基盤センター(場所の詳細は当日総合メディア基盤センター入口に掲示)

学内外を問わずどなたでも参加できます。

参加者のみなさんの相互の交流を促進したいので、ネタがある人もない人も、お気軽にどうぞ。

ネタがある人が、作品をデモしたり、動画や静画を再生できるよう、電源、有線LAN、HDMIプロジェクタは用意します。

本当は、飲食禁止ですが、昼休みですから、こっそり飲食することを黙認しますので、こっそりお願いしますね!

 

さらに Raspberry Pi

QR51

QR51

昨日は、なぜ、いま、Raspberry Pi なのかについて、3つの視点から書きました。

が、まぁ、本音を言えば、ピンと来た、あるいは、一目惚れということになるかと。

 

昨日の投稿の「タイミング」にも書きましたが、

  • Arduino の 32bit 化がなかなか始まらなかった。
  • mbed は完全なオープンじゃなかった(その後、変化があった)
  • GR-SAKURA に大いに期待したし、実際、GR-SAKURA には魅力があるけれど、やっぱり 8bit 時代のライブラリがそのまま使えるだけじゃ限界があると感じていた。
  • やはり、OS用意しないとなぁと思っていた。ネットにつなぐのならセキュリティに対する配慮も必要で、どうしようか悩んでいた。

というタイミングでの RPi 登場だったのです。おまけにとても安かったし。

というわけで、出会うタイミングがすごくよかったと思います。

(3/23/2013 改定)

 

なぜ Raspberry Pi?

QR22

QR22

なぜ、今 Raspberry Pi なのか、という質問をいろいろな方から受けますので、明日の木いちごの会を前に、ツイートしてみたいと思います。

自分的には、現時点では以下の3つの視点から「今が旬なのだ」と言えると思っています。

視点1:価格、視点2:タイミング(時期)、視点3:新しいパラダイム

視点1:価格

CPUに加え、USB, 有線LAN, HDMI, GPIO などのI/Oを搭載して35ドルという価格は圧倒的。arduino, mbed, GR-SAKURA などでこの構成を組んだら35ドルには収まりません。

この価格なら、気軽に買えます。知人や学生さんにも気軽に勧められます。安いだけでなく、ものすごくお買い得感があり、それがこれをどんなふうに料理しようという創作意欲を刺激します。

もちろん、本体以外に、最低でもLANケーブルと電源アダプタが必要ですが、LANケーブルは持っている人が多いでしょうし、電源アダプタは携帯電話用のものとかを流用できるでしょう。

視点2:タイミング

RPi の積極的導入に対し、2つの真逆の見解があるようです。1つは、なぜLinuxにする必要があるのか今まのCPUで十分ではないのかといういわば「時期尚早」派。もう1つは、ずっと前からこんなことできるじゃんという「気づくの遅すぎ」派。

自分はどちらかといえば「気づくの遅すぎ」派に同意します。自分(たちのグループが)小型の組み込み用機材にUNIX系を入れてI/Oを最初に操作したのは、今から23年前の1991年のことです。

1991年7月の 第17回JUS(日本UNIXユーザ会) UNIXシンポジウムにて、Everything can be IP-reachable という論文を発表しています。

論文 Everything can be IP-reachable はここからたどれます。bit.ly/VuNJEt ただし、tiff 形式だったりするので、ビューアを選ばないと開けなかったり2ページ目以降が開けないかも。

組込機にUNIXを載せてI/Oを弄る試みは新しくはありません。自分も OpenBlocks, armadillo, chumby などを使ってきました。騒ぐんだったら、BeableBoard が出たタイミングだったのではといわれそう。

自分的には arduino 文化の成熟が大きく関わっています。arduino とそのシールド群が展開したフィジカルコンピューティングのインパクトは強烈でした。本来ハードウェア屋でない自分の電子工作スイッチが久しぶりにオンになりました。

そして、arduinoを使い込むにつれ、8bit CPUゆえの苦しさ、OSがないことの不便さを感じるようにも。特にネットワークまわりは大変で、IPv6 をしゃべる arduino を用た機材は、世界的に見ても未だにごく少数です。

電子工作が一過性ではないブームになり、ネットワーク業界では IoT (Internet of Things) が注目され、IPv6 の展開が引き続き行われているというのに、ここで電子工作人(びと)が IPv6 に進出しないのは悲しい。

arduino の限界を見極め、本家も32bit版を出し、国内でも GR-SAKURA が開発されましたが、これって、大昔に初代の PC-9801が出た直後と似ています。初代のPC-9801は、ROM BASICを使う設定でした。

当時の 8bit CPU とその周辺環境からするとOSの搭載は難しくCP/Mがありましたが、ROM BASICが全盛でした。16bitパソコンにもBASICを乗せ互換性を保つのは重要ですが、16bitパソコンには新OSが必要でした。

16bitパソコンがBASICやCP/M86でなく、MS-DOS を受け入れ発展したように、32bitの小型CPUボードも、従来のライブラリの互換品を延長するのではなく、新しい何かを受け入れるのだと思っています。

視点3:パラダイムシフト

UNIX系OSを搭載できる RPi の登場はまさにそうなるべきタイミングでそうなったように思います。32bitCPUボードはOSを必要としていました。UNIX系OSは実時間性が不安かもですが、最善の選択肢のひとつです。

マルチタスクであるUNIXでは、プロセス間通信を普通に考えますから、プログラムの作り方が従来とは変わります。LEDを動的駆動する場合、従来はタイマ割り込みで桁駆動しましたが、UNIXでなら違うスタイルが可能です。

LEDを動的駆動する単機能の daemon を用意し、LEDにデータを表示したいプロセスはこの daemon とプロセス間通信してデータ表示を依頼します。デバイスの駆動と情報の生成をプロセスレベルで分離できます。

時刻に応じて機能を変化させるといったことも UNIXであれば cron を使って無問題でできますが、こういうことは8bit組込ボードではそもそも不要か無意味でした。これからは盛んになるでしょう。

そもそも、これまではプログラムをクロス開発し、ターゲットに書き込むというのが当たり前でした。RPi では、自分自身で自分自身の開発ができます。定期的にレポジトリからソースをとってきて自動的に新しい環境を再構築するなんてワクワクです。

ある目的のためのソフトウェアをさまざまな方法で開発できる多様性も大きな変化。shell script, perl, ruby, pythonなどのスクリプト系、各種コンパイラ、開発言語も多様なら編集もデバッグも多様。多様性は重要!

ここから先は、単一のプログラム vs マルチタスクOS の比較論になっちゃうので、そろそろやめますが、UNIX系OSが動くCPUボードがとても安価に使えるようになったので、新しい発想で開発ができます〜と言いたかったわけです。

多様な考え方の存在は何より大切ですから、明日の木いちごの会で、みなさんの意見を聞かせてくださいね。