こんな需要はまったくない・・・かもしれないので、自分へのメモと
いうことで・・・
Raspbery Piのシリアル通信をテストしたい場合、USBを使って、Windowsにつなぎ、
COMポート経由でTeraTermで確認するということをすると思います。
ここでやりたいのは、その間に、中継サーバをおいて、
1.中継サーバーとRaspberry Piがシリアル通信する
2.中継サーバーが受け取ったRaspberry PiのデータをWindowsのTeraTermに流す
3.中継サーバーへWindowsのTeraTermからデータを投げて、それをRaspberry Piに流す
ということがしたいのです。そうすると、あとで中継サーバーでいろいろなプログラム
を組みことで、自動的にテストし、その結果をTeraTermで見れたりするので・・
つまり、こういうことがしたいわけです。
で、何を中継サーバーにするかですが、
・Raspberry Piが3.3Vなので、3.3V系で
・ご家庭でどこでもあるようなもの・・・
・・・となると、mbedのLPC1768ということになるわけです、
(ここで「いや、家庭にねーだろ!」という意見は無視します)
ということで、以下、
・Raspberry PiとLPC1768(mbed)をシリアル通信で結び
・LPC1768とWindowsをUARTで結んで、
・Raspberry piからはcuコマンドで
・WindowsはTeraTermで
送受信する(RPiで打ったものがTeraTermに表示され、TeraTermで打ったものがRPiに表示される)
を説明します。
■Raspberry Pi側であらかじめ行うこと
・cuコマンドが入ってなかったら、インストールする
sudo apt-get install cu
・cuを使うのには、一般に/boot/cmdline.txtを直すらしい
ここ
Raspberry PIのGPIO上シリアルとArduinoの通信
http://qiita.com/ryugyoku/items/bf5fd10512c84a55d030
に書いてあるStep1,Step2は一応やった
(Step2は起動のたびに必要なのかしら?やってないけど・・)
■Windowsで必要なこと
・TeraTermが入ってなかったらいれる
自分は入ってた
・デバイスドライバが必要なら入れる
今行っているのはWindows7なのだが、7でもSPのいくつか、
またWindows8では、mbedをUSBにさしても、comポートと
して見えない(デバイスマネージャーで確認できる)
この場合、ドライバーを入れる
ドライバーは、mbedWinSerial_16466.exeをいれたけど、
https://developer.mbed.org/handbook/Windows-serial-configuration#1-download-the-mbed-windows-serial-port
から、取ってくるべきかも・・・
Windows10では、うまくいくかどうかわからない。
・mbedのcomポートを確認する
インストールが終わったあとで、mbedを指すと、USBが開くのはもちろんなんだけど、
デバイスマネージャーで確認すると
のようにmbedのcomポートができているので、com何番か控えておく
(あとでteraTerm立ち上げで使う)
■mbedでの作業
mbedでの作業は、配線とプログラミングになる。
●mbedでのプログラミング
・mbedの開発サイトへGo
https://developer.mbed.org
・登録していなかったら、登録し、とにかくログイン
・ログインしたら、Compilerで開発環境を出す
・新しいプロジェクトを作って、そこのmain.cppに、こんなかんじでプログラミング
できたら、保存、コンパイルすると、エラーがないとおもうので、
実行ファイルをダウンロードできるようになる。
●mbedの配線
ざっくり、こんなかんじ
抵抗は共に1KΩ(プルアップ抵抗)
Raspberry Pi側のTXをプルアップしてmbed側のRXへ
mbed側のTXをプルアップしてRaspberri Pi側のRXへ
GNDはそのままつないでいる
WindowsとはUSBをつなぐことで、接続している。
具体的には、ブレッドボード上に作っているんだけど、
・ブレッドボードは縦に1~30、よこにa~jまでの番号が振られ、その外側に、+、-があるけど
・ブレッドボードの30番(一番はし)にmbedをおく
30のbにVout,30のiにGNDが来ている
・30のjを-(はじの2本の青い線のほう)のどこかにつなぐ(GND)
・30のaを+(はじの2本の赤い線のほう)のどこかにつなぐ(VOUT)
・抵抗の一方の足を+のどこか、他方を5のaにおいている(プルアップ抵抗)
・抵抗の一方の足を+のどこか、他方を4のaにおいている(プルアップ抵抗)
・Raspberry PiのGNDを-のどこかにつないでいる
・Raspberry PiのTXを5のBにつないでいる
・Raspberry PiのRXを4のBにつないでいる
・5のCを21のjにつないでいる(P10)
・4のCを22のjにつないでいる(P9)
※どこかとは、どこでもよいということ
※(数字)の(あるふぁべっと)は、ブレッドボードの穴の位置を示している
■実行!
●Windowsですること
・mbedをWindowsPCにつなぐ
・mbedのフォルダが開いたら「mbedでのプログラミング」でダウンロードした
プログラムをmbedのフォルダにコピー
・TeraTermを立ち上げる
シリアルのComポートの番号は「Windowsで必要なこと」で確認したCOMポート番号
●Raspberry Piですること
・Raspberry Piのcuのたちあげ
Raspberry Piでログインしたあと、ターミナルを立ち上げる
・権限を付与(しないと、cuが「パーミッションでないど」になる)
sudo chmod 666 /dev/ttyAMA0
・cu実行
sudo cu -s 9600 -l /dev/ttyAMA0
このあと、connectedと表示される。
ここで、PCのTeraTermから文字を打つとRaspberry Pi上に、
Raspberry Pi上から文字を打つとTeraTermに
文字が表示されるようになる。
【直接関係無いけど、自分へのメモ】
ICの足番号の数え方
http://www.iccraft.com/parts/ic/package.html
いうことで・・・
Raspbery Piのシリアル通信をテストしたい場合、USBを使って、Windowsにつなぎ、
COMポート経由でTeraTermで確認するということをすると思います。
ここでやりたいのは、その間に、中継サーバをおいて、
1.中継サーバーとRaspberry Piがシリアル通信する
2.中継サーバーが受け取ったRaspberry PiのデータをWindowsのTeraTermに流す
3.中継サーバーへWindowsのTeraTermからデータを投げて、それをRaspberry Piに流す
ということがしたいのです。そうすると、あとで中継サーバーでいろいろなプログラム
を組みことで、自動的にテストし、その結果をTeraTermで見れたりするので・・
つまり、こういうことがしたいわけです。
で、何を中継サーバーにするかですが、
・Raspberry Piが3.3Vなので、3.3V系で
・ご家庭でどこでもあるようなもの・・・
・・・となると、mbedのLPC1768ということになるわけです、
(ここで「いや、家庭にねーだろ!」という意見は無視します)
ということで、以下、
・Raspberry PiとLPC1768(mbed)をシリアル通信で結び
・LPC1768とWindowsをUARTで結んで、
・Raspberry piからはcuコマンドで
・WindowsはTeraTermで
送受信する(RPiで打ったものがTeraTermに表示され、TeraTermで打ったものがRPiに表示される)
を説明します。
■Raspberry Pi側であらかじめ行うこと
・cuコマンドが入ってなかったら、インストールする
sudo apt-get install cu
・cuを使うのには、一般に/boot/cmdline.txtを直すらしい
ここ
Raspberry PIのGPIO上シリアルとArduinoの通信
http://qiita.com/ryugyoku/items/bf5fd10512c84a55d030
に書いてあるStep1,Step2は一応やった
(Step2は起動のたびに必要なのかしら?やってないけど・・)
■Windowsで必要なこと
・TeraTermが入ってなかったらいれる
自分は入ってた
・デバイスドライバが必要なら入れる
今行っているのはWindows7なのだが、7でもSPのいくつか、
またWindows8では、mbedをUSBにさしても、comポートと
して見えない(デバイスマネージャーで確認できる)
この場合、ドライバーを入れる
ドライバーは、mbedWinSerial_16466.exeをいれたけど、
https://developer.mbed.org/handbook/Windows-serial-configuration#1-download-the-mbed-windows-serial-port
から、取ってくるべきかも・・・
Windows10では、うまくいくかどうかわからない。
・mbedのcomポートを確認する
インストールが終わったあとで、mbedを指すと、USBが開くのはもちろんなんだけど、
デバイスマネージャーで確認すると
のようにmbedのcomポートができているので、com何番か控えておく
(あとでteraTerm立ち上げで使う)
■mbedでの作業
mbedでの作業は、配線とプログラミングになる。
●mbedでのプログラミング
・mbedの開発サイトへGo
https://developer.mbed.org
・登録していなかったら、登録し、とにかくログイン
・ログインしたら、Compilerで開発環境を出す
・新しいプロジェクトを作って、そこのmain.cppに、こんなかんじでプログラミング
#include "mbed.h" Serial MySerial1(USBTX,USBRX); Serial MySerial2(p9,p10); int main() { while(1) { char c; if (MySerial1.readable()) { c = MySerial1.getc(); while(!MySerial2.writeable()) { // 受信可能になるまで、ループ } MySerial2.putc(c); } if (MySerial2.readable()) { c = MySerial2.getc(); while(!MySerial1.writeable()) { // 受信可能になるまで、ループ } MySerial1.putc(c); } } } |
できたら、保存、コンパイルすると、エラーがないとおもうので、
実行ファイルをダウンロードできるようになる。
●mbedの配線
ざっくり、こんなかんじ
抵抗は共に1KΩ(プルアップ抵抗)
Raspberry Pi側のTXをプルアップしてmbed側のRXへ
mbed側のTXをプルアップしてRaspberri Pi側のRXへ
GNDはそのままつないでいる
WindowsとはUSBをつなぐことで、接続している。
具体的には、ブレッドボード上に作っているんだけど、
・ブレッドボードは縦に1~30、よこにa~jまでの番号が振られ、その外側に、+、-があるけど
・ブレッドボードの30番(一番はし)にmbedをおく
30のbにVout,30のiにGNDが来ている
・30のjを-(はじの2本の青い線のほう)のどこかにつなぐ(GND)
・30のaを+(はじの2本の赤い線のほう)のどこかにつなぐ(VOUT)
・抵抗の一方の足を+のどこか、他方を5のaにおいている(プルアップ抵抗)
・抵抗の一方の足を+のどこか、他方を4のaにおいている(プルアップ抵抗)
・Raspberry PiのGNDを-のどこかにつないでいる
・Raspberry PiのTXを5のBにつないでいる
・Raspberry PiのRXを4のBにつないでいる
・5のCを21のjにつないでいる(P10)
・4のCを22のjにつないでいる(P9)
※どこかとは、どこでもよいということ
※(数字)の(あるふぁべっと)は、ブレッドボードの穴の位置を示している
■実行!
●Windowsですること
・mbedをWindowsPCにつなぐ
・mbedのフォルダが開いたら「mbedでのプログラミング」でダウンロードした
プログラムをmbedのフォルダにコピー
・TeraTermを立ち上げる
シリアルのComポートの番号は「Windowsで必要なこと」で確認したCOMポート番号
●Raspberry Piですること
・Raspberry Piのcuのたちあげ
Raspberry Piでログインしたあと、ターミナルを立ち上げる
・権限を付与(しないと、cuが「パーミッションでないど」になる)
sudo chmod 666 /dev/ttyAMA0
・cu実行
sudo cu -s 9600 -l /dev/ttyAMA0
このあと、connectedと表示される。
ここで、PCのTeraTermから文字を打つとRaspberry Pi上に、
Raspberry Pi上から文字を打つとTeraTermに
文字が表示されるようになる。
【直接関係無いけど、自分へのメモ】
ICの足番号の数え方
http://www.iccraft.com/parts/ic/package.html