Arduino

Arduinoと互換性のあるオープンソースのハードウェアおよびソフトウェアの開発者向けのQ&A

2
アナログ電話をかける?
Arduinoボードを古いアナログ電話と対話させ、電話をかけるにはどうすればよいですか? 私はそれが特定のケーブルでボードを電話に接続することを含むと思います(それはどのように呼ばれますか?) さらに、電話の低レベルダイヤルプロトコルを使用する必要があると思います(実際に電話と対話し、コマンドを送信するため)。それについてどこで読むことができますか? デジタル/シリアルボードと類似のデバイスとの会話について心配する理由はありますか? ちなみに、アナログ電話には比較的高い電圧があり、ボードを簡単に損傷する可能性があることを読みました。Arduinoをアナログ電話に接続することに関連するこのような問題について、またそのような問題や懸念事項を知り、探求するための情報を入手したいと思います。 どうもありがとう!

11
GROVEシステムはどのタイプのコネクタを使用しますか?
GROVEはどのタイプのコネクタを使用していますか? GROVEと互換性のある古いセンサーの配線に興味があるので、最初にコネクタを特定して、ハウジングとピンを購入して圧着する必要があります。ある種のJSTコネクタのように見えますが、多くの異なるサイズがあり、それぞれに互換性のないピッチがあり、多くの小売業者はしばしばそれらを誤って宣伝しています。残念ながら、Seeedstudioのサイトでコネクタのドキュメントを見つけることができません。
12 sensors  pins  wires 

2
コンピューターなしのISPとしてのArduino
ispとして動作するように設定された1つのarduinoにデータとしてファームウェアをプリロード(コンピューターなどを使用)し、そのarduinoを使用してispインターフェースを別のインターフェースにプラグインし、ファームウェアをアップロードする方法を知っているか、知っていますか? 明確にするために-本格的なコンピューターに直接接続することなく、arduinoスケッチをアップロードできるようにする方法を探しています。 理想的な手順は次のとおりです。 新しいスケッチ/ファームウェアを書く ファームウェアのコンパイル コピーファームウェアをデータとしてArduino Aに書き込みます(Arduino AはISPとして動作するように設定されています) Arduino Aをコンピューターから切り離す 別の場所で、ISPヘッダーを使用してArduino AをArduino Bに接続します 何らかの方法(プッシュボタンなど)を使用すると、Arduino Aがトリガーされ、プリロードされたファームウェアがArduino Bにアップロードされます。 ファームウェアのアップロードはSPIインターフェースを介した単なるバイト交換であるため、理論的には機能すると想定していますが、現実はわかりません。 私が考えているシナリオは、arduinoを(永久に)自分のコンピューターから離れた場所にインストールする場合です(ラップトップを持っていないか、手に入れたくない)再プログラムするのは面倒ですそれ。 私が検討したもう1つの方法は、DILパッケージのATMEGAを使用することです再プログラムするたびにチップ。

2
間違えてATmega328-PUを手に入れました。どうすれば修正できますか?
過去のある時点で、Arduino IDEを使用して4つのATmega328-PUの新しいバッチでブートローダーを焼いていました(328以降はPがありません-それはATmega328Pと混同しないでください。P付きPU)、avrdudeからの次のメッセージに驚いた: avrdude: Device signature = 0x1e950F avrdude: Expected signature for ATMEGA328 is 1E 95 14 Double check chip, or use -F to override this check. これは、avrdudeがチップがそのラベルが言っているものではないと考えていたことを意味します。次に、Arduino IDEのチップタイプをATmega328P-PUに変更し、avrdudeが苦情なくブートローダーを焼きました。つまり、チップは1つのMCUとしてラベル付けされ、内部的にはわずかに異なる別のMCUとして応答しました。 私が知りたいのは: このイベントはどれほどまれですか?誰も同じような経験がありますか?(元の質問、トピック外) これを修正することは可能ですか?avrdudeがチップを正しく認識するように署名を修正するにはどうすればよいですか? これはEE.SEからのクロスポストです。私はそこにこの質問を投稿しましたが、あまり注目されていなかったので、コミュニティの誰かが同じような経験をしたかどうかを見たかったのです。
12 atmega328 

3
変なシリアルデータ
「Hello World」をシリアルに印刷する簡単なスケッチを持っていますが、代わりにたくさんの意味不明なものがあります。 void setup() { Serial.begin(9600); } void loop() { Serial.println("Hello World"); delay(1000); } コードが言うように「Hello World」を印刷しないのはなぜですか?
12 serial 

