「ホタログ1」の編集履歴(バックアップ)一覧はこちら

ホタログ1」(2007/06/30 (土) 16:51:43) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

**2007.6.30. #image(millis.JPG) 図6.29-1 -&bold(){今日は就活?みたいな感じで} 何も進んでない。 ホームページを作っている。 明日からnew pageに移ります。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.29. #image(millis.JPG) 図6.29-1 -&bold(){ArduinoのSerial.begin()について} どうやら、本プログラムは一定の時間で動いていない模様。1回のroop()の経過時間は上記図のように一定ではない。一定で動かなくてもちゃんと動かないことはない。ノイズの原因がこの辺りにあると思ったが、また違った要因かもしれない。 アー!!やーばーいー。予想以上に時間がかかっている。 さらに、roop()の中身に1秒ごとにLEDを点滅させるプログラムを置いてみたところ、およそ3秒ごとに点滅したので、実行速度が本来の1/3にまで低下していることが分かった。 そもそもこのマイコンはどうやって1秒を測っているんだろうか? コンピュータ側の1秒と連動しているんだったら、それはもう一定ではない。 と、思って、コンピュータから切り離して電池で駆動させてみた。すると、まあ大体同じ時間で動いた。しかも同様に時間間隔は不安定であった。(あと、LEDの明るさがほぼ半分になっていたのが多少気になるところ。) -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} 今一瞬分からなくなったので、メモ。 ミリsec = 1/1000sec マイクロsec = 1/100000sec = 1/(10^-6)sec 1Hz = 1secに1周期 1kHz = 1secに1000周期 38kHz = 1secに38000周期 使える関数 delayMicroseconds(); 今先ほど、できたー。500msecごとに信号"1"を発する。 ちなみに、pulsos[]の中身を書き換えることによって、いろんなパターンの信号が送れるようになっている。 #highlight(c){{ int ledPin=13; int IRPin=5; int pulsos[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1}; int cont=0; int cont2=0; void setup() { pinMode(ledPin, OUTPUT); pinMode(IRPin, OUTPUT); } void loop(){ digitalWrite(ledPin,HIGH); for(cont=0;cont<28;cont++){ if(pulsos[cont]==1){ for(cont2=0;cont2<38;cont2++){ digitalWrite(IRPin,HIGH); delayMicroseconds(13); digitalWrite(IRPin, LOW); delayMicroseconds(13); } }else{ digitalWrite(IRPin, LOW); delay(1); } } digitalWrite(ledPin,LOW); delay(500); } }} #image(070629_1702~01.jpg) 図6.29-2 #image(070629_1701~01.jpg) 図6.29-3 受信中の様子。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.28. -&bold(){ArduinoのSerial.begin()について} 今、Serial.begin(9600)と設定している。これはReferenceには、 &bold(){Description} Sets the data rate in bits per second (baud) for serial data transmission. For communicating with the computer, use one of these rates: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200. You can, however, specify other rates - for example, to communicate over pins 0 and 1 with a component that requires a particular baud rate. &bold(){Parameters} int datarate, in bits per second (baud) と書かれている。ためしに1200に設定したところ、一秒という時間が実時間より1200/9600程度遅くなったっぽい。 そして実行時間中ループする関数、roop()のなかの実行回数を見たかったので、long i;を置いてi++してみたところ、平均i=22106.25だった。 -&bold(){iの値} 22432 44645 22213 66832 22187 88956 22124 111134 22178 133235 22101 155305 22070 177317 22012 199445 22128 221553 22108 243618 22065 265640 22022 287707 22067 ---------------- 22106.25 ※iの値。1秒ごとに1行。右列が行ごとの差。下が平均値。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.27. 今日はプログラミング演習の質問タイム等で進まなかった。 これはよくないよー! -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} どうやら規則的な周期は、プログラムに要因がありそう。 その辺りを明日以降調整していこう。 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} 今日はなし。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.26. -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} 今日はなし。 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} この辺に詳しい人に教えてもらった。何がいけなかったかというと、送信側が38kHzで送信しないと駄目らしい。この辺は、マイコンでプログラム書けば何とかなるかな。DigitalWrightの関数で。 以下はメモ。 (1)送信側 (2)受信側 (3)38kHzに設定しないと駄目 #image(赤外線.JPG) 図6.26-1 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.25. -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} 前日のコメントありがとうございました。アドバイスにしたがって、さらに検証してみました。 今日はなぜかノイズが少なく、熱電対の値が反映された。でもまだノイズはある。 以下の図6.25-1は、3回分の呼吸。まあまあうまく出ている。(後半はノイズの極大値)図6.25-2が、定期的に乗っているノイズ。かなりはっきりしている。パソコンの電源を抜いても直らなかった。まだ謎。 このノイズは、回路から来るものではない。というのは、オシロスコープで見たところ、マイコンまでのところではノイズが乗っていなかったから。 そして、交流から来るものかと思い、パソコンの電源を抜いてみたところ、図6.25-3が得られ、変化がないことがわかる。すみません、値見にくいかも。そしてガッカリ。 #image(呼吸070625_2.JPG,width=400) 図6.25-1 #image(呼吸070625.JPG,width=400) 図6.25-2 #image(呼吸070625_3.JPG,width=400) 図6.25-3 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} この辺に詳しい人を発見! でも今日は話を聞けなかった。 >&bold(){コメント} - ホタログ・トップページに基本情報を載せました。&br()よろしければ参考にしてください・・・ -- ninja(管理人) (2007-06-25 19:56:33) #comment(vsize=2,nsize=20,size=40) ---- **2007.6.24. -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} パソコンにつないだ状態で実行すると、信号の極大値maxxをとったときの振幅widthhは常に3に。熱電対の値は全く反映されず。 24日~、ホーマックで銅網を探すが、売ってない。 櫻沢研から銅の金網をかりる。一瞬止んだが、またノイズィに。以降、ずっとノイズィ。 パソコンから孤立させて起動。すると、ノイズはほぼ消えた(ように見えた)。でもパソコンにつながないと、データ記録とデバッグはできないので、どうにかしたい。 #image(070624_2318~01.jpg) 図6.24-1 #image(070624_2320~01.jpg) 図6.24-2 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} ちなみにPCM方式とは、一定時間毎に信号が有るか無いかで0、1を区別する感じ。送信側と受信側で「一定時間」と言うのをずれない様にしなければならないらしい。ホタル通信に関しては近距離だから、あとはシステムが滞りなければ大丈夫だと思う。 なんとなく仕組みが分かったところで早速トライ。 受信機はとりあえずモジュールにGNDと5Vを接続。 LEDを光らすみたいにスイッチと1.5V電池×2を用いて発信機を製作。 これだけじゃだめなのか。受信機が全く反応しません。 ワッショイ!訳わかんなす。 ◆参考になりそうなページ [[オーグチさんの卒業研究>http://www.niit.ac.jp/tslab/gakusei/h17/oogu/oogu.html]] >&bold(){コメント} - 測定系が直流だとうまくって、交流が入ってくるとだめなんだと思う。&br()だから、ノートPCなら電源だけ抜けばノイズがなくなると思う。&br() -- Kuni (2007-06-25 07:11:07) - パソコンとシリアル接続してるってこと?&br()もしそうなら、回路にバグがあるということなんじゃないだろうか?&br()どこかで短絡してるとか -- 奉行 (2007-06-25 08:53:39) #comment(vsize=2,nsize=20,size=40) ---- today: &counter(today) yesterday: &counter(yesterday)
**2007.6.30. -&bold(){今日は就活?みたいな感じで} 何も進んでない。 ホームページを作っている。 明日からnew pageに移ります。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.29. #image(millis.JPG) 図6.29-1 -&bold(){ArduinoのSerial.begin()について} どうやら、本プログラムは一定の時間で動いていない模様。1回のroop()の経過時間は上記図のように一定ではない。一定で動かなくてもちゃんと動かないことはない。ノイズの原因がこの辺りにあると思ったが、また違った要因かもしれない。 アー!!やーばーいー。予想以上に時間がかかっている。 さらに、roop()の中身に1秒ごとにLEDを点滅させるプログラムを置いてみたところ、およそ3秒ごとに点滅したので、実行速度が本来の1/3にまで低下していることが分かった。 そもそもこのマイコンはどうやって1秒を測っているんだろうか? コンピュータ側の1秒と連動しているんだったら、それはもう一定ではない。 と、思って、コンピュータから切り離して電池で駆動させてみた。すると、まあ大体同じ時間で動いた。しかも同様に時間間隔は不安定であった。(あと、LEDの明るさがほぼ半分になっていたのが多少気になるところ。) -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} 今一瞬分からなくなったので、メモ。 ミリsec = 1/1000sec マイクロsec = 1/100000sec = 1/(10^-6)sec 1Hz = 1secに1周期 1kHz = 1secに1000周期 38kHz = 1secに38000周期 使える関数 delayMicroseconds(); 今先ほど、できたー。500msecごとに信号"1"を発する。 ちなみに、pulsos[]の中身を書き換えることによって、いろんなパターンの信号が送れるようになっている。 #highlight(c){{ int ledPin=13; int IRPin=5; int pulsos[]={1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1}; int cont=0; int cont2=0; void setup() { pinMode(ledPin, OUTPUT); pinMode(IRPin, OUTPUT); } void loop(){ digitalWrite(ledPin,HIGH); for(cont=0;cont<28;cont++){ if(pulsos[cont]==1){ for(cont2=0;cont2<38;cont2++){ digitalWrite(IRPin,HIGH); delayMicroseconds(13); digitalWrite(IRPin, LOW); delayMicroseconds(13); } }else{ digitalWrite(IRPin, LOW); delay(1); } } digitalWrite(ledPin,LOW); delay(500); } }} #image(070629_1702~01.jpg) 図6.29-2 #image(070629_1701~01.jpg) 図6.29-3 受信中の様子。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.28. -&bold(){ArduinoのSerial.begin()について} 今、Serial.begin(9600)と設定している。これはReferenceには、 &bold(){Description} Sets the data rate in bits per second (baud) for serial data transmission. For communicating with the computer, use one of these rates: 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, or 115200. You can, however, specify other rates - for example, to communicate over pins 0 and 1 with a component that requires a particular baud rate. &bold(){Parameters} int datarate, in bits per second (baud) と書かれている。ためしに1200に設定したところ、一秒という時間が実時間より1200/9600程度遅くなったっぽい。 そして実行時間中ループする関数、roop()のなかの実行回数を見たかったので、long i;を置いてi++してみたところ、平均i=22106.25だった。 -&bold(){iの値} 22432 44645 22213 66832 22187 88956 22124 111134 22178 133235 22101 155305 22070 177317 22012 199445 22128 221553 22108 243618 22065 265640 22022 287707 22067 ---------------- 22106.25 ※iの値。1秒ごとに1行。右列が行ごとの差。下が平均値。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.27. 今日はプログラミング演習の質問タイム等で進まなかった。 これはよくないよー! -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} どうやら規則的な周期は、プログラムに要因がありそう。 その辺りを明日以降調整していこう。 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} 今日はなし。 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.26. -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} 今日はなし。 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} この辺に詳しい人に教えてもらった。何がいけなかったかというと、送信側が38kHzで送信しないと駄目らしい。この辺は、マイコンでプログラム書けば何とかなるかな。DigitalWrightの関数で。 以下はメモ。 (1)送信側 (2)受信側 (3)38kHzに設定しないと駄目 #image(赤外線.JPG) 図6.26-1 >&bold(){コメント} #comment(vsize=2,nsize=20,size=40) ---- **2007.6.25. -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} 前日のコメントありがとうございました。アドバイスにしたがって、さらに検証してみました。 今日はなぜかノイズが少なく、熱電対の値が反映された。でもまだノイズはある。 以下の図6.25-1は、3回分の呼吸。まあまあうまく出ている。(後半はノイズの極大値)図6.25-2が、定期的に乗っているノイズ。かなりはっきりしている。パソコンの電源を抜いても直らなかった。まだ謎。 このノイズは、回路から来るものではない。というのは、オシロスコープで見たところ、マイコンまでのところではノイズが乗っていなかったから。 そして、交流から来るものかと思い、パソコンの電源を抜いてみたところ、図6.25-3が得られ、変化がないことがわかる。すみません、値見にくいかも。そしてガッカリ。 #image(呼吸070625_2.JPG,width=400) 図6.25-1 #image(呼吸070625.JPG,width=400) 図6.25-2 #image(呼吸070625_3.JPG,width=400) 図6.25-3 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} この辺に詳しい人を発見! でも今日は話を聞けなかった。 >&bold(){コメント} - ホタログ・トップページに基本情報を載せました。&br()よろしければ参考にしてください・・・ -- ninja(管理人) (2007-06-25 19:56:33) #comment(vsize=2,nsize=20,size=40) ---- **2007.6.24. -&bold(){ホタル通信。ものすごくノイズが乗るので、除去のための検証。23日~} パソコンにつないだ状態で実行すると、信号の極大値maxxをとったときの振幅widthhは常に3に。熱電対の値は全く反映されず。 24日~、ホーマックで銅網を探すが、売ってない。 櫻沢研から銅の金網をかりる。一瞬止んだが、またノイズィに。以降、ずっとノイズィ。 パソコンから孤立させて起動。すると、ノイズはほぼ消えた(ように見えた)。でもパソコンにつながないと、データ記録とデバッグはできないので、どうにかしたい。 #image(070624_2318~01.jpg) 図6.24-1 #image(070624_2320~01.jpg) 図6.24-2 -&bold(){赤外線リモコン受信モジュール(Photo Modules for PCM Remote Control Systems)と赤外線LED(狭放射タイプ)を用いて、赤外線送受信にトライ。} ちなみにPCM方式とは、一定時間毎に信号が有るか無いかで0、1を区別する感じ。送信側と受信側で「一定時間」と言うのをずれない様にしなければならないらしい。ホタル通信に関しては近距離だから、あとはシステムが滞りなければ大丈夫だと思う。 なんとなく仕組みが分かったところで早速トライ。 受信機はとりあえずモジュールにGNDと5Vを接続。 LEDを光らすみたいにスイッチと1.5V電池×2を用いて発信機を製作。 これだけじゃだめなのか。受信機が全く反応しません。 ワッショイ!訳わかんなす。 ◆参考になりそうなページ [[オーグチさんの卒業研究>http://www.niit.ac.jp/tslab/gakusei/h17/oogu/oogu.html]] >&bold(){コメント} - 測定系が直流だとうまくって、交流が入ってくるとだめなんだと思う。&br()だから、ノートPCなら電源だけ抜けばノイズがなくなると思う。&br() -- Kuni (2007-06-25 07:11:07) - パソコンとシリアル接続してるってこと?&br()もしそうなら、回路にバグがあるということなんじゃないだろうか?&br()どこかで短絡してるとか -- 奉行 (2007-06-25 08:53:39) #comment(vsize=2,nsize=20,size=40) ---- today: &counter(today) yesterday: &counter(yesterday)

表示オプション

横に並べて表示:
変化行の前後のみ表示: