問題タブ [arduino]
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.
python - pySerial で Python から入出力エラーを取得する
pySerialを介して Arduino ボードにデータ パケットを書き込む Python スクリプトがあります。コードをボードに書き込んでいるときに、pySerial が errno 5 の入出力エラーを発生させることがあります。
一部の調査によると、これは Arduino ボードへの接続を表すファイルへの書き込み中にエラーが発生したことを示しています。
送信するコードは、1 バイト パケットのみを送信します。
このコードによって出力されるエラーは次のとおりです。
OS エラー 入出力エラー Errno 5
送信中にコードに何か問題がありますか? シリアル接続が何かを送信する準備ができているかどうか、または送信後に遅延があるかどうかを確認する必要がありますか? または、ハードウェアまたはハードウェアとの接続に問題がある可能性がありますか?
編集: pyserial から Linux の実装を調べましたが、実装はエラーをコードに渡すだけです。したがって、そこからの新しい真の洞察はありません。プログラムで何が起こっているかをテストする良い方法はありますか?
arduino - ArduinoのanalogRead()は、シリアル経由で印刷するとジャンクを返します
Arduinoで時計を作っているのですが、時刻を設定するボタンを作りたいです。そこで、テストのために、アナログ入力ピン0にワイヤーを接続し、ピンを読み取ってシリアル経由で印刷するための2行のコードを記述しましたが、取得するのはジャンクだけです。
?j?d?±µ?Ê?? jDd?±µ ???ºjRd?±µ ??? ºj?d?±µ?Ê?? j?d?±µ?É?ªjRd?±µ ?? ?ÊjRd?±µ ???Âj?d?±µ ???? j?d?±µ?É?? jRd?±µ ???? j?d?±µ ???ºj?d? ±µ?É?? jRd?±µ ???? j?d?±µ?Ê?ÊjDd?±µ ???Âj?d?±µ ???? j?d?±µ?É?? jRd?±µ ???? j?d?±µ?É?ÂjRd?±µ ???Êj?d?±µ ???ªj?d?±µ?Ê?Êj$ d?±µ ?? ?ÂjRd?±µ ???? j?d?±µ ???? jdd?±µ ???? jRd?±µ ???Âj?d?±µ?É?ÊjRd?±µ ??? ?j?d?±µ?Ò?Êj?d?±µ?É?ÂjRd?±µ ???? j?d?±µ ???? j?d?±µ?É?? jRd?± µ ???Âj?d?±µ ???Êj?d?±µ???ªj?d?±µ ???Êj?d?±µ ???ÂjRd?±µ ???? j?d?±µ ???? j?d?±µ?É?? jRd? ±µ ???Âj?d?±µ?Ò?Êj?d?±µ?É?ªj?d?±µ?É??jTd?±µ ???Âj?d?±µ ???? j?d?±µ?É?? jRd?±µ ???? j?d?±µ?É?ÂjRd?±µ? ?? ??ªj?d?±µ?È?ÂjTd?±µ?É?ÊjRd?±µ ???ªj?d?±µ ???Êj?d?±µ ???ºj?d?±µ? É??jRd?±µ ???Êj?d?±µ ??? ªj?d?±µ?É?ÂjPd?±µ ???Êj?d?±µ ??? ªj?d?±µ ?Â?Êj?d?±µ?É?ºjRd?±µ ???? j?d?±µ?É?? jRd?± µ ???ªj?d?±µ?Ê?Âj?d?±µ ???ÊjRd?±µ ??? ªj?d?±µ?Ò?Êj?d?±µ ???ºjRd?± µ ???? j?d?±µ ???Êj?d?±µ?Ê?ªjdd?±µ???ÂjRd?±µ ???Âj?d?±µ?É?ªjPd?±µ ???Êj?d?±µ ???? j?d?±µ?É?? jRd?±µ? ??Êj?d?±µ?É?ªjdd?±µ ???ÂjRd?±µ ??? Âj?d?±µ?É?ªjDd?±µ ???Êj?d?±µ?Ê?? j?d?±µ?É?? jRd?±µ ???ÊjRd?±µ ??? ªj?d?±µ?Ê?ÂjPd?±µ ???Âj?d?±µ ??? ªj?d?±µ?É?Êjdd?±µ?É?? jRd?±µ ???? j?d?±µ?É?Êj$ d?±µ ???ªjRd?±µ ???Âj?d?±µ?Â?ÂjTd?±µ ???ªj?d?±µ ??? Êj?d?±µ ???? jRd?±µ ???? j?d?±µ?É?ÊjTd?±µ ???ªjRd?±µ ???Âj?d?±µ ??? Âj?d?±µ?É?ªjRd?±µ ???ÊjRd?±µ?Ò?? jTd?±µ ???? j?d?±µ???Êj
なんで?
編集:
私はデジタルピン0を出力に設定しましたが、それが問題である可能性があると思ったので、ArduinoのWebサイトにアクセスして、アナログ入力ピンのページを見つけました。
そこで、アナログ入力ピン0と言われているピン14から読み取ろうとしましたが、同じ出力が得られました。
ちなみに、私はアナログのみのピンから読み取ろうとしています。デジタルのピンではありません。
arduino - ネットワークアダプタの作成-それはどれくらい難しいですか?
Arduinoの上に小さな(商用)デバイスを構築することに興味があります。ネットワークとのインターフェースができるようにしたいと思います。標準のイーサネット、Cat5、RJ-45などのネットワーク。
イーサネットシールドがあることは知っていますが、Arduino自体よりもさらにコストがかかり、かなり大きいです。当然のことながら、私は自分のデバイスをできるだけ小さく、できるだけ安くしたいと思っています。
ですから、自分でイーサネットモジュールを作り直すことを考えています。問題は、イーサネットの経験がなく、どこから始めればよいかわからないということです。したがって、私のアイデアが実現可能かどうかさえ言えません。
最終的には、デバイスに3つのポート(1つは着信信号用、2つは発信用)を持たせたいので、デバイスは基本的に、それ自体が接続されている小さなスイッチです。スイッチング機能はそれほど高速である必要はありません。データの量は少なくなります。10Mbitで十分ですが、さらに遅くなる可能性があります。
それが不可能な場合は、デバイス自体を制御するための単一のポートも使用できます。
私が検討しているもう1つの可能性は、電力線通信です。電力線を介して情報を送信します。それは私が経験したことのないもう一つの分野です。どのハードウェアを見る必要があり、必要なソフトウェアに関する情報はどこにありますか?
それで、これらのアイデアが実現可能かどうか誰かに教えてもらえますか?もしそうなら、どこから始めればよいでしょうか?
c++ - avr-gcc C++ コンストラクターに渡された文字列をコピーする必要をなくすにはどうすればよいですか?
ArduinoUnitユニット テスト ライブラリでは、TestSuite に名前を付けるメカニズムを提供しました。ライブラリのユーザーは、次のように記述できます。
これは想定される使用方法です。TestSuite の名前は文字列リテラルです。ただし、見つけにくいバグを防ぐために、次のようなさまざまな用途に対応する必要があると感じています。
そのため、次のように TestSuite を実装しました。
コンストラクターでのメモリ割り当てエラーの処理に失敗するという問題はさておき、次のようにポインターをメンバー変数に単純に割り当てることをお勧めします。
動的メモリ割り当てを廃止できるように、インターフェイスを変更して「正しく」使用するようにする方法はありますか?
c++ - C / C ++メモリの問題?
Arduinoのプログラミング(C / C ++のある種の組み合わせ)で、何か奇妙なことに気づきました。
シリアルポートを介して通信するたびに、SRAMの使用状況を監視しています。通常、300〜400バイトの範囲です。ただし、新しいルーチン(以下を参照)を追加した後、常に300〜400バイトの空きメモリから正確に1023にジャンプすることに気付きました。私の勘は問題があるということです。
これは新しいルーチンです
そしてこれはMemoryCheckルーチンです
これに注意してください:最初に、それは機能しませんでした。endlコマンドを追加すると、魔法のように機能しましたが、メモリの問題に気づきました。
誰かが回避策のアイデアを持っていますか?
python - pyserial - シリアル デバイスから送信された最後の行を読み取る方法
ループを実行しているコンピューターに Arduino を接続し、100 ミリ秒ごとにシリアル ポート経由でコンピューターに値を送信しています。
シリアルポートから数秒ごとにのみ読み取る Python スクリプトを作成したいので、Arduino から送信された最後のものだけを表示したいと考えています。
Pyserialでこれをどのように行いますか?
これが私が試したコードで、動作しません。行を順番に読み取ります。
c++ - HTTPリクエストを解析するための標準または一般的なArduinoライブラリ?
GETおよびPOSTリクエストを理解するために、 Arduinoイーサネットシールドを備えたArduinoをサーバーとしてセットアップしようとしています。「Webサーバーは適切に構造化されている」ことがわかり、ニーズに合わせて変更できますが、C ++には非常に軽量で、Arduinosイーサネットシールドを備えたArduinosですでに一般的に使用されているものがありますか?
c++ - ビット設定とコードの読みやすさ
いくつかのステータスフラグを含むArduinoアプリケーション(実際にはライブラリ)があります。元々はそれらをintとして宣言していました(この場合はuint8_tなので8ビットの符号なし文字)。しかし、それらすべてを1つの整数に結合し、ビットマスク操作を使用してステータスを設定およびテストすることもできます。
前者の例:
後者の例
前者の方が読みやすくなりますが、後者の方が効率的です(空間と時間)。この状況では、スペースと時間の効率が常に優先される必要がありますか、それとも必要な場合にのみ発生する必要がある一種の最適化ですか?
(追加した)
完全を期すために、これらのbitWriteなどのマクロの配線定義を次に示します。