3
ArduinoでI2Cデバイスを使用するにはどうすればよいですか?
16ビットポートエクスパンダー(MCP23017)など、さまざまなプロジェクトで使用したいいくつかの便利なI2Cコンポーネントがあります。 これらをArduinoで動作させるには何をする必要がありますか?Arduinoで動作しますか、それとも特定のボードまたはシールドが必要ですか?
12 i2c 

1
AtmelStudioを使用したArduino Dueのインターネット接続?
どのハードウェアおよびソフトウェアソリューションが機能し、Arduinoをインターネットに接続するためのトレードオフは何ですか?イーサネットハードウェアはWiFiハードウェアよりもはるかに安い(29ユーロ対69ユーロ)を集めています。いずれの場合(有線または無線)、AtmelStudioで動作するソフトウェアスタックとドライバーは何ですか?

4
スケッチがなぜそれほど多くのスペースとメモリを占有するのですか?
このスケッチをYún向けにコンパイルすると: int led = 7; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); } 私は得る: Sketchは5,098バイト(17%)のプログラムストレージスペースを使用します。 最大は28,672バイトです。グローバル変数は、153バイト(5%)の動的メモリを使用し、ローカル変数用に2,407バイトを残します。最大は2,560バイトです。 BareMinimumスケッチをコンパイルしても: void setup() { // setup } void loop() { // loop } 私は得る: Sketchは4,548バイト(15%)のプログラムストレージスペースを使用します。 最大は28,672バイトです。グローバル変数は151バイト(5%)の動的メモリを使用し、ローカル変数用に2,409バイトを残します。最大は2,560バイトです。 最低限のスケッチが、割り当てられたプログラムストレージスペースの15%を占めるのはなぜですか?そして、なぜ非常にシンプルなスケッチがプログラムのストレージスペースの17%を占めるのですか?Arduinoのウェブサイトによると: プログラムに多くの文字列を含めると、使いやすくなります。たとえば、次のような宣言char message[] = "I support the Cape Wind project.";は、SRAMに33バイトを入れます(各文字は1バイトに「\ 0」ターミネータを加えます)。 ただし、これらのスケッチのいずれでも宣言された文字列はありません。 私が指定していない他のライブラリ/クラスをインポートまたは使用する可能性があるようです。システムのデフォルトライブラリをインポートするのでしょうか?それとも別のものですか?

6
Arduinoで1回実行するためのコード
質問: Arduinoの起動ごとに1回だけ実行する場合、どこにコードを配置しますか? 背景:私は、Arduinoを使用して、電源の再投入ごとに1回実行する必要があるタスクを実行する傾向があります。(たとえば、ロボットは、電源を入れるたびに1回だけ前進する必要があります。それ以上は、テーブルから落ちる可能性があります。) 標準のArduino IDEの「テンプレート」はと関数で構成されloop()ていsetup()ます。setupコードは、電源サイクルごとに一度実行され、そしてloopそれが終わるたびに再起動されます。 「1回のタスク」をコーディングする2つのアプローチがあります。 方法1:「1回ループ」 void setup() { //do setup stuff } void loop() { //do task while(1) ; //Repeat forever, preventing function from re-starting } 方法2:「セットアップのみ」 void setup() { //do setup stuff //do task } void loop() { //do nothing } より詳細な質問形式: これらの方法の1つは、ハードウェア/ソフトウェアの意味から「より良い」ものですか?(たとえば、setup機能に非常に長い時間しか実行できないような「特別な」何かがありますか?) また、ハードウェア/ソフトウェアの観点から同じ場合、「ベストプラクティス」またはコードを記述する標準的な方法はありますかArduinoコミュニティのこれらの状況のた​​めに?

3
ボードが寿命に近づいているかどうかはどうすればわかりますか?
私は3年前から使っているunoを持っています。ボードの故障がかなり高価で危険な可能性のあるかなり重要なプロジェクトで再び使用します。ですから、私は、取締役会が終末に近づいていないか、いつでもすぐに失敗することはないと確信しています。故障やパフォーマンスの低下を伴わずにボードが機能する時間を把握する信頼できる方法はありますか?

2
Arduinoに異なるファームウェアをインストールする
Arduinoのファームウェアをアップグレードして、より低い処理能力を提供するために低電圧/過電圧を変更するなど、より多くのことができるようにすることは可能ですか?これを行うには、おそらくチップ自体を再フラッシュする必要がありますが、それはどのように達成されますか?


3
ISPとしてArduino Unoを使用すると、「いいね!無効なデバイス署名」は、接続、構成、またはavrdudeのバージョンが正しくないことを意味しますか?
私はArduino UNOを使用して、Windows 7でArduino IDEディレクトリのavrdudeを使用して、コンパイル済みの16進イメージをATTINY45にプログラムしています。Unoには、examplesディレクトリから読み込まれたISPスケッチがあり、動作します-ハートビートLEDうまくパルスします。 ハードウェア側では、ATTINYが表面実装であり、すべてのピンが電圧計で確認されてはんだ付けされた状態でサーフボードにはんだ付けされていることを除いて、私はこの設定をしています。手で持ったヘッダーピンストリップを使用してピンをサーフボードに接触させ、UnoからATTINYに信号を取得します。 以下は、IDEのデバッグ出力を確認して得たコマンドラインです。 REM set the fuse for 8MHz, so the ISP programmer can work C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -v -v -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -e -Uefuse:w:0xff:m -Uhfuse:w:0xdf:m -Ulfuse:w:0xe2:m REM load the program C:\Progra~1\Arduino\hardware\tools\avr\bin\avrdude -CC:\Progra~1\Arduino\hardware/tools/avr/etc/avrdude.conf -v -pattiny45 -cstk500v1 -P\\.\COM7 -b19200 -Uflash:w:firefly.hex:i REM set fuse for 1MHz, as …

2
ソーラーパネルでArduinoに電力を供給する
明らかに、Arduinoはソーラーパネルで電力を供給できます。 最も最適な構成は何ですか? 充電と放電は同時にできますか? LiPOは、最適なバッテリーキャッシュテクノロジーですか、それとも、フィールド展開の場合、耐久性のあるものがありますか? これを行うための最も経済的で信頼できる方法は何ですか?
12 power  solar 

1
ISPコネクタを追加したFTDIブレークアウト
TL; DR-6つの黄色のISPピンを通常のISPとして使用できますか? 通常のUSB-TTL FTDIブレークアウトボードは次のようになります。 最近、私は以下に示すボードの変種に出くわしました。しかし、このボードの追加の黄色のヘッダーピンは何のためのものですか?それらはISPというラベルが付いています。 これが背面図です。 それで、それらは本当に標準のISP / ICSPとして使用できますか? ただし、問題の6つのピンにラベルを付ける次の図によると、信号線の有効な相関関係があるかどうかはわかりません。 つまり、CTSからMISO、RIからRST、DSRからSCK、DCDからMOSIは機能しますか?それとも、FT232RLで言及されているように、avrdudeの特別なバージョンが必要なのはなぜですか。USBからシリアル232 TTLアダプタ、およびISPですか。-投稿#6: 新機能として、6ピンISPヘッダーが利用可能です。それを使用して、avrdudeとavrftdiでAtmelsとArduinoのブートローダーをプログラムできます。コンパイルされたFTDIドライバーを含むavrdudeの特別なバージョンが必要です。 ただし、コンパイルされたFTDIドライバーを含むavrdudeのそのバージョンへのリンクは無効です。 以前のArduino Dicimila / NG / Duemilanoveボードで見られるように、これらのピンは実際にはX3コネクタと同等であるともポスト#7で述べられています。 そして、それらは(明らかに)ビットバングSPIとしてそのように使用できます、 元のFTDIブレークアウトボードの側面に沿って、RI、CTS、DCD、およびDSR(RSDのラベルが付いている)ピンが利用可能であることに注意してください。では、ISPヘッダーを備えたブレークアウトボードは、異なるヘッダーを使用してこれらの同じ信号へのアクセスを提供するだけですか? 私は少し混乱しています-これを考えすぎましたか?このブレイクアウトボードは、ISP / ICSPヘッダーと FTDIコネクタが1つのボードにロールインされたものです(適切なバージョンのavrdudeと共に使用した場合)?それとも通常のISPヘッダーではありませんか?ポスト#4に記載されているように、このタイプのブレークアウトボードに関連する特定のドキュメントは見つかりません。 確かに、これらの6つのピンが何のためにあるのか誰もが言えるでしょうか?それらが通常のISPヘッダーでない場合、それを使用する詳細な方法を提供できますか?回路図が役に立ちます。
12 ftdi  isp  icsp 

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.