この記事はSYSKEN Advent Calendar 2016 6日目の記事です。
どうも、相変わらずの低出没率のCilviaです。
今回は普段やってるロボコンの技術を生かして、PCとマイコン間での通信の方法についての話でもしようかと思います。
はじめに
最近、Arduino とか mbed とか Raspberry Pi とかが流行っていますね。APIがいろいろ整備されていてとっつきやすいですから、当然のことだと思います。そういったこともあって、PCだけではできなかったLEDを光らすとかモーターを回すこととかが簡単にできるようになりました。
マイコンの内部の話をしようかとも思いましたが、ここはさらにマイコンへ親しみを覚えてもらうために、こいつらは一体どんな風にしてコンピュータと通信しているのかというのを紹介していきます。
RS232C
マイコンの通信の基本のRS232C通信です。主に送信(TX)と受信(RX)の2線シリアルで通信を行います。1回で1Byteのデータをやり取りします。通信する機器同士で通信速度を同じに設定してやる必要があります。
ケーブルの端子はこんな感じ。昔のPCには接続できるポートがついてました。
https://commons.wikimedia.org/wiki/File:RS-232.jpeg
こいつがパソコン側のRS232C端子です。あとはマイコンと信号の電圧を合わせてやってちゃんと設定すれば通信できます。
今だったら、USB-RS232Cで変換して使うことが多いと思います。
Arduinoのプログラム書き込みは確か、こいつを使っていたと思います。
USB
みなさんご存じUSBです。説明省いてもいいかなぁ? ←ちゃんと説明します。
最近のマイコンはUSB機能を最初から持っているものがあったりします。(USB自体の信号を入出力できるもの)
そいつらのプログラムを変更してやるだけで、様々なUSB機器として認識させることができます。例えば、HIDデバイス(キーボードやマウスなど)やMSD(USBメモリなどのマスストレージ)などですかね。しかも、これらを組み合わせて1つのマイコンで複数の機能を持つ(HIDとMSDの組み合わせなど)機器として認識させることができたりします。
もうこいつだけでいいんじゃないかな?
LAN
有線LANでコンピュータと接続できるマイコンもあります。内部にNICを持っていてipアドレスなどで通信することができます。
Raspberry Pi なんかはその代表例になるかと思います。ネットワーク上の機器として認識できるので、インターネット系を専門にしている人にはとっつきやすいかも。
私自身は使ったことがないのであんまりわかんないです。
無線系
主にwi-fiやBluetoothがこれに当たります。
無線系の通信方式では制御用のマイコンからRS232CやUSBを通してつなげることも多いです。これまで紹介したのはすべて有線ですが、無線なので取り回しも簡単ですし、場所を取らないので最高です。
ちょっとモジュールが高いですが、PCだけでなくスマホやゲーム機にもつなげられるのは大きな利点だと思います。
おわりに
とりあえず、わかる範囲でPC-マイコン間の通信について話しました。
たまには、シス研でハードウェアのことやってもいいよね。というかもっとやる人増えて
というわけで、Cilviaがお送りしました。
コメントを残す