Upload
tatsuya-yamamoto
View
126
Download
1
Embed Size (px)
Citation preview
Raspberry Piとは?
• $35で買えるお手軽PC
• CPUはARM11 700MHz
• メモリ 512MB
• SDカードからOS読み込み
• OSはubuntuベースのrasbian
• IO操作ができる
良く言うと超高スペックなマイコン、悪く言うと低スペックなPC
シリアルサーボとは?
•近藤科学が出しているサーボモータに付属するシリアル通信ができるモデルのサーボ。
•基本的にPWMも対応している。
•時代によって、ICS1.0~ICS3.5と規格が変わっていった。
•規格としては一線式UARTになっている。
UARTとは?
• UART (Universal Asynchronous Receiver Transmitter)とはシリアル通信の方式の一つである。ユーアートって読むらしい。
•似ている規格(ほぼ同じ?)としてRS-232CやUSARTやLINなどいろいろありますん。
• スタートビットでデータの送信を開始し、ストップビットで送信を終了する。
Raspberry PiでUART
•方法1• レジスタをたたく
• いろいろめんどい、だが高速
•方法2• WiringPiというライブラリを使用する ←採用
• GPIO,PWM,I2C,SPI,UART,LCDのライブラリがあり、お手軽
WiringPiのインストール
• Raspberry PiにRasbianが乗っていることが前提。Rasbian以外で動くかは知らないです。
•下のコマンドをターミナル上で実行(クローンしてビルド)
$ git clone git://git.drogon.net/wiringPi
$ cd wiringPi
$ ./build
これでおk!
ICS3.5の規格
•通信条件• 通信速度 115200bps(default), 625000bps, 1.25Mbps
• ビット長 8bit
• スタート 1bit
• ストップ 1bit
• フロー制御無し
• パリティ EVEN(偶数)
•送信コマンドのループバック、マルチドロップ接続
• シリアル通信モードへの移行• 電源投入時に信号線を500mS間、Hレベルに保つことで通信が可能になる。
• LレベルにするとPWMモードに移行する。
Raspberry Piで一線式UART
• とりあえず、RxとTxをつないでみた• →動かないのん
• つないでプルアップしてみた• →動かないのん
• ヒカリ大先生に聞いてみた• トランジスタを挟んでプルアップしたらいいっぽい。
結果
•通信は成功していた!
•サーボ回った!
•サーボの回転角度は0~16383の14bit値 0は脱力
• ただし、約1~3000と約11000~16383では回転しなかった。• 回転値の計算間違いの可能性あり
• あと、パラメータ書き込み、読み込みコマンドが使用できたらスピード制限、電流制限ができるはず!