ディラン&キャサリンによるピンポン工房
その他:
クライアント(シーソー側)Arduino
サーバ Processing
2008年6月12日木曜日
トラブルシューティング:ProcessingとArduinoの連携
トラブルシューティング:Arduino
Arduinoに書き込みたいのに上手くいかない。Serial Monitorの表示がおかしい。
など問題が起きた時に試してほしい解決方法のまとめです。
1)COMがあっているか確かめる。
※Winの人のみ
よくある間違いです。Arduinoに関する記事を読んで復習しましょう。
2)Upload to I/O Bordを押してから、基盤のスイッチを押す。
普通は、I/Oのスイッチを押してから書き込みですが、Arduinoの場合、こっちの方が成功しやすいのです。
3)Processingで走らせているプログラムを終了させる。
Serial Monitorで表示されない、といった場合です。一つのプログラムにつき、一つのシリアルしか読めない&逆もしかりだそうです。
よって、シリアル通信を行う際、関連するプログラムは閉じたほうがよいでしょう。
Processingやterminalとか。
4)PCを再起動する。
最後の手段にして、これで解決する場合はよくあります。
など問題が起きた時に試してほしい解決方法のまとめです。
1)COMがあっているか確かめる。
※Winの人のみ
よくある間違いです。Arduinoに関する記事を読んで復習しましょう。
2)Upload to I/O Bordを押してから、基盤のスイッチを押す。
普通は、I/Oのスイッチを押してから書き込みですが、Arduinoの場合、こっちの方が成功しやすいのです。
3)Processingで走らせているプログラムを終了させる。
Serial Monitorで表示されない、といった場合です。一つのプログラムにつき、一つのシリアルしか読めない&逆もしかりだそうです。
よって、シリアル通信を行う際、関連するプログラムは閉じたほうがよいでしょう。
Processingやterminalとか。
4)PCを再起動する。
最後の手段にして、これで解決する場合はよくあります。
2008年6月11日水曜日
トラブルシューティング:デバック
ソースを書き込んで、RUNだ!という時に、エラーが出て先に進めません。
そんな人へのアドバイス。
キホンはエラーメッセージを読んで、チェックしていきましょう。
メッセージによって、だいたいチェックの仕方が分かります。
よく出るメッセージと対応方法をまとめたので、参考にしてみてください。
1)No fieldname " "found in ....

そんな名前のクラス、オブジェクト、引数etcはないですよ。って言われた場合。
たいてい
「宣言していない」もしくは「タイプミス」が考えられます。
画像ではLinefeedに関する記述がないといっているので、ソースの一番最初から、自分がLinefeedの記述をした(と思っている)ところを探して行きます。

どうやら一番最初のintの宣言が間違っていたようでした。Linefedになっていたのでlinefeedに修正。
これで動きました。
なお画像では「No fieldname " "found in ....」の後に「Linfedっていう近い名前のものならある」とエラーメッセージが続きます。これでなんとなく、間違いのあたりがついてきます。
2)Syntax error, maybe a missing semicolon?

前後で;を忘れてるんじゃないか?と聞いてくれています。
ちょうど前の段のsize(640,480)の後、;が抜けてました。
3)Found too many {characters without a} to match

{}が足りない、というエラーです。ifの後や、voidの後に、きちんと{}が入っているか確認しましょう。
4)unexpected tolken: void
これはちょっと面倒です。

画像ではsetupの後に()が足りなかったようです。
他にも、前のvoid文が{}で閉じられていなかった場合も起こりえます。
ちょっとずつ{}の数があってるか、()ははいっているか,;はあるか?を確認していってください。
※Macユーザーの場合、ソース冒頭のimport文はsketch>Import Library>serial、、、という方法で記述してください。これを行わない場合にも、同様のエラーが出るようです。
5)その他、よくある間違い
全角スペースを使っていたりしませんか?英数入力になっているか常に確認しましょう。
そんな人へのアドバイス。
キホンはエラーメッセージを読んで、チェックしていきましょう。
メッセージによって、だいたいチェックの仕方が分かります。
よく出るメッセージと対応方法をまとめたので、参考にしてみてください。
1)No fieldname " "found in ....

そんな名前のクラス、オブジェクト、引数etcはないですよ。って言われた場合。
たいてい
「宣言していない」もしくは「タイプミス」が考えられます。
画像ではLinefeedに関する記述がないといっているので、ソースの一番最初から、自分がLinefeedの記述をした(と思っている)ところを探して行きます。

どうやら一番最初のintの宣言が間違っていたようでした。Linefedになっていたのでlinefeedに修正。
これで動きました。
なお画像では「No fieldname " "found in ....」の後に「Linfedっていう近い名前のものならある」とエラーメッセージが続きます。これでなんとなく、間違いのあたりがついてきます。
2)Syntax error, maybe a missing semicolon?

前後で;を忘れてるんじゃないか?と聞いてくれています。
ちょうど前の段のsize(640,480)の後、;が抜けてました。
3)Found too many {characters without a} to match

{}が足りない、というエラーです。ifの後や、voidの後に、きちんと{}が入っているか確認しましょう。
4)unexpected tolken: void
これはちょっと面倒です。

画像ではsetupの後に()が足りなかったようです。
他にも、前のvoid文が{}で閉じられていなかった場合も起こりえます。
ちょっとずつ{}の数があってるか、()ははいっているか,;はあるか?を確認していってください。
※Macユーザーの場合、ソース冒頭のimport文はsketch>Import Library>serial、、、という方法で記述してください。これを行わない場合にも、同様のエラーが出るようです。
5)その他、よくある間違い
全角スペースを使っていたりしませんか?英数入力になっているか常に確認しましょう。
2008年6月9日月曜日
Arduinoに書き込むforMac
Macの人がArduinoに書き込む方法です。基本はWinと一緒ですが、より簡単です。
1)USBケーブルでArdunoとPCをつなぐ
2)Arduinoソフトウェアを起動しましょう。
[Tools]⇒[Serial port]⇒[dev/cu.usbserial-A10166Y]

