Intel Galileo — UARTで接続

Intel GalileoにUARTで接続したい。

調べるとUARTコネクタに接続するには

PCのシリアルポート→ミニジャック

USBポート→USB-RS232C変換モジュール→ミニジャック

というパターンが多い。UARTならUSB-UART変換モジュールが使えるなー、と思って試したが動かなかった。RS232Cは負論理だった。

PCにはRS232C端子は無いし変換モジュールも無いが、マザーボードにはシリアルポートコネクタがあるので直接引き出す事にした。

シリアルポートコネクタ
マザーボードのシリアルポートコネクタ
オーディオジャックのピン配置
オーディオジャックのピン配置

オーディオケーブルとピンヘッダを適度な大きさに切る。

オーディオケーブルとピンヘッダ
オーディオケーブルとピンヘッダ

先端をRX(PCへIN)、次をTX(PCからOUT)、外側をGNDにハンダ付けする。

ハンダ付けした
ハンダ付け

 

グルーガンで固定
グルーガンで固定

 

シリアルポートに接続
シリアルポートに接続

 

シリアルポート設定
シリアルポート設定

 

接続した
接続した

ちなみにUSBシリアル変換と74HC04を組み合わせるとRS232Cもどきの通信ができるらしい。

Intel Galileo — LED点滅まで

LED点滅までの手順をメモ。

付属のACアダプタを接続する。DC5V2A必須らしい。

ソフトウェアをダウンロードする。

intelのサイト→Intel Galileo Arduino SW 1.5.3 on Windows→ダウンロード

C:¥などに展開する。ドキュメントフォルダ等に何気なく展開するとにエラーが出る。

エラー 0x80010135: パスが長すぎます。
エラー 0x80010135: パスが長すぎます。

エラーが出たらキャンセルして展開途中のファイルを削除してC:¥など出来るだけ短い名前のディレクトリに展開する。Program Filesに展開するとコンパイル時にエラーとなる。コンパイラがスペース文字を含んだファイル名に対応していないらしい。(このエラーが出た場合はファイル→終了で閉じてarduino-1.5.3フォルダごとスペース文字を含まない別の場所に移動する。)

コンパイル時にエラーが発生しました。
コンパイル時にエラーが発生しました。

ボードのUSB CLIENTと書かれたmicroB USBコネクタをPCに接続する。

デバイスドライバをインストールする。

デバイスマネージャ→ほかのデバイス→Gadget Serial v2.4→

プロパティ→ドライバ→ドライバの更新→

コンピューターを参照してドライバーソフトウェアを検索します→

次の場所でドライバーソフトウェアを検索します→

C:¥arduino-1.5.3¥hardware¥arduino¥x86¥tools→次へ→

このデバイスソフトウェアをインストールしますか?→

インストール→閉じる

arduinoを起動する

C:¥arduino-1.5.3¥arduino.exe→開く

ファームウェアを更新

ヘルプ→Firmware Update→はい

サンプルスケッチを書き込んで実行する

ファイル→スケッチの例→01.Basic→Blink→ファイル→マイコンボードに書き込む

ボード上のledが点滅する。

 

Intel Galileoで地震計を作りたい

intel galileo
intel galileo

Intel Galileoで地震計を作りたい。

Arduinoで地震計を作ろうと思い調べたところ、Arduinoは加速度センサの値をPCに送る用途には使えそうだけどメモリ容量が不足していて震度を計算するのは困難に思えた。一方intel galileoはArduino互換でパワフルらしいので地震計を作れると思う。

intel galileoはUSBホストの機能があるようだが、周辺機器はUSBで接続するよりI2CやSPIで接続する方がArduinoっぽいような気がする。ADコンバータAD7298も載ってるのだけど、用途が違う感じ。ADS1115はI2C接続でArduino用のスケッチもあるのでこれを使いたい。

intel galileoの配線図を見てレギュレーターの様子を観察してみる。3.3V端子はDC/DCコンバータTPS652510の出力が来ていて他のデバイスと共用でノイズが凄そう。5V端子はACアダプタ直通だけどADP150を通して3.3Vをセンサーに供給すれば良いと思う。

ADS1115のI2Cが接続できれば加速度のサンプリングは問題ないだろう。震度計算は手頃なfftライブラリが見つからないけど移植してなんとかしよう。

結果の出力は液晶表示が無難かも。前回の巨大7セグ表示が思ったほどインパクトが無かったので何か刺激が欲しい。どうしよう。

RaspberryPi地震計

RaspberryPi震度計
RaspberryPi地震計

完成した。前回のFFTライブラリは重かったのでPHP_Fourier 0.03に変更したところ5倍ほど速くなった。これならRaspberryPiでも1秒1回くらいは計測震度が計算できそうだ。

回路図
回路図

WiringPi-PHPをインストールしてGPIOを接続した。

ピン数を抑えるために7セグ用デコーダSN74LS47Nを使った。

強弱の表示は平面板LEDにSTiKA SV-8で切り出したカッティングシートを貼った。

センサー部分は地震計9を流用。

ソース

rpieq.php

phpのfftライブラリのテスト

phpで計測震度を計算するのにfftライブラリが必要になったのでテスト。試しにFast Fourier Transform 0.1を使ってみる。

平成12年(2000年)鳥取県西部地震の米子市のデータを気象庁が公開しているので同じデータをサンプルデータとして使う。ファイル名はAA06EA01.csv。

結果

AA06EA01

完全に一致。

ただしちょっと重い。Corei5 2.3GHzのpcでテストしたが1秒に3回計算するのがやっと。RaspberryPiでは厳しいかも?5秒に1回くらいでも実用かも?元々c++だしc++で書く方が楽かも?

ソース

ffteqtest.php

(2016/04/21 気象庁のurlを修正)