2013/06/27

BeagleBone BlackでA/D変換をする

BeagleBone Blackには8つ(7つでした 2013-06-30訂正) の12ビットA/D変換ポートがついています。
温度センサや距離センサなどの各種アナログセンサを使った工作には必須のポートです。

BeagleBone Blackからは読み取りの方法が変わったようなので、調べてみました。
(私の環境はBeagleBone Black - Ubuntu13.04です)

参考元:
 Reading analog (ADC) values on BeagleBone black
 BeagleBone Black Analog Input

BeagleBone BlackでA/D変換をする手順は以下の通りです。
まずはA/D変換を有効にします。

    echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots

上記コマンドでデバイスファイルが作成され、各ポートの値がファイルシステム経由で取得できるようになります。dmesg | grep bone  を実行すると、 起動時にeMMCとHDMI用のデバイスドライバ?が読み込まれているのがわかります。

A/D変換ポートは8つ7つあるので、AIN0からAIN7AIN6までそれぞれ読み取ることができます。

    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN0
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN1
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN2
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN3
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN4
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN5
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN6
    cat /sys/module/bone_iio_helper/drivers/platform:bone-iio-helper/*/AIN7

現状では2度読みしないと値が更新されないようなので注意が必要です。
以前は12ビットの値がそのまま出力されていましたが、現時点ではミリボルト単位で出力されるようになっています。自分で変換する必要がないので便利ですね。


0 件のコメント:

コメントを投稿