ここからはWinユーザと一緒です!
3)LEDを光らせるプログラムを書く
プログラムは本のp.39にあります。
int LEDPin =13;
void setup(){
pinMode(LEDPin, OUTPUT);
}
void loop(){
digitalWrite(LEDPin, HIGH);//turn on the LED
delay(500);
digitalWrite(LEDPin, LOW);//turn off the LED
delay(500);
}
4)Verifyボタンを押す。(再生ボタンみたいなやつ)
プログラムに間違いがあるとエラーが出ます。
5)Done Compiling.とでたらOKです。
6)Arduinoソフトウェア上の「Upload to I/O Board」ボタンを押して、
すばやく0.5秒ぐらい後にArduino基盤上の「リセットボタン」を押します
7)先程Done compiling.が出たところにDone Uploadingと出れば書き込み成功です!
これでプログラムが実行されます。
「Upload to I/O Board」ボタンの右となりにある「Serial Monitor」を押しても起動します。
1)USBケーブルでArdunoとPCをつなぐ
2)Arduinoソフトウェアを起動しましょう。
[Tools]⇒[Serial port]⇒[dev/cu.usbserial-A10166Y]

ここからはWinユーザと一緒です!
3)LEDを光らせるプログラムを書く
プログラムは本のp.39にあります。
int LEDPin =13;
void setup(){
pinMode(LEDPin, OUTPUT);
}
void loop(){
digitalWrite(LEDPin, HIGH);//turn on the LED
delay(500);
digitalWrite(LEDPin, LOW);//turn off the LED
delay(500);
}
4)Verifyボタンを押す。(再生ボタンみたいなやつ)
プログラムに間違いがあるとエラーが出ます。
5)Done Compiling.とでたらOKです。
6)Arduinoソフトウェア上の「Upload to I/O Board」ボタンを押して、
すばやく0.5秒ぐらい後にArduino基盤上の「リセットボタン」を押します
7)先程Done compiling.が出たところにDone Uploadingと出れば書き込み成功です!
これでプログラムが実行されます。
「Upload to I/O Board」ボタンの右となりにある「Serial Monitor」を押しても起動します。
Arduinoに書き込む
Arduinoへのプログラムの書き込み方です。
①USBケーブルにArduinoをつなぐ
Windowsユーザの方はシリアルポートを確認しましょう。
以下、Windowsの方:
②「マイコンピュータ」を右クリックして「プロパティ」を開く。
③「ハードウェア」の「デバイスマネージャ」を選択。

④ポート(COMとLPT)の中に、「USB Serial Port」がある事を確認する。
COM3が割り当てられている事を覚えておきましょう。
人によってCOMの数は違うので注意しましょう!

⑤Arduinoソフトウェアを起動しましょう。
[Tools]⇒[Serial port]⇒[COM3]

ここからはMacユーザも一緒です!
⑥LEDを光らせるプログラムを書く
プログラムは本のp.39にあります。
int LEDPin =13;
void setup(){
pinMode(LEDPin, OUTPUT);
}
void loop(){
digitalWrite(LEDPin, HIGH);//turn on the LED
delay(500);
digitalWrite(LEDPin, LOW);//turn off the LED
delay(500);
}
⑦Verifyボタンを押す。(再生ボタンみたいなやつ)
プログラムに間違いがあるとエラーが出ます。
⑧Done Compiling.とでたらOKです。

⑨Arduinoソフトウェア上の「Upload to I/O Board」ボタンを押して、
すばやく0.5秒ぐらい後にArduino基盤上の「リセットボタン」を押します


⑩先程Done compiling.が出たところにDone Uploadingと出れば書き込み成功です!
これでプログラムが実行されます。
「Upload to I/O Board」ボタンの右となりにある「Serial Monitor」を押しても起動します。
①USBケーブルにArduinoをつなぐ
Windowsユーザの方はシリアルポートを確認しましょう。
以下、Windowsの方:
②「マイコンピュータ」を右クリックして「プロパティ」を開く。
③「ハードウェア」の「デバイスマネージャ」を選択。
④ポート(COMとLPT)の中に、「USB Serial Port」がある事を確認する。
COM3が割り当てられている事を覚えておきましょう。
人によってCOMの数は違うので注意しましょう!
⑤Arduinoソフトウェアを起動しましょう。
[Tools]⇒[Serial port]⇒[COM3]
ここからはMacユーザも一緒です!
⑥LEDを光らせるプログラムを書く
プログラムは本のp.39にあります。
int LEDPin =13;
void setup(){
pinMode(LEDPin, OUTPUT);
}
void loop(){
digitalWrite(LEDPin, HIGH);//turn on the LED
delay(500);
digitalWrite(LEDPin, LOW);//turn off the LED
delay(500);
}
⑦Verifyボタンを押す。(再生ボタンみたいなやつ)
プログラムに間違いがあるとエラーが出ます。
⑧Done Compiling.とでたらOKです。
⑨Arduinoソフトウェア上の「Upload to I/O Board」ボタンを押して、
すばやく0.5秒ぐらい後にArduino基盤上の「リセットボタン」を押します
⑩先程Done compiling.が出たところにDone Uploadingと出れば書き込み成功です!
これでプログラムが実行されます。
「Upload to I/O Board」ボタンの右となりにある「Serial Monitor」を押しても起動します。
登録:
投稿 (Atom)
