「ホタログ2」の編集履歴(バックアップ)一覧はこちら
「ホタログ2」(2007/07/11 (水) 01:37:57) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**2007.7.10
-&bold(){今日分からなかったこと。}
TCNTのこと。
ゼミ合宿の後、なぜかノートパソコンの「C」のキーが直ったので、快適。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.6
今日発表資料作って、明日から美馬研・柳研合同合宿です。
あ、そういえば増井さんという方が9月のはじめに函館に来るそうです。インターフェース関係の方はチェックのほう、よろしくお願いします。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.5
午前中は病院でつぶれた。夕方、組み込み系詳しい人に聞いて、ようやく実行速度の遅れを理解。なるほど! 今日はそれだけ。
-&bold(){呼吸が速くなると、REDが赤色に変色するプログラム}
やっと遅くなる理由が分かった・・・。delay()のせいです。ここをmillis()を使った分に書き変えてみようと思います。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.4
-&bold(){WISSに投稿について}
■[[WISSのページ(http://www.wiss.org/)>http://www.wiss.org/]]
2007年の情報が全く載っていないけど、どういうことだろう? あれ、今年は2007年だっけ・・・?
と思ったら、あった。
■[[WISS2007(http://www.wiss.org/WISS2007/)>http://www.wiss.org/WISS2007/]]
-&bold(){an Tシャツデザインコンテストに応募}
今日の前半、やる気と集中力がなかったので、気晴らしに応募してみた。コクヨデザインアワードは応募し損ねた!! ああ、200万が・・・。ところで応募したデータは、結果が出てから公表する。かもしれない。
■[[応募のページ(http://weban.jp/koots/contest/)>http://weban.jp/koots/contest/]]
-&bold(){呼吸が速くなると、REDが赤色に変色するプログラム}
アレ!?おかしいなー。赤色しか見えないよ。
#image(070704_2257~01.jpg) 図7.4-1
もしやそういうタイプのLEDかと思って、確認してみたらちゃんと点いたので、やはり例のプログラム実行速度の弊害だと思う。コンピュータ側のSerialのSpeedはどこで変更すればいいんだろうか? これは明日聞こう。
>&bold(){コメント}
- 使っているシリアル通信のソフトにビット・レート(bitrate)とかボー・レート(baud rate)とかって項目ない?&br()それで変更できるはずよ。因みにビットレートもボーレート(多分この場合は)意味はどちらも同じとおもっていいです -- 奉行 (2007-07-05 12:23:54)
- どこだろう!? 見当たらない。 -- ニンジャ (2007-07-05 17:37:11)
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.3
-&bold(){呼吸が速くなると、REDが赤色に変色するプログラム}
プログラムは書け、コンパイルは通ったけどまだ動作確認はしてない。先日回路を確認する際に、マイコンの接続等を全部ばらしたので、元に戻すのに時間がかかる。とりあえずドライバーが見当たらない。明日来て動作確認する。
もはや、見るのが億劫なほど長くなってしまったプログラム・・・。184行。まだましか。
以下、未確認プログラム。メモ。確認したら消す。
#highlight(c){{
/***
呼吸-LED2
pwmを用いた
***/
//sekibun
int i = 0;
int ad;
int valS[101];
long sum = 0;
int heikin1, heikin2;
int now;
//maxx
int maxx;
int widthh[4] = { 8, 8, 8, 8};
char line1, line2;
long t = 0;
long time1, time2;
long widadd = 8;
//黄色LED
int ledPin3 = 11; // LED connected to digi-pin 11
int YPW1 = 1;
int YPW2 = 4;
int k1 = 0;
//赤色LED
int ledPin2 = 12; // LED connected to digi-pin 12
int RPW1 = 1000;
int RPW2 = 4000;
int RPW3 = 100;
int k2 = 0;
//その他
//確認用
long r = 0;
long u = 0;
int ledPin = 13; // LED connect 13
int previousMillis = 0; // LED fu? modificado
int value = LOW; // Estado anterior del LED
int interval = 1000; // Intervalo de parpadeo
void setup()
{
Serial.begin(9600);
pinMode(ledPin3, OUTPUT); // Yellow pin as output
pinMode(ledPin2, OUTPUT); // Red pin as output
// 確認用
pinMode(ledPin, OUTPUT);
}
void loop()
{
sum = 0;
heikin1 = heikin2;
r++;
// ここで100幅分の平均値を計算
for(i=0 ; i<100 ; i++){
ad = analogRead(0);
valS[i] = ad;
sum += valS[i];
//LED_Yellow
if(k1 == 1){ // 下向きのベクトルのとき(温度下降時)
YPW1 = 1;
if(YPW2 <= 20){
YPW2 = YPW2 + 1 ; // LEDだんだん明るく
}
if(YPW2 > 20){
YPW1 = 0;
}
}
if(k1 == 0){ // 上向きのベクトルのとき(温度上昇時)
YPW1 = 1;
if(YPW2 >= 1){
YPW2 = YPW2 - 1;// LEDだんだん明るく
}
}
// pwm操作
digitalWrite(ledPin3, HIGH); // sets the LED on
delay(YPW1); // wait
digitalWrite(ledPin3, LOW); // sets the LED off
delay(YPW2); // wait
//LED_Red
if(k2 == 1){ // 下向きのベクトルのとき(温度下降時)
RPW1 = 1;
if(RPW2 <= 20){
RPW2 = RPW2 + RPW3 ; // LEDだんだん明るく
}
if(RPW2 > 20){
RPW1 = 0;
}
}
if(k2 == 0){ // 上向きのベクトルのとき(温度上昇時)
RPW1 = 1;
if(RPW2 >= 1){
RPW2 = RPW2 - RPW3;// LEDだんだん明るく
}
}
// pwm操作
digitalWrite(ledPin2, HIGH); // sets the LED on
delayMicroseconds(RPW1); // wait
digitalWrite(ledPin2, LOW); // sets the LED off
delayMicroseconds(RPW2); // wait
}
heikin2 = sum/100;
//* Down *//
if(heikin1 > heikin2){
if((line1 == 'U' && line2 == 'F') ||
(line1 == 'F' && line2 == 'U') ||
(line1 == 'U' && line2 == 'U')){
maxx = heikin1; // 極大値の更新
time1 = time2;
time2 = t;
widthh[0] = time2 - time1; // 振幅
line1 = line2;
line2 = 'D';
k1 = 1;
}
else if(line1 == 'F' && line2 == 'F'){
line1 = line2;
line2 = 'D';
k1 = 1;
}
else{
line1 = line2;
line2 = 'F';
}
}
//* Widthh for Red LED *//
widthh[3] = widthh[2];
widthh[2] = widthh[1];
widthh[1] = widthh[0];
widadd = (widthh[1] + widthh[2] + widthh[3])/3;
if(widthh[1] > widthh[2]){
k2 = 1;
RPW3 += 100;
}
else if(widthh[1] < widthh[2]){
k2 = 0;
RPW3 -= 100;
}
//* Up *//
else if(heikin1 < heikin2){
if((line1 == 'D' && line2 == 'F') ||
(line1 == 'F' && line2 == 'D') ||
(line1 == 'D' && line2 == 'D') ||
(line1 == 'F' && line2 == 'F')){
line1 = line2;
line2 = 'U';
k1 = 0;
}
else{
line1 = line2;
line2 = 'F';
}
}
//* Flat *//
else {
line1 = line2;
line2 = 'F';
}
// 確認用
if (millis() - previousMillis > interval) {
previousMillis = millis();
// Recuerda la ?ltima LED cambi?
if (value == LOW)
// Si el LED est? apagado lo enciende y viceversa.
value = HIGH;
else
value = LOW;
digitalWrite(ledPin, value);
Serial.println(i);
}
}
}}
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.2
-&bold(){今日は就活?みたいな感じで}
何も進んでない2。 これはまずい。
でもホームページを作っている。ほぼ一息ついた。
明日は色をつけるプログラムを書く予定だったけど、
明後日のゼミが明日に移動になったので…、どうにか何とかしよう。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
----
today: &counter(today)
yesterday: &counter(yesterday)
**2007.7.6
今日発表資料作って、明日から美馬研・柳研合同合宿です。
あ、そういえば増井さんという方が9月のはじめに函館に来るそうです。インターフェース関係の方はチェックのほう、よろしくお願いします。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.5
午前中は病院でつぶれた。夕方、組み込み系詳しい人に聞いて、ようやく実行速度の遅れを理解。なるほど! 今日はそれだけ。
-&bold(){呼吸が速くなると、REDが赤色に変色するプログラム}
やっと遅くなる理由が分かった・・・。delay()のせいです。ここをmillis()を使った分に書き変えてみようと思います。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.4
-&bold(){WISSに投稿について}
■[[WISSのページ(http://www.wiss.org/)>http://www.wiss.org/]]
2007年の情報が全く載っていないけど、どういうことだろう? あれ、今年は2007年だっけ・・・?
と思ったら、あった。
■[[WISS2007(http://www.wiss.org/WISS2007/)>http://www.wiss.org/WISS2007/]]
-&bold(){an Tシャツデザインコンテストに応募}
今日の前半、やる気と集中力がなかったので、気晴らしに応募してみた。コクヨデザインアワードは応募し損ねた!! ああ、200万が・・・。ところで応募したデータは、結果が出てから公表する。かもしれない。
■[[応募のページ(http://weban.jp/koots/contest/)>http://weban.jp/koots/contest/]]
-&bold(){呼吸が速くなると、REDが赤色に変色するプログラム}
アレ!?おかしいなー。赤色しか見えないよ。
#image(070704_2257~01.jpg) 図7.4-1
もしやそういうタイプのLEDかと思って、確認してみたらちゃんと点いたので、やはり例のプログラム実行速度の弊害だと思う。コンピュータ側のSerialのSpeedはどこで変更すればいいんだろうか? これは明日聞こう。
>&bold(){コメント}
- 使っているシリアル通信のソフトにビット・レート(bitrate)とかボー・レート(baud rate)とかって項目ない?&br()それで変更できるはずよ。因みにビットレートもボーレート(多分この場合は)意味はどちらも同じとおもっていいです -- 奉行 (2007-07-05 12:23:54)
- どこだろう!? 見当たらない。 -- ニンジャ (2007-07-05 17:37:11)
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.3
-&bold(){呼吸が速くなると、REDが赤色に変色するプログラム}
プログラムは書け、コンパイルは通ったけどまだ動作確認はしてない。先日回路を確認する際に、マイコンの接続等を全部ばらしたので、元に戻すのに時間がかかる。とりあえずドライバーが見当たらない。明日来て動作確認する。
もはや、見るのが億劫なほど長くなってしまったプログラム・・・。184行。まだましか。
以下、未確認プログラム。メモ。確認したら消す。
#highlight(c){{
/***
呼吸-LED2
pwmを用いた
***/
//sekibun
int i = 0;
int ad;
int valS[101];
long sum = 0;
int heikin1, heikin2;
int now;
//maxx
int maxx;
int widthh[4] = { 8, 8, 8, 8};
char line1, line2;
long t = 0;
long time1, time2;
long widadd = 8;
//黄色LED
int ledPin3 = 11; // LED connected to digi-pin 11
int YPW1 = 1;
int YPW2 = 4;
int k1 = 0;
//赤色LED
int ledPin2 = 12; // LED connected to digi-pin 12
int RPW1 = 1000;
int RPW2 = 4000;
int RPW3 = 100;
int k2 = 0;
//その他
//確認用
long r = 0;
long u = 0;
int ledPin = 13; // LED connect 13
int previousMillis = 0; // LED fu? modificado
int value = LOW; // Estado anterior del LED
int interval = 1000; // Intervalo de parpadeo
void setup()
{
Serial.begin(9600);
pinMode(ledPin3, OUTPUT); // Yellow pin as output
pinMode(ledPin2, OUTPUT); // Red pin as output
// 確認用
pinMode(ledPin, OUTPUT);
}
void loop()
{
sum = 0;
heikin1 = heikin2;
r++;
// ここで100幅分の平均値を計算
for(i=0 ; i<100 ; i++){
ad = analogRead(0);
valS[i] = ad;
sum += valS[i];
//LED_Yellow
if(k1 == 1){ // 下向きのベクトルのとき(温度下降時)
YPW1 = 1;
if(YPW2 <= 20){
YPW2 = YPW2 + 1 ; // LEDだんだん明るく
}
if(YPW2 > 20){
YPW1 = 0;
}
}
if(k1 == 0){ // 上向きのベクトルのとき(温度上昇時)
YPW1 = 1;
if(YPW2 >= 1){
YPW2 = YPW2 - 1;// LEDだんだん明るく
}
}
// pwm操作
digitalWrite(ledPin3, HIGH); // sets the LED on
delay(YPW1); // wait
digitalWrite(ledPin3, LOW); // sets the LED off
delay(YPW2); // wait
//LED_Red
if(k2 == 1){ // 下向きのベクトルのとき(温度下降時)
RPW1 = 1;
if(RPW2 <= 20){
RPW2 = RPW2 + RPW3 ; // LEDだんだん明るく
}
if(RPW2 > 20){
RPW1 = 0;
}
}
if(k2 == 0){ // 上向きのベクトルのとき(温度上昇時)
RPW1 = 1;
if(RPW2 >= 1){
RPW2 = RPW2 - RPW3;// LEDだんだん明るく
}
}
// pwm操作
digitalWrite(ledPin2, HIGH); // sets the LED on
delayMicroseconds(RPW1); // wait
digitalWrite(ledPin2, LOW); // sets the LED off
delayMicroseconds(RPW2); // wait
}
heikin2 = sum/100;
//* Down *//
if(heikin1 > heikin2){
if((line1 == 'U' && line2 == 'F') ||
(line1 == 'F' && line2 == 'U') ||
(line1 == 'U' && line2 == 'U')){
maxx = heikin1; // 極大値の更新
time1 = time2;
time2 = t;
widthh[0] = time2 - time1; // 振幅
line1 = line2;
line2 = 'D';
k1 = 1;
}
else if(line1 == 'F' && line2 == 'F'){
line1 = line2;
line2 = 'D';
k1 = 1;
}
else{
line1 = line2;
line2 = 'F';
}
}
//* Widthh for Red LED *//
widthh[3] = widthh[2];
widthh[2] = widthh[1];
widthh[1] = widthh[0];
widadd = (widthh[1] + widthh[2] + widthh[3])/3;
if(widthh[1] > widthh[2]){
k2 = 1;
RPW3 += 100;
}
else if(widthh[1] < widthh[2]){
k2 = 0;
RPW3 -= 100;
}
//* Up *//
else if(heikin1 < heikin2){
if((line1 == 'D' && line2 == 'F') ||
(line1 == 'F' && line2 == 'D') ||
(line1 == 'D' && line2 == 'D') ||
(line1 == 'F' && line2 == 'F')){
line1 = line2;
line2 = 'U';
k1 = 0;
}
else{
line1 = line2;
line2 = 'F';
}
}
//* Flat *//
else {
line1 = line2;
line2 = 'F';
}
// 確認用
if (millis() - previousMillis > interval) {
previousMillis = millis();
// Recuerda la ?ltima LED cambi?
if (value == LOW)
// Si el LED est? apagado lo enciende y viceversa.
value = HIGH;
else
value = LOW;
digitalWrite(ledPin, value);
Serial.println(i);
}
}
}}
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
**2007.7.2
-&bold(){今日は就活?みたいな感じで}
何も進んでない2。 これはまずい。
でもホームページを作っている。ほぼ一息ついた。
明日は色をつけるプログラムを書く予定だったけど、
明後日のゼミが明日に移動になったので…、どうにか何とかしよう。
>&bold(){コメント}
#comment(vsize=2,nsize=20,size=40)
----
----
today: &counter(today)
yesterday: &counter(yesterday)