タグ付けされた質問 「communication」

デバイス間の情報交換。通信は有線でも無線でもかまいません。

4
この通信はI²Cですか?
2つのデバイス間の通信をデコードする必要がありますが、これらのデバイスに関する情報がありません。私が知っているのは、4本のワイヤー(GND、VCCおよび2本の通信ワイヤー)が必要であることだけです。I²C通信だと思います。 オシロスコープのデコードツールでデコードしようとしていますが、よくわかりません。波形を目視確認したところ、I²C通信の要素が適切に特定できません。 波形を見て、私は以下の仮定をしました、そしておそらく誰かが助けることができます。これらは私の仮定でした: すべては、クロックが青信号であり、データが赤信号であると信じることにつながります。 アイドル状態がハイレベルではないため、クロックが反転しているようです。 データ信号も反転しているかどうかはわかりませんが、反転しているようです。 私の仮定は正しいですか? 前の図では、丸で示された数字5の数字で、信号の一部があります。スタート、ACK、およびストップビットを識別できません。誰かが図を見ただけでこれらの要素を識別できますか? [編集]一部の人々は、通信しているデバイスについて私に尋ねました。コミュニケーションは車の鍵と私が言うことのできない道具との間のものですが、私はそれに対してリバースエンジニアリングをしようとしています。

4
積分がゼロである理由
私は疑問に思うなぜ仮定の下で、その、その後?ω » 1Tω≫1T\omega \gg \frac{1}{T}∫T0罪(ω T )DT ≈ 0∫0Tsin⁡(ωt)dt≈0\int_{0}^{T} \sin(\omega t)dt \approx 0 積分はからまでのようになるはずなので、値を挿入すると、次のようになります。 0Tcos(ω T )wcos⁡(ωt)w\frac{\cos(\omega t)}{w}000TTT − cos(ω T)+ 1ω−cos⁡(ωT)+1ω\frac{-\cos(\omega T)+1}{\omega}

5
可視光通信受信機
私は学生です。可視光通信プロジェクトを設計する必要があります。要件は、レシーバーとトランスミッター間の距離20 cm、データレート20 kbps / sであり、すでに明るい環境で動作する必要があります。回路図を作成し、ブレッドボードに設定しました。 それは機能し、おそらく私の要件を満たすことができましたが、かろうじて実現しました。私は20kHzの方形波でLEDを駆動しており、写真で結果を見ることができます。上のオシログラムは、1目盛りあたり1V、1目盛りあたり50us(20 kHz)で、LEDを受信機に向けたときに取得されます。低い方は1目盛りあたり0.3V、1ビジョンあたり20ミリ秒(50 Hz)であり、LEDがオフになっているときに取得されるため、室内の雷の干渉を確認できます。 だから私の質問は: どうすれば50Hz干渉をより適切にフィルタリングできますか?LEDを使用して送信する場合はあまり表示されませんが、LEDがないとノイズが多くなります。 フィルターに大きなキャップと小さな抵抗を選択する必要がありますか?そして、何が良いフィルタリング周波数であるべきですか?とりあえず、使用可能なコンポーネント値をいじって、50 Hzをはるかに超える周波数を選択しました。 デザインのアドバイスがあれば、私はとても感謝します。私はエレクトロニクスの初心者なので、おそらくいくつかの欠陥があります。

4
マイクロコントローラーと個別に給電されるPCB間の通信
あるボードには1つの電源を備えたマイクロコントローラーがあり、別のボードには別の電源を備えたフリップフロップがあります。マイクロコントローラのピンをフリップフロップのリセットピンに接続したいのですが。ワイヤーを横切るだけでいいですか、それ以上必要ですか?それを行うつもりでしたが、完全な回路ではなく、2つのボードのグラウンドレベルがまったく同じでない可能性があるため、うまくいくかどうかはわかりません。DSPを備えたボードは事前に作成されており、電源は主電源から供給されるため、2つのボードには別々の電源が必要です。ありがとう

