Raspberry Pi 2でGPIOピンを利用したいのですが、個人的に言語が嫌いなので、Pythonは使用しません。ただし、Cの使用に関する情報は見つからず、Pythonのみです。
公式のC APIはありますか?その場合、チュートリアルはどこにありますか?そうでない場合、どのような選択肢がありますか?
Raspberry Pi 2でGPIOピンを利用したいのですが、個人的に言語が嫌いなので、Pythonは使用しません。ただし、Cの使用に関する情報は見つからず、Pythonのみです。
公式のC APIはありますか?その場合、チュートリアルはどこにありますか?そうでない場合、どのような選択肢がありますか?
回答:
公式図書館はありません
いくつかのオプションがあります。通常はhttp://wiringpi.comを使用します。これはgpio
、最近のRaspbianリリースに含まれているユーティリティに使用されます。
Joanのpigpio
ライブラリはhttps://github.com/joan2937/pigpioにあり、Pythonラッパーも持っています。ソケットまたはデーモンを使用する場合は、これが推奨され、ハードウェアおよびピンのバンクへのバルクアクセスを適切にサポートします。
どちらにも広範なドキュメントがあります。
他にもいくつかありますが、少し古く見えるものもあります。
Milliwaysのようなオペレーティングシステムについては言及しませんが、Raspbianまたは他のGNU / Linuxを意味していると思います。Windows IoTは別です。
すべてのpythonライブラリはCライブラリのラッパーですが、これは珍しいことではありません。C以外でライブラリをゼロから作成することはできます。3つあります:
これらは少なくとも数年前から存在し、積極的に維持されています(たとえば、libbcm2835の最後のバージョンは3〜4か月前でした)。
ただし、目的に応じてライブラリは必要ありません。そこに述べられているように、基本的なもののためのsysfsインターフェースに加えて、カーネルドライバーを使用するI2CおよびSPIのための移植可能なユーザーランドCレベルのインターフェースがあります。これはPWMをそのままにします-3つのライブラリの1つを使用する必要があるハードウェアチャネルにアクセスして使用するには、または、ジョーンが他の質問に関するコメントで言及しているように、非常に速いパルスをカウントしようとしている場合(その場合はいくつかの方法を試してみます)。
私はすべての組み合わせを試したわけではありませんが、pi固有のライブラリが正しくコーディングされていると仮定すると、それらを使用する限り、それらをポータブルインターフェイスと混合して一致させることができるはずです(たとえば、通常のI2C APIと結線PWM for PWMを使用します)。別のピン。これは奇妙なアプローチのように思えるかもしれませんが、モジュール式のコードで作業していて、個々のパーツをできるだけポータブルにしたい場合は理にかなっています。たとえば、I2Cセンサーのインターフェイスを作成する場合は、カーネルドライバーAPIをベースにしてください。次に、それをPWMを使用するプログラムで使用する場合は、PWM用の3つのライブラリのいずれかを使用します。pigpio / wiringPi / libbcm2835で記述されたコードはRaspberry Piでのみ機能します。カーネルドライバーAPIを使用して記述されたコードは、どのLinuxシステムでも動作します。