問題タブ [wiringpi]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - wire.requestFrom(...)に相当するwiringPiは何ですか
arduino I2C ライブラリをラズベリー pi で実行するように変換していますwire.requestFrom(address, size);
。自分で実装できるかもしれませんが、それが何をするのかを知る必要があります。ラズベリーパイでこれを達成する最も簡単な方法は何ですか?
私が翻訳しているライブラリはここにあります。
ご協力いただきありがとうございます!
c++ - Crosstool-ng と動的ライブラリ
crosstool-ng で作成された ARMv6 C++ コンパイラでカスタム ダイナミック ライブラリ (私の場合はwiringPi) を使用するにはどうすればよいですか? 私は、wiringPi をビルドし、リンカー オプションに -lwiringPi を追加しました。これは、g++ を使用すると正常に動作しますが、新しい ARMv6 C++ コンパイラを使用する場合は動作しません。
エラーは次のとおりです。ld: cannot find -lwiringPi
crosstool コンパイラが独自の構造を持っているように見えることを考えると、ARMv6 C++ コンパイラ ファイル内のどこかにライブラリをビルドする必要があるのでしょうか?
raspberry-pi - Arduino UnoとRaspberry PiのwiringPiによるSPI通信
私は、Raspberry Pi 2 B+ (マスター) と Arduino Uno Rev3 (スレーブ) の間の SPI 通信を成功させずに実装しようとしましたが、成功しませんでした。
チュートリアルを使用しました: http://mitchtech.net/raspberry-pi-arduino-spi/
ただし、そこで提供されるコードは正しく機能しません。私はすでに解決策を求めてインターネット全体を検索しましたが、見つけることができませんでした。サイトの arduino には同じコードを使用していますが、raspberry pi には次のコードを使用しています。
このコードはゴミを返すだけです。どうすればいいのかわかりません。
java - LCDモジュールを搭載したRaspbian Linux Raspberry Pi 2 model Bでサービスが起動しない
Raspbian Linux がインストールされた Raspberry Pi 2 モデル B があります。LCD モジュール SC1602a にテキストを出力する Linux サービスを作成して開始する必要があります。次のようになります。
[ ]
Java 言語 1.8_x86 、Apache Commons Daemon、および jsvc を使用してデーモン サービスを作成します。また、pi4j プロジェクト(これは WiringPi のラッパーです) を使用して、Raspberry Pi のピンを管理します。Java クラス:
Maven を使用してアーティファクトをパッケージ化します。WinScp を使用してアーティファクトを Raspberry Pi に移動します。コマンドラインからこのアプリケーションを起動すると、java -jar application.jar
うまく動作します。アプリケーションは、LCD モジュールの「hello」文字列に出力します。次に、Linux サービスのようなアプリケーションを起動しようとしました。Raspberry Pi に jsvc をインストールし、スクリプトlcd
を作成してフォルダー /etc/init.d/ に移動しました。chmod +x lcd
また、フォルダー /etc/init.d から書き込みました。これは私のスクリプトです:
コマンドを書きservice lcd start
ます。この方法はうまくいきません。この場合、アプリケーションは LCD モジュールに情報を出力しません。ログファイルを開くと、次の情報が見つかりました。
液晶出力:
2015-08-20 12:59:09.934 [情報] - メソッドの初期化...
液晶エラー:
配線PiSetup: /dev/mem を開けません: 操作は許可されていません 戻り値 1 でサービスを終了します
ご覧のとおり、pi4j ドライバーをロードしようとするとアプリケーションが失敗します。dev/mem ファイルのアクセス ルールを拡張しようとしましたが、それを実行しましたがrwxrwxrwx
、サービスはまだ機能していません。
init()
また、メソッドからLCDの初期化をオフにしました。サービスはうまく起動するので、サービスはLCDなしでうまく機能します。
誰かが解決策を知っていますか?どうもありがとう
linux - GPIOへのwiringPi非ルートアクセス
このことから、root 以外のユーザーが GPIO にアクセスすることは可能wiringPiSetupSys()
だと思いましたが、それを試みることに失敗しました。
実際、実行可能ファイルに setuid を実行すると動作します。それで、wiringPiSetupSys()
十分じゃないですか?
linux - system() によって呼び出された WiringPi gpio は、別のプロセスを使用する必要がありますか?
thisによると、プログラム内からsystem() ( QProcess ) 関数を使用して gpio プログラムを呼び出しています。
できます。しかし、アプリを 2 回実行する必要があることに気付きました。実際には、2 回目でしか機能しません。ここで指摘されているように、gpio の呼び出しは別のプロセスで行う必要があるようです。
QProcess::setupChildProcess()でこの問題にアプローチする必要がありますか?
setupChildProcess を上書きする QProcess を拡張し、アプリのコンストラクターで SandboxProcess をインスタンス化しました。残念ながら、これはうまくいきませんでした。
c++ - ループを一時停止せずに文字入力を使用してループを停止する方法
良い一日、
センサーから方向データを取得し、それを PID 制御アルゴリズムで使用して、対応する PWM 信号を作成するプログラムを作成しようとしています。Enterキーを押してプログラムを停止できるようにしたいと思います。opencv の waitKey(); を使ってみました。ただし、キーボード入力を受け入れません。cin.get(); も試しました。しかし、問題を引き起こすループを一時停止します。クアッドコプターの向きが変わると、pwm が更新されません。他の方法を調べてみましたが、うまくいきませんでした。上記の 2 つの方法を使用したコードのサンプルを次に示します。
cin.get() の使用:
waitKey(); の使用