4
ArduinoのデジタルピンとICの間の時間はどれくらいですか?
現在のプロジェクトでは、74HC595シフトレジスタを使用してLEDディスプレイを制御していますが、ディスプレイはArduinoボードから最大5メートルほど離れている場合があります。計画は、Arduinoのボックスとディスプレイのエンクロージャーの間にいくつかのDB9 / RS232ケーブルを使用することです。デジタル信号が劣化せずにデジタル出力ピンからシフトレジスタに移動するには長さが長すぎますか?

3
やや複雑なセンサーネットワーク
私は最近プロジェクトに取り組んでおり、センサーネットワークを複雑にするのに十分に関与した最初のプロジェクトでした。結局のところ、コミュニケーションが全体的なパフォーマンスのボトルネックになっていると思います。経験豊富な人々がこの問題をどのように解決していたのだろうと思います。長い読みですが、なかなか面白いと思いますので、こだわってください。問題は、障害物コースをナビゲートし、ピンポンボールを茶色のボックスターゲットにドロップできる自律型飛行船を設計することでした。ここに行く: センサー 4D Systems uCAM-TTLカメラモジュール-UARTインターフェイス HMC6352デジタルコンパス-I2Cインターフェイス Maxbotix Sonar ez4-1ピンアナログインターフェイス アクチュエーター 2x L293Dモータードライバー(シンプルなホビーモーターに接続)-これらは、6つのモーターを双方向で駆動するために使用されました。速度を変えるためにPWM入力が必要でした。現在、3つのモーターは常に同じこと(上下の動きを制御するモーター)を使用していたため、3つのモーターすべてを制御するためにコントローラーから2つのPWM出力のみが必要でした。横方向の動きを制御する他の3つのモーターはすべて個別の制御(全方向移動)を必要としていたため、コントローラーからはさらに6つのPWM出力が必要でした。 サーボモーター-PWMインターフェース コントローラー 後で明らかになる理由により、2倍のATmega328Pを使用することになりました。プログラミングにはArduino Unoを使用しましたが(ISPにアクセスできませんでした)、カスタムPCBを製造したので、飛行船に不要な重量が加わるため、Arduinoボードを使用する必要がありませんでした。私たちがATmega328Pを選んだ理由については、私はarduino環境に非常に精通しており、それによってコード開発がはるかに迅速かつ簡単になったと思います。 通信と処理 2x Xbee Basic 2x ATmega328P C ++とopenCVを実行しているデスクトップコンピューター カメラモジュールからわかるように、私たちのプロジェクトのほとんどはコンピュータービジョンに依存していました。飛行船はそれほどの重量しか運ぶことができず、マイクロコントローラーにコンピュータービジョンを実装するのは快適でした。そのため、XBeeを使用して画像データをデスクトップコンピューターに中継しました。サーバー側では、画像データを受け取り、openCVを使用して画像と図を処理しました。今度はサーバー側も高さ情報(ソナーから)とコンパス情報を知る必要がありました。 最初のしわは、いくつかの理由でマイクロコントローラーでカメラを制御できなかったことでした。主な問題は、uPの内部メモリがフレーム全体の格納を処理できないことでした。巧妙なコーディングによってこれを回避する方法があったかもしれませんが、この質問の目的のために、それが不可能であったとしましょう。この問題を解決するために、サーバー側でXBeeトランシーバーを介してカメラコマンドを送信し、XBeeレシーバー(飛行船に搭載)の出力をカメラの入力に配線しました。 次のしわは、I2CインターフェースがPWMピンの1つを使用しているため(それらをくそ...)、すべてのモーターを制御するのに十分なPWMが1つのATmega328Pにないということでした。そのため、2番目のものを使用することにしました。高さ制御は横方向の移動制御とは完全に独立しているため、コードは実際には並列処理に完全に対応しています(したがって、2マイクロはおそらくPWMコントローラーに接続されたものよりも優れていました)。したがって、U1は2つのPWM出力(アップ/ダウン)とソナーの読み取りを担当していました。U2は、コンパスの読み取り、6つのPWM出力(横方向モーター)の制御、およびソナーの読み取りを担当しました。U2は、XBeeを介してサーバーからコマンドを受信することも担当していました。 それが最初のコミュニケーションの問題につながりました。XBee DOUTラインは、マイクロコントローラーとカメラの両方に接続されていました。もちろん、プロトコルを設計して、マイクロコマンドがカメラコマンドを無視し、カメラコマンドがマイクロコマンドを無視するようにしたので、問題はありませんでした。ただし、カメラがマイクロコマンドを無視すると、出力ラインにNAKデータが返されます。このコマンドはマイクロを対象としているため、XBeeへのカメラ出力をオフにする必要があります。これを解決するために、カメラとXBee(最初のFET)の間、およびU2とXBee(2番目のFET)の間にあるマイクロ制御2 FETを作成しました。したがって、カメラがサーバーに情報を返そうとしたとき、最初のFETは「オン」で、2番目のFETは「オフ」でした。 したがって、これがどのように機能するかを理解するために、いくつかの例を示します。 サーバーは画像を要求します-PIC_REQUESTはXBeeを通過し、U2とカメラに到着します。U2はそれを無視し、カメラは画像データを送り返します。 サーバーは画像の処理を終了し、モーターデータを送信して飛行船に右折するように指示しています-MOTOR_ANGLE(70)はXBeeを通り抜け、U2とカメラに到着します。U2はマイクロコマンドとして認識し、カメラのFETをオフにします(ただし、カメラはすでにNAKで応答していますか?次に、U2はモーターのPWM出力を変更することでコマンドに応答します。次に、カメラのFETをオンに戻します(画像データが最も重要だったため、これがデフォルト設定でした)。 サーバーは、デフォルトのホバー高さが50インチではなく90インチである必要がある障害物コースのポイントに到達したことを認識しています。SET_HEIGHTはXBeeを通過し、例2と同じことが起こります。U2はSET_HEIGHTコマンドを認識し、U1で割り込みをトリガーします。U1は高さ制御ループから出て、U2からのシリアルデータの受信を待ちます。そうです、より多くのシリアルデータ。この時点でU2のFETはオン(そしてカメラのFETはオフ)なので、サーバーはU2がU1にも送信している高さを受け取ります。これは確認のためでした。U1は、height2HoverAtの内部変数をリセットします。U2はFETをオフにし、カメラFETをオンに戻します。 私は間違いなくかなりの量の情報を省きましたが、いくつかの複雑さを理解するにはそれで十分だと思います。結局のところ、私たちの問題は単にすべてを同期させることでした。バッファにデータが残っていることがありますが、3バイトしかありません(すべてのコマンドは6バイトシーケンスでした)。時々、カメラとの接続を失い、それを再同期する必要があります。 だから私の質問は:これらのすべてのコンポーネント間の通信をより信頼性の高い/堅牢な/単純な/より良いものにするために、どのようなテクニックを提案するでしょうか? たとえば、オンボードXBeeアウトとカメラの間に遅延回路を追加して、マイクロがNAKのマイクロコマンドに応答する前にカメラのトークラインをオフにする機会があったことを知っています。そのような他のアイデアはありますか? おかげで、これには多くの編集が必要になると確信していますので、しばらくお待ちください。 Edit1:マイクロの1つを介してカメラのUARTデータを接続することは、私たちには不可能であるように思われました。カメラデータには、生のビットマップ、またはJPEGの2つのオプションがありました。生のビットマップの場合、カメラはデータをできるだけ早く送信します。ATmega328Pはシリアルバッファ用に128バイトしかありません(技術的にはこれは設定可能ですが、どうすればいいのかわかりません)、私たちはそれをバッファから取り出してXBeeに十分速く到達できるとは思いませんでした。これにより、JPEGメソッドは各パッケージを送信し、コントローラーがACKを受信するまで待機します(小さなハンドシェークプロトコル)。これが最も速いのは115200ボーでした。何らかの理由で、XBeeを介して大量のデータを確実に送信できる最速は57600ボーでした(これは、自動再送機能を許可するためにノードとネットワークのペアリングを行った後でも同じです)。マイクロ用にネットワークに追加のストップ(カメラからXBeeへのカメラではなく、カメラからマイクロへのXBee)を追加すると、画像の転送に時間がかかりすぎます。モーター制御アルゴリズムを機能させるには、画像に特定のリフレッシュレートが必要でした。

5
ストップバイトとしての\ n \ rフェイルセーフはどのくらいですか?
私のUART通信では、送信されたメッセージの開始バイトと停止バイトを知る必要があります。スタートバイトは簡単ですが、ストップバイトはそれほどではありません。メッセージの最後に2つのストップバイト、つまり\ nと\ r(10進数で10と13)を実装しました。UARTはバイト0〜255の値でのみ機能するので、これはフェイルセーフですか?確率は低いですが、メッセージにストップバイトではない場合、メッセージに「10と13」という値が次々に含まれる可能性があると想像できます。 これを実装するより良い方法はありますか?

2
シリアル経由のMCUの制御コマンドの実装
PCからシリアル経由でコマンドを受け入れるようにするプロジェクトにコマンドインターフェイスを統合することを検討しています。 アイデアは、デバイスはそれを実行しますが、コマンドが送信され、それを実行するというものです。これは、シリアルデータを待機している単なるアイドルデバイスであることがわかったほとんどの例とは異なります。 たとえば、LEDを制御してアニメーションを再生するデバイスなどです。3つのプリセットアニメーションがあるとします。オンにすると、常に1番を再生します。PC側では、「プリセット2を再生」または「色を緑に変更」コマンドを送信するか、デバイスにライブリアルタイムアニメーションを送信します。 LEDで遊ぶ。 だから私の質問は、私はこの「デザインパターン」について多くの情報を見つけることができないということですか?どこを見ればよいのかわかりません。一番近いのは、既製のarduinoシリアル解析ライブラリです。ただし、C /非Arduino /理論的アプローチの詳細を探しています。 私はシリアルプロトコルを調べていますが、これはSPIやI2Cなどのことであり、実際にソフトウェアで制御/コマンドインターフェイスを実装する方法ではありません。 HDLCについても知りましたが、これは標準/プロトコルのようです。同様のスレッドは/programming/1445387/how-do-you-design-a-serial-command-protocol-for-an-embedded-system これはいくつかの非常に素晴らしい情報を持っていますが 、やるべきことですプロトコル/通信自体で。 これをコード化/実装してコマンドまたはコントロール機能を作成する方法を見つけようとしています。 無限ループを使用して、着信コマンドのシリアルを監視およびキャッチし、IFステートメントのリストを使用して、実行するコマンドを選択しますが、コマンドおよびシステムが正常である必要がない場合、またはその場合コマンドを逃した? 割り込み駆動、ステートマシン? 例を調べて見つけるために使用できる正式な名前はありますか? 編集: 同じ質問をしている人のために、私は調査中にこの本当に良い例を見つけました、 http://www.adnbr.co.uk/articles/parsing-simple-usart-commands

2
データはどのようにFM放送信号と共に送信されますか?
3.5ジャックのヘッドフォンを使用してモバイルでFMラジオを聴くと、現在の番組の名前やその他の「xyz」情報が表示されることがありますが、それはどのようにして可能ですか? アナログ信号にはどのようにその情報が含まれており、携帯電話はすべての混合信号からそのようなデータをどのように識別し、異なって表示しますか?

5
高温でのマイクロコントローラー間の通信の選択
私は、特定の機能用のマイクロコントローラーを備えた複数のPCBボード間の可能な限り最良の通信を見つけるプロジェクトに割り当てられました。すべてのマイクロコントローラーがCPUを含むメインボードと通信する必要があります。 メインボードからコントローラーに情報を送信し、コントローラーから応答を受信する必要があります。各コントローラボードは、特定の目的のために設計されています。マイクロコントローラー間で通信する必要はありませんが、1つのマイクロコントローラーが通信に失敗しても、他のマイクロコントローラーには影響しません。現在、6つのマイクロコントローラーが通信する必要がありますが、将来的にはそれ以上の通信が必要になります。メインボードと他のコントローラー間の有線接続を増やしたくありません(少なくする必要があります)。 通信は、温度(250°F(120°C))および圧力(高)の影響を受けません。メインボードとファイナルコントローラーの間の距離は1メートルを超えることがあります。どのタイプのコントローラーが最適ですか?いくつかの計算とセンサーの読み取りを実行する必要があります。各ボードには2つ以上のセンサーがあります。センサーの読み取り値を計算するか、値を直接送信する必要があります。 このタイプのプロジェクトは初めてです。私は最良のコミュニケーションを探しましたが、どちらが最良か分かりません。CAN通信の使用を勧める人もいます。CAN通信を選択した場合、どのタイプのマイクロコントローラーが最適ですか?以下に示すような簡単な図を添付しました。

3
PIC18のI2C以降
プロジェクトでは、3つのPIC(2つのスレーブPIC18F4620、1つのマスターPIC18F46K22)でI2Cバスを介して通信したいと考えています。後で、さらに多くのスレーブが追加される可能性があります(EEPROM、SRAMなど)。C18コンパイラを使用して、これらのPICのコードをCで記述しています。私はインターネットをよく見て回りましたが、(M)SSP周辺機器を処理するためのライブラリーが見つかりませんでした。I2Cモードの(M)SSPペリフェラルの両方のPICのデータシートを読みましたが、バスのインターフェース方法を見つけることができませんでした。 だから私はマスターとスレーブのライブラリが必要です。 何がお勧めですか?どこかにそのような図書館はありますか?コンパイラーに組み込まれていますか?はい、組み込まれていますか?ネット上のどこかに良いチュートリアルがありますか?

5
複数のarduino通信(1マスター、nスレーブ)
以下で構成されるマスター/スレーブネットワークを開発したいと思います。 センサーを読み取り、センサー信号に基づいて速度ランププロファイルを生成し、それらのランプをスレーブに送信する1つのArduinoマスター マスターから送信されたランプに続く12Vサーボモーターの速度を制御する3つ以上のArduinoスレーブ これを達成するための良い通信プロトコルは何ですか?シリアル(SPI)?I2C?他に何か?シリアルの場合、新しいArduino Leonardoは良い選択ですか?プロトコルを選択する際に考慮すべき問題は何ですか? 私は次のようなものを想像しています: 主人: void loop() { update_ramps() for(int i=0; i< num_slaves; i++) { send_to_all(i, ramps[i]); } } スレーブ1: const int id = 1; int recived_id, recived_value; void loop() { read_data(); if(recived_id == id) { do_motor_step(recived_value); } } また、マスターからのRX / TXがすべてのスレーブに送信されるシリアル通信。 これは合理的な解決策のように見えますか?

3
LEDを使用してデータを送信する
LEDが短距離(2メートルまたは3メートル)でデータを送信する可能性、および慎重に選択された消費者グレードのコンポーネントから期待できる最大データ転送速度について知りたいです。最小限のハードウェア+ "スマート"(マイクロコントローラー)ソフトウェアソリューションに興味があります。 したがって、これは2つの部分からなる設計上の問題であると考えています。 「物理媒体」(ハードウェア)レイヤー:高周波信号用のLEDとレシーバー(フォトトランジスター)の良い選択は何でしょうか?どのような駆動回路を使用すればよいですか? 「信号エンコーディング」(ソフトウェア)レイヤー:マンチェスターコードに沿ったプロトコルは効率的ですか?または、このメディアでは他のエンコーディングプロトコルの方が効率的ですか? 私が除外していること:私は安価で堅牢なIR5モジュールについて知っていますが、それらは高速データ伝送用に設計されていません。また、コヒーレント光(レーザーダイオード)を使用すると、帯域幅が向上することも理解しています。また、光ファイバーはありません。データは空中で送信されます。 更新: このセットアップの動機は、電力線通信(PLC)またはWifiの代替となるでしょう。そのため、25〜100Mb / sの範囲の帯域幅でうまくいきます。これは「ファイバーなし」の制約も説明しますが、最小限のリフレクターで十分です。 私が検討している「部屋を横切る」距離を考えると、Ronjaのような強力で厳密に焦点を当てたソリューションはやりすぎかもしれません(実際には「最小距離」がはるかに大きい)。 ハードウェアの部分を考慮してください。適切な「非phospor」LEDで私が達成できる高帯域幅で肯定的です。この点で一部の色は他の色よりも優れていますか?データシートにこの特性があることを確認するには何を探す必要がありますか? エンコーディングを考えると、この使用法ではマンチェスターよりも優れているものは何ですか?RLLバリアントなど、帯域幅効率の良いものはありますか?私は電子工学者というよりプログラマーであるので、ソフトウェアのエンコード/デコードに慣れています。しかし、一部のICはデコードに役立ちますか(私が理解しているように、これは難しい部分です)。おそらくエンコードプロトコルの周波数特性を利用して、デコード前に信号の事前フィルタリングを検討する必要がありますか?

5
最も一般的な組み込みシリアルバスは何ですか?[閉まっている]
現在のところ、この質問は、Q&A形式には適していません。私たちは回答が事実、参考文献、または専門知識によってサポートされることを期待しますが、この質問はおそらく議論、議論、投票、または拡張された議論を誘います。この質問を改善でき、再開できると思われる場合は、ヘルプセンターにアクセスしてください。 7年前休業。 シリアルバスを介してサードパーティのペリフェラルと相互運用できるようにする組み込みデバイスを設計しています。SPI、I²C、またはその他のバスを選択する必要がありますか? 周辺機器はかなり低い帯域幅(バスを介して通信し、定期的にポーリングされる一部のセンサー)であり、ほとんどの場合コントローラーから1メートル以内です。コントローラーの唯一のタスクは、センサーデータを収集し、何らかの方法でパッケージ化してから、別のバスを介してワイヤレスモジュールに送信することです(ただし、センサーバスもこれに再利用できます)。

9
回路をコンピューターと通信させる方法は何ですか?
私はエレクトロニクスハッキングの初心者です。どうすればPCと通信できるのか知りたいです。たとえば、1つのLEDと1つのスイッチを備えた単純な回路を考えてみます。ただし、回路のスイッチはLEDの制御には使用されません。それを押すと、LEDの現在の状態が通知されます。私のコンピューターでは、UI、ボタン、グラフィックオブジェクトを実行するプログラムを実行しています。黒く塗りつぶされた円。 画面のボタンをクリックして、コンピュータからLEDをオンまたはオフにできるはずです。 ボード上のスイッチを押すと、LEDの状態がプログラムに通知されます。LEDがオンの場合、黒い円が緑色になり、それ以外の場合は黒色になります。 これは、問題を説明するために説明した架空の状況です。私はこのことを実装するための解決策を探していませんが、私の回路とコンピューターの間のこの通信を簡単で安価な方法でどのように達成できるかを知りたいです ワイヤー? 無線? そして、もし私がどこを見るべきか、そして私のエレクトロニクスプロジェクトを始めるために何を学ばなければならないかを提案することができれば、それは大きな助けとなるでしょう。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.