Raspberry Pi でシリアルポートを使ってみる。

Raspberry Pi 2

OSなどソフトウェアを全て最新にします。

 

以下のコマンドで、シリアルポートを有効にします。有効にする項目があります。

このままだと、シリアルポートはコンソール通信として使えるようになりますが、今回は組み込み用に使うので設定ファイルを書き換える必要があります。

Raspberry Piでシリアル通信

 

以下のファイルを書き換えます。

/boot/cmdline.txt

 

 

一番最後にある行をコメントアウトします。

/etc/initab

再起動します。

 

今回はRS485で使うので、ハードウェアを作らなければなりませんが、前回UPした回路図の様に作れば問題ありません。

回路図をよく見ると、Raspberry Piのピンからそのままフォトカプラと7414につながっているだけなので、PICなどは不要です。

フォトカプラに流す電流は少ないほうが劣化が少ないので、通常はRXDが有効状態なのでLで電流がながれ無いように作ります。(追記:RS485の回路はNGです。この次の回路図を使ってください。動きますが、電流ながしっぱとかに。)

P1 V1.02

秋月の部品で作るなら、以下のようになります。動作確認していないので、間違えがないか不明です。
PC3の電源ですが、5Vに繋いだ方が無難です。データシートにはその条件でしか書いていません。

あと、7414で反転させていない回路図なので、上の回路図でいえば7414介さずそのままつなぎます。

更新:R18,R15は10kにしてください。Lに下がり切りません。正しいのはこの次。

aki

MAU102はDCDC 5V-5Vなんですが、2次側の電圧がもれなく0.3Vほど高く出ます。ここICは問題ないですが、他の電子部品で使う場合には注意が必要です。

配線の両脇にはAB線に120Ωを付けてください。

580f5f43a79457bc6565c43df3dcebde

RS485なので、GPIO4番を使います。GPIOのコントロールは次のHPに書いてある通りにします。

Raspberry PiのGPIO制御方法を確認する(GPIO制御編その2)

 

GPIO4番を出力ポートにします。

送信状態、TXDを有効にします。

受信では

 

LEDが付いているので、TXDだけ確認してみます。

動作確認はとりあえずminicomというコマンドを使用してみます。

インストール

 

起動

適当なキーを押しっぱなしにしてみましょう。LEDが点滅するはずです。これでTXDの動作確認は取れました。

終了するには、CTRL+A Z Qの順番に押します。

 

次にプログラムでコントロールしてみましょう。

例によって私は PHPしか知らないので PHPでシリアル通信を使えるようにします。

Gorilla

リンク先のインストールの説明では、ファイルの書き換え、コマンドの実行がなぜかコメントアウトになっているので、実際には以下のようにします。

 

以下のファイルに1行追加

/etc/php5/cli/php.ini

 

プログラムで使ってみましょう。

使い方ではWindowsを使用しているので、少しずつ違うところがあります。

ざっくりと、こんな感じにすれば送信します。

受け取り側のPICで確認してみました。

952ac0fa8bb51ce01f0aae4b4354cdcb

testと受け取っています。

ちなみになぜRS485かと言うと、伝送距離が「4000フィートないし1200m以上」ということと、1:n 通信できるからです。スレーブをいくつでも追加できます。wikiから

シリアル通信で、送受信同時にするようなアプリは殆ど無いので、送受信を切り替えて使うRS485がいいわけです。

家の中にいろんな物を引っ張りまわせます。

Raspberry Pi 2

Posted by saba


PAGE TOP
Top