お知らせ

  • らずぱいでIoT

らずぱいでIoT 第14回(ラズパイ4B登場)

noimage

らずぱいでIoT 第14回(ラズパイ4B登場)

かわせです。 久しぶりにらずぱいでIoTを更新します。 いよいよ日本でもRaspberry 4Bが発売されました。 ということでスイッチサイエンスさんで購入してDebian10ベースのOSを入れてみました。 やはり前にも書いた通りlibgpio仕様となっているためgpioコマンドを起動するとエラーが発生します。 Oops - unable to determine board type... model: 17 というメッセージでボードタイプが特定できないというメッセージが出て終了します。 でこれに対応するためにはどうするかというと答えはここにありました。 http://wiringpi.com/wiringpi-updated-to-2-52-for-the-raspberry-pi-4b/ sudo su - で管理ユーザーになり wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb で解決いたしました。

  • らずぱいでIoT

らずぱいでIoT 第12回(C言語で制御するために、その3)

noimage

らずぱいでIoT 第12回(C言語で制御するために、その3)

前回は、メモリのアドレスと意味についてマニュアルから読み取れるというお話をしました。 C言語を使うと、ポインターに仮想メモリのアドレスを与えてあげればメモリにアクセスすることも可能でしょう。 しかし、ラズベリーパイは基本的にRasbian LinuxというOSが乗っているのでメモリーにアクセスるるためにはメモリデバイス/dev/memを介してアクセスるようにします。 ただ、/dev/mem はrootユーザにしか書込み権が与えられておらず、このデバイスに書込みアクセスるためにroot権限が必要になります。 なので、実際には/dev/gpiomem というデバイスにアクセスします。 (/dev/gpiomem にはrootグループユーザまでに書込み権が与えられています。) このデバイスファイルにCでアクセスるためにはfopenサブルーチンではなくopen システムコールを使います。 open通常のファイルアクセスではなくデバイスファイルにアクセスる場合に使い、ドライバの機能にアクセスるためのファイルディスクリプタを得ることが出来ます。 実際にメモリにアクセスするためにはmmap()関数でGPIOメモリをマッピングし、終了時にはmunmap()関数でアンマップします。 また、Rasbian Linuxでは一般ファイルとしてGPIOにアクセスることも可能で、 /sys/class/gpio 以下の export ファイルにコントロールするGPIOのピン番号を指定するとコントロール用の /sys/class/gpio/gpioxx というディレクトリが出来上がりその下にdevice,value,edge,active_low等の制御用ファイルが出来上がりこれらのファイルにアクセスすることでGPIOピンをコントロールすることが出来ます。 参考 https://www.kernel.org/doc/Documentation/gpio/sysfs.txt   この制御ファイルはC言語からだけではなく、ファイルにアクセスできればどんな言語からもアクセス可能です。

  • らずぱいでIoT

らずぱいでIoT 第11回(C言語で制御するために、その2)

noimage

らずぱいでIoT 第11回(C言語で制御するために、その2)

こんばんわ、かわせです。 ラズパイでIoT前回は現在乗っている、BROADCOMのチップによって制御する方法が変わってくるのでチップセットを知る方法について書いてみました。 RaspberryPi ZeroではBCM2835というチップでこの説明書を読んでみるとラズパイのメモリ配置やペリフェラルデバイスIOマップや各種レジスタの意味が書かれており これを読むことでUARTシリアル通信にかかわるレジスタやGPIOの操作にかかわるレジスタ群の説明が書かれています。 このような説明書をもとにして、C言語で直接ハードウエアを制御することも可能になります。 また、ラズパイでは標準でRasbianというDebian LinuxをベースにしたOSが配布されておりこのOSを使うことが一般的です。 OSでは各種ペリフェラルデバイスをコントロールするためのドライバが用意されておりこれをC言語から制御することで操作する方法もあります。 各種デバイスドライバをRasbian Linuxに組み込むためには raspi-config というコマンドを使います。 raspy-configではそのほかにsshの起動や起動時にGUIを使うかCUIを使うかの設定やlocal設定なども可能で、ラズパイは最も小さいLinuxPCとも言えます。 そこで手前みそではありますが、UNIX Like OSの勉強会を今後開いていこうと考えており下記のアドレスでメンバーを募集しております。 https://bashw.connpass.com/   ご興味のある方はこのURLからメンバー登録お待ちしております。