RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
これは先週わかった事項なのですが、どうやら今年のロボコンまで実質あと10週間しかないみたいなんです。
え?普通に間に合わない・・・。
只でさえ夏の計画停電や大会の前倒しで時間がないのに、この人員不足では・・・厳しい・・・
機械班によると、機械を作れる人が、今のところ3人しかいないそうです。一体どうすればいいんだか。
回路担当の人間が機械やるようなことをすると言う話もでていますが、逆に足を引っ張るような気がしてなりません。
機械作業経験ほぼ0の人が大半ですから・・・まぁ無理と考えるのが妥当でしょう。
この打開策をなんとかして編み出さなくては、今年はまともにロボットすら作れてないような状態になるかも知れません。
一年生もこっちは殆ど取れなかったし・・・
実はこの部員不足の問題は去年の秋には既に分かっていたのですが、
何故なんだか、中核が誰も対策をとらなかったようなのですね・・・
一体どうなっているんだか。
(^・ω・)ノRadiumProduction in RoboCupJunior
え?普通に間に合わない・・・。
只でさえ夏の計画停電や大会の前倒しで時間がないのに、この人員不足では・・・厳しい・・・
機械班によると、機械を作れる人が、今のところ3人しかいないそうです。一体どうすればいいんだか。
回路担当の人間が機械やるようなことをすると言う話もでていますが、逆に足を引っ張るような気がしてなりません。
機械作業経験ほぼ0の人が大半ですから・・・まぁ無理と考えるのが妥当でしょう。
この打開策をなんとかして編み出さなくては、今年はまともにロボットすら作れてないような状態になるかも知れません。
一年生もこっちは殆ど取れなかったし・・・
実はこの部員不足の問題は去年の秋には既に分かっていたのですが、
何故なんだか、中核が誰も対策をとらなかったようなのですね・・・
一体どうなっているんだか。
(^・ω・)ノRadiumProduction in RoboCupJunior
簡単に説明すると、今後10年以内に国内の原子力発電所を全て廃炉にして、
それによって不足した電力は他国の原子力発電所から売電してもらう。というもののようです。
なんのための反原発だか、意味不明です(笑)
結局あの辺の国は全部陸続きだから国の境が放射線濃度の境になるわけでもないのに・・・
という訳で今日は・・・実はまったくネタがありません。
ひとつあるといえば部員に対しての連絡事項だけですね。
試験明けの月曜日に会議がありますよ。いつもの時間にいつもの場所で。
といってもメールしたから大丈夫・・・かな?
一応年度最初の会議なので全員参加してください。ということが言いたかっただけです。
まぁそれよりも今は試験の方が大事・・・といっておくべきなのかなぁ。
でもうちの学校の試験って基本的に簡単だけど、詰んでる教科は勉強とか無意味なぐらいに詰んでるからなぁ・・・
平均が8割5分を超えるようなテストもあれば、2割に届かないようなものも稀にあるようなので、
しっかり勉強する教科は考えた方がいいかもしれませんよー(笑)一年生にそんな危ない教科ないけど
例えば今日発覚したのが3年の情報のテスト。
プログラム自体はまだ全然簡単なことをやっているので楽勝!なんて思っていましたが、
今日試験範囲を聞いてクラスの壊滅が予知されました。
このような具合に。
先生:試験範囲ですが、~(中略)~よって、漸化式も覚えていた方がいいと思いますよ。
生徒:漸化式って・・・何!?
1年の頃に数列でやったと先生は主張しましたが、一年のころのプリントを見返してみても、そんなものはありません。
そもそも、覚えていないんだからやっているはずもありません。
とりあえず即帰してでググってみたら、なんか差分方程式なんていうものが。
・・・なにこれ?
という訳で部員の皆さん会議遅れないように、ということでした。
それでは。
(^・ω・)ノRadiumProduction in RoboCupJunior
それによって不足した電力は他国の原子力発電所から売電してもらう。というもののようです。
なんのための反原発だか、意味不明です(笑)
結局あの辺の国は全部陸続きだから国の境が放射線濃度の境になるわけでもないのに・・・
という訳で今日は・・・実はまったくネタがありません。
ひとつあるといえば部員に対しての連絡事項だけですね。
試験明けの月曜日に会議がありますよ。いつもの時間にいつもの場所で。
といってもメールしたから大丈夫・・・かな?
一応年度最初の会議なので全員参加してください。ということが言いたかっただけです。
まぁそれよりも今は試験の方が大事・・・といっておくべきなのかなぁ。
でもうちの学校の試験って基本的に簡単だけど、詰んでる教科は勉強とか無意味なぐらいに詰んでるからなぁ・・・
平均が8割5分を超えるようなテストもあれば、2割に届かないようなものも稀にあるようなので、
しっかり勉強する教科は考えた方がいいかもしれませんよー(笑)一年生にそんな危ない教科ないけど
例えば今日発覚したのが3年の情報のテスト。
プログラム自体はまだ全然簡単なことをやっているので楽勝!なんて思っていましたが、
今日試験範囲を聞いてクラスの壊滅が予知されました。
このような具合に。
先生:試験範囲ですが、~(中略)~よって、漸化式も覚えていた方がいいと思いますよ。
生徒:漸化式って・・・何!?
1年の頃に数列でやったと先生は主張しましたが、一年のころのプリントを見返してみても、そんなものはありません。
そもそも、覚えていないんだからやっているはずもありません。
とりあえず即帰してでググってみたら、なんか差分方程式なんていうものが。
・・・なにこれ?
という訳で部員の皆さん会議遅れないように、ということでした。
それでは。
(^・ω・)ノRadiumProduction in RoboCupJunior
一昨日のプログラムの記事の続きです 。
今日はいきなりですが、変数というものについてのお話をしようと思います。
変数とは、まぁ所謂箱です。
プログラム上でいう箱なんです。
まぁ何を入れる箱かというと、具体的には値、即ち数値です。
ROBOLABでいうところのコンテナというやつです。
例えばセンサーの値だったり、時間の値だったり、まぁ色々です。
そういった数字を入れておく箱みたいなものだと思っていてください。
そんでもって変数は計算を行うこともできます。変数内の値を足したり引いたり・・・と色々できます。
また変数にはいくつか種類があって、この種類を型といいます。変数の型には、よく使うもので・・・
このようなものがありますね。
まぁあとはlongとかshortとかbyteとかがあるかな。
変数という概念はC以外でもあっちこっちにあるので、結構言語によって色々な型があったりします。
なので、たくさんの言語を知っていると、こんがらがること必須ですが、その辺りは「慣れ」ですね。
それで変数の使い方ですが、変数は使用する前に、「変数の定義」をしなくてはありません。
これは、コンパイラに「このプログラムではこの変数を使いますよ」ということを教える為のもので、
変数を使う際には必ず変数ごとに必要な作業です。
変数の定義はプログラム上ででき、このように書くと変数の定義ができます。
型 変数名;
型は先程紹介した、intやchar等のところから使いたい型の種類を、選んで書いて
変数名の所には任意の文字を書いてください(半角英数一部記号が使えます。)
但し、最初の文字はアルファベットでないとコンパイルが通りません。
また、大文字、小文字は区別されますが、基本的に小文字を使うのが慣例です。
この辺りの理由はまた今度説明するかもです。
なので例と挙げるとこんな感じ。
int x;
char s;
float a;
double b;
これでint 型の変数xと、char型の変数sと、float型の変数aと、double型の変数bが定義されました。
これで例えば、
x=10;
とすることでxという変数に10という数字を入れることができます。
これを実際のプログラムにすると、
#include "stdio.h"
int main(void)
{
int x;
x=10;
return 0;
}
となります。最初の一行は今はおまじないと覚えていてください。また今度説明します。
プログラムは基本、int main(void)というもので囲われた中に書くことになります。
この辺りも今はおまじないで大丈夫です。
Cには最初の段階だと結構の頻度でおまじないが出てきます。
最初の段階でこのおまじないを理解しようとするとC言語はまず理解できなくなるので
あっちこっちの参考書でも、この辺をおまじないにする傾向は強いようです。
という訳でプログラムの中を説明します。
このプログラムではまずint型の変数xを定義して、そのあとでxに10を代入しています。
それだけの意味のないプログラムです。
(因みにreturn 0;も今の段階ではおまじないです。とりあえず書けば動く。それだけです。)
また変数の値を計算する場合は
足し算なら(x+10の結果をxに代入する)
x=x+10;
引き算なら(x-10の結果をxに代入する)
x=x-10;
かけ算なら(x×10の結果をxに代入する)
x=x*10;
割り算なら(x÷10の結果をxに代入する)
x=x/10;
と書くことができます。
だからこのプログラムだとxの値は
#include "stdio.h"
int main(void)
{
int x;
x=10;
x=x+10;//(この段階でx=20)
x=x-10;//(この段階でx=10)
x=x*10;//(この段階でx=100)
x=x/10;//(この段階でx=10)
return 0;
}
という訳でこのプログラムだと最終的にxは10になることになります。(あ。戻った(笑))
変数は基本的にこんな感じで使います。また変数の計算の方法や定義の方法はもっと短く書く方法などもありますが
今日はその辺りは省略させて頂きます。
とりあえず最初はこのくらいかな。
次は画面への表示の方法について書いていこうと思います。
(^・ω・)ノRadiumProduction in RoboCup Junior
今日はいきなりですが、変数というものについてのお話をしようと思います。
変数とは、まぁ所謂箱です。
プログラム上でいう箱なんです。
まぁ何を入れる箱かというと、具体的には値、即ち数値です。
ROBOLABでいうところのコンテナというやつです。
例えばセンサーの値だったり、時間の値だったり、まぁ色々です。
そういった数字を入れておく箱みたいなものだと思っていてください。
そんでもって変数は計算を行うこともできます。変数内の値を足したり引いたり・・・と色々できます。
また変数にはいくつか種類があって、この種類を型といいます。変数の型には、よく使うもので・・・
型 | 説明(簡易) |
char | 文字の格納に使われる。 |
int | 整数の格納に使われる。 |
float | 少数の格納に使われる。 |
double | 少数の格納に使われる。 |
このようなものがありますね。
まぁあとはlongとかshortとかbyteとかがあるかな。
変数という概念はC以外でもあっちこっちにあるので、結構言語によって色々な型があったりします。
なので、たくさんの言語を知っていると、こんがらがること必須ですが、その辺りは「慣れ」ですね。
それで変数の使い方ですが、変数は使用する前に、「変数の定義」をしなくてはありません。
これは、コンパイラに「このプログラムではこの変数を使いますよ」ということを教える為のもので、
変数を使う際には必ず変数ごとに必要な作業です。
変数の定義はプログラム上ででき、このように書くと変数の定義ができます。
型 変数名;
型は先程紹介した、intやchar等のところから使いたい型の種類を、選んで書いて
変数名の所には任意の文字を書いてください(半角英数一部記号が使えます。)
但し、最初の文字はアルファベットでないとコンパイルが通りません。
また、大文字、小文字は区別されますが、基本的に小文字を使うのが慣例です。
この辺りの理由はまた今度説明するかもです。
なので例と挙げるとこんな感じ。
int x;
char s;
float a;
double b;
これでint 型の変数xと、char型の変数sと、float型の変数aと、double型の変数bが定義されました。
これで例えば、
x=10;
とすることでxという変数に10という数字を入れることができます。
これを実際のプログラムにすると、
#include "stdio.h"
int main(void)
{
int x;
x=10;
return 0;
}
となります。最初の一行は今はおまじないと覚えていてください。また今度説明します。
プログラムは基本、int main(void)というもので囲われた中に書くことになります。
この辺りも今はおまじないで大丈夫です。
Cには最初の段階だと結構の頻度でおまじないが出てきます。
最初の段階でこのおまじないを理解しようとするとC言語はまず理解できなくなるので
あっちこっちの参考書でも、この辺をおまじないにする傾向は強いようです。
という訳でプログラムの中を説明します。
このプログラムではまずint型の変数xを定義して、そのあとでxに10を代入しています。
それだけの意味のないプログラムです。
(因みにreturn 0;も今の段階ではおまじないです。とりあえず書けば動く。それだけです。)
また変数の値を計算する場合は
足し算なら(x+10の結果をxに代入する)
x=x+10;
引き算なら(x-10の結果をxに代入する)
x=x-10;
かけ算なら(x×10の結果をxに代入する)
x=x*10;
割り算なら(x÷10の結果をxに代入する)
x=x/10;
と書くことができます。
だからこのプログラムだとxの値は
#include "stdio.h"
int main(void)
{
int x;
x=10;
x=x+10;//(この段階でx=20)
x=x-10;//(この段階でx=10)
x=x*10;//(この段階でx=100)
x=x/10;//(この段階でx=10)
return 0;
}
という訳でこのプログラムだと最終的にxは10になることになります。(あ。戻った(笑))
変数は基本的にこんな感じで使います。また変数の計算の方法や定義の方法はもっと短く書く方法などもありますが
今日はその辺りは省略させて頂きます。
とりあえず最初はこのくらいかな。
次は画面への表示の方法について書いていこうと思います。
(^・ω・)ノRadiumProduction in RoboCup Junior
以前のダイオードの記事の続きです。
前回はとりあえずダイオードの特徴についてさらっと書きました。
今回はダイオードの使い方・・というより使いどころについて書いていこうと思います。
まずダイオードの効果。これは電流を1方向にしか流さないということでしたね。
これを利用して回路を作るわけですが・・・
一番有名なのが整流回路でしょうか。
例えばコンセントのAC電源。これはご存じの通り、このような交流波形ですよね。
縦線が入っているところが0です。
縦軸が電圧、横軸が時間です。つまり時間によって送られている電圧が周期的に変化しています。
ここでこのような回路を作製すると
ここでAB間の電圧のグラフは
こんな風になります。
これは電圧がマイナスになる部分はダイオードによって遮断されるため、
プラスの部分の電圧しか流れないのでこのようになるのです。
また、このようにするとこうなります。
なんでこうなるかは・・・電流の流れを目で追っていけばわかるはずです。
とりあえず追ってみればわかると思いますよ。説明は省略します。
まぁダイオードは基本こんな感じで使います。あとは論理回路で使うかな・・・
まぁこの話はまた今度ということで
それでは。
次はダイオードの種類かな。
(^・ω・)ノRadiumProduction in RoboCupJunior
前回はとりあえずダイオードの特徴についてさらっと書きました。
今回はダイオードの使い方・・というより使いどころについて書いていこうと思います。
まずダイオードの効果。これは電流を1方向にしか流さないということでしたね。
これを利用して回路を作るわけですが・・・
一番有名なのが整流回路でしょうか。
例えばコンセントのAC電源。これはご存じの通り、このような交流波形ですよね。
縦線が入っているところが0です。
縦軸が電圧、横軸が時間です。つまり時間によって送られている電圧が周期的に変化しています。
ここでこのような回路を作製すると
ここでAB間の電圧のグラフは
こんな風になります。
これは電圧がマイナスになる部分はダイオードによって遮断されるため、
プラスの部分の電圧しか流れないのでこのようになるのです。
また、このようにするとこうなります。
なんでこうなるかは・・・電流の流れを目で追っていけばわかるはずです。
とりあえず追ってみればわかると思いますよ。説明は省略します。
まぁダイオードは基本こんな感じで使います。あとは論理回路で使うかな・・・
まぁこの話はまた今度ということで
それでは。
次はダイオードの種類かな。
(^・ω・)ノRadiumProduction in RoboCupJunior
といってもまだ基本中の基本ですけど。
とりあえず。書いていこうと思います。
例えばまずこんな簡単なプログラム。
#include "stdio.h"
int main(void)
{
printf("このブログは普通に読むと、どうも「酔う」らしいので読むときは酔い止め推奨です。 \n");
return 0;
}
こんなプログラムを打って、コンパイルして、実行してみると、
このブログは普通に読むと、どうも「酔う」らしいので読むときは酔い止め推奨です。
という文字が画面に出力されてプログラムが終了します。
まぁこのように、プログラムを使うことで、何かのデータを画面などに表示(出力)させることができます。
また、このようなプログラムを打つと
#include "stdio.h"
int main(void)
{
int i;
printf("値を入力してください。 \n");
scanf("%d",&i);
printf("入力された値は%dです。 \n",i);
return 0;
}
値を入力してください。
10
入力された値は10です。
という風な出力の結果が得られます。
まぁこのように、このプログラムではキーボード等からデータを受け取ること(入力)ができます。
また、このようなプログラムを書くと
#include "stdio.h"
int main(void)
{
int i;
printf("値を入力してください。 \n");
scanf("%d",&i);
i=i+10;
printf("入力された値は%dです。 \n",i);
return 0;
}
値を入力してください。
10
入力された値は20です。
と、このように、このプログラムでは、データ同士の計算(演算)をすることができます。
このように、大体のプログラムというものは、
・外部からのデータの入力
・入力された値を演算
・演算された結果を出力
この3つの動作の1パターンの連続で成り立っているものなのです。まぁ多少の例外はありますけど・・・。
という訳でまずは、この3つの動作を簡単に行うことのできるプログラムを使ってこの3つを説明していこうと思います。
でもその前に、データの入力をするにも、そのデータの演算をするにも、データの出力をするにも、
そのデータを保存する場所がなければ、データなんて扱えませんよね?
という訳で次回はこのデータを保存する場所。変数について書いていこうと思います。
それでは今日はこの辺で。
(^・ω・)ノRadiumProduction in RoboCup Junior
とりあえず。書いていこうと思います。
例えばまずこんな簡単なプログラム。
#include "stdio.h"
int main(void)
{
printf("このブログは普通に読むと、どうも「酔う」らしいので読むときは酔い止め推奨です。 \n");
return 0;
}
こんなプログラムを打って、コンパイルして、実行してみると、
このブログは普通に読むと、どうも「酔う」らしいので読むときは酔い止め推奨です。
という文字が画面に出力されてプログラムが終了します。
まぁこのように、プログラムを使うことで、何かのデータを画面などに表示(出力)させることができます。
また、このようなプログラムを打つと
#include "stdio.h"
int main(void)
{
int i;
printf("値を入力してください。 \n");
scanf("%d",&i);
printf("入力された値は%dです。 \n",i);
return 0;
}
値を入力してください。
10
入力された値は10です。
という風な出力の結果が得られます。
まぁこのように、このプログラムではキーボード等からデータを受け取ること(入力)ができます。
また、このようなプログラムを書くと
#include "stdio.h"
int main(void)
{
int i;
printf("値を入力してください。 \n");
scanf("%d",&i);
i=i+10;
printf("入力された値は%dです。 \n",i);
return 0;
}
値を入力してください。
10
入力された値は20です。
と、このように、このプログラムでは、データ同士の計算(演算)をすることができます。
このように、大体のプログラムというものは、
・外部からのデータの入力
・入力された値を演算
・演算された結果を出力
この3つの動作の1パターンの連続で成り立っているものなのです。まぁ多少の例外はありますけど・・・。
という訳でまずは、この3つの動作を簡単に行うことのできるプログラムを使ってこの3つを説明していこうと思います。
でもその前に、データの入力をするにも、そのデータの演算をするにも、データの出力をするにも、
そのデータを保存する場所がなければ、データなんて扱えませんよね?
という訳で次回はこのデータを保存する場所。変数について書いていこうと思います。
それでは今日はこの辺で。
(^・ω・)ノRadiumProduction in RoboCup Junior
もちろん一部地域限定ですが(笑)
その正体はこれ。
英語でカッコよく言うと「Magnetic Sensor」です。
まぁ実際にまぐまぐ呼ばれているのはNXTのセンサーではなくて市販のセンサーの方ですけど・・・。
このセンサー日本語に訳すと、磁石センサー?みたいにも思えますが、正しくは磁気センサー。
それも地磁気に特化した地磁気センサーのようです。(どこら辺が特化なのかわかりませんが(笑))
このセンサーはHiTechnic社のセンサーで、またまた他のセンサーと区別がつかない仕様となっています。
地磁気センサーなので、検知する対象はもちろん「磁場」です。一部では磁界と言ったりもするようですね。
まぁ英語でいうmagnetic fieldsのことだといえばわかりやすいでしょうか。日本語だとここらへん曖昧ですから・・・
磁場のことを磁界と言ったり磁界のとこを磁場と言ったり、磁場と言って実は磁束密度のことだったり・・・
とりあえずこの場合は単位は[A/m]の筈です。密度なんて調べてないはず・・・。
つまり、磁場の強さを測定しているセンサーなのですね。
・・・ということは。今まで皆様(というか僕が)今まで苦しんでいた、
所謂「会場の地磁気の違い」によるロボットの誤作動がこのセンサーを使えばなくせるかもしれない!
ということです。
興味のある方はぜひ使ってみることをお勧めします。
まぁNXTのコンパスセンサーにはこの機能が含まれていますが・・・
また、使う際にはオフセットをセットして基準磁場を作ってやらないといけません。
あとはI2Cのセンサー・・・と思いきやアナログみたいですよ。というぐらいが特徴ですかね。
でもオフセットの設定の際にI2Cを使用しているのかいないのか、とりあえず通信用の線は使用しているみたいです。
そのせいで測定速度が秒間300回と他のNXTのI2Cセンサーと変わりません。
こうなってくるとなんか、使ってあまりいいことないような気もしますが、
とりあえず使ってみればいいのではないでしょうか(投げやり)
それでは今日はこの辺で。
知らないうちに明日から試験1週間前だったり。
過去に紹介したLEGOセンサー↓
・NXTライトセンサー
・NXT3次元加速度センサー
・NXTタッチセンサー
・NXT超音波センサー
・RCXタッチセンサー
・NXT音センサー
・RCXライトセンサー
・バーニアNXTセンサアダプタV46
・RCX温度センサー
・NXT EOPDセンサー
・NXT IRLink
・NXT IRSeekerV2
・RCX角度センサー
・NXT角度センサー
・NXTコンパスセンサー
・NXT磁気センサー
・NXTジャイロセンサー
・NXT慣性センサー
・NXT RFIDセンサー
(^・ω・)ノRadiumProduction in RoboCupJunior
P.s因みにまぐまぐの由来はマグネットの「まぐ」だったりします。
その正体はこれ。
英語でカッコよく言うと「Magnetic Sensor」です。
まぁ実際にまぐまぐ呼ばれているのはNXTのセンサーではなくて市販のセンサーの方ですけど・・・。
このセンサー日本語に訳すと、磁石センサー?みたいにも思えますが、正しくは磁気センサー。
それも地磁気に特化した地磁気センサーのようです。(どこら辺が特化なのかわかりませんが(笑))
このセンサーはHiTechnic社のセンサーで、またまた他のセンサーと区別がつかない仕様となっています。
地磁気センサーなので、検知する対象はもちろん「磁場」です。一部では磁界と言ったりもするようですね。
まぁ英語でいうmagnetic fieldsのことだといえばわかりやすいでしょうか。日本語だとここらへん曖昧ですから・・・
磁場のことを磁界と言ったり磁界のとこを磁場と言ったり、磁場と言って実は磁束密度のことだったり・・・
とりあえずこの場合は単位は[A/m]の筈です。密度なんて調べてないはず・・・。
つまり、磁場の強さを測定しているセンサーなのですね。
・・・ということは。今まで皆様(というか僕が)今まで苦しんでいた、
所謂「会場の地磁気の違い」によるロボットの誤作動がこのセンサーを使えばなくせるかもしれない!
ということです。
興味のある方はぜひ使ってみることをお勧めします。
まぁNXTのコンパスセンサーにはこの機能が含まれていますが・・・
また、使う際にはオフセットをセットして基準磁場を作ってやらないといけません。
あとはI2Cのセンサー・・・と思いきやアナログみたいですよ。というぐらいが特徴ですかね。
でもオフセットの設定の際にI2Cを使用しているのかいないのか、とりあえず通信用の線は使用しているみたいです。
そのせいで測定速度が秒間300回と他のNXTのI2Cセンサーと変わりません。
こうなってくるとなんか、使ってあまりいいことないような気もしますが、
とりあえず使ってみればいいのではないでしょうか(投げやり)
それでは今日はこの辺で。
知らないうちに明日から試験1週間前だったり。
過去に紹介したLEGOセンサー↓
・NXTライトセンサー
・NXT3次元加速度センサー
・NXTタッチセンサー
・NXT超音波センサー
・RCXタッチセンサー
・NXT音センサー
・RCXライトセンサー
・バーニアNXTセンサアダプタV46
・RCX温度センサー
・NXT EOPDセンサー
・NXT IRLink
・NXT IRSeekerV2
・RCX角度センサー
・NXT角度センサー
・NXTコンパスセンサー
・NXT磁気センサー
・NXTジャイロセンサー
・NXT慣性センサー
・NXT RFIDセンサー
(^・ω・)ノRadiumProduction in RoboCupJunior
P.s因みにまぐまぐの由来はマグネットの「まぐ」だったりします。
3年生の工場見学の為に休業してました。
どうやら詰め込みの際に弁当を電気科のと情報科のを間違えたらしく、無駄に弁当の数が7個ほど余ってましたが・・・
(電気科一体どうしたんだろう?)
まぁ電気と情報では(最終的な)人気が違いますからね。この人数差は仕方ないですよね。(5人ほど違います。)
これでも上級学年に比べてば人数差は少ない方なんですよ。某5年機械なんて50人・・・(笑)
そんなこんなで。無事、戻って参りました。
もう今日は疲れたのでそろそろ寝たい・・・(笑)
あと、先週の金曜日にロボカップ部の部員の募集を「一応」締め切りました。
とりあえず現状としては、在籍が
5年生2人
4年生4人
3年生5人
2年生0人
1年生9人
という状態です。2年生なんてなかった(笑)
やっぱり一年生多いですね・・・今年は当たり年かなぁ。←何が
まぁ形上はこうなっていても、今実際にロボカップに来れる人は
5年生0人
4年生0人
3年生2人
2年生0人
1年生9人
だったりしていますけど(笑)
これ・・・大丈夫なのか?
もうこうなったら一年生のロボカップ経験者に頼るしかないですね。指導とか指導とか指導とか・・・。
(^・ω・)ノRadiumProduction in RoboCupJunior
どうやら詰め込みの際に弁当を電気科のと情報科のを間違えたらしく、無駄に弁当の数が7個ほど余ってましたが・・・
(電気科一体どうしたんだろう?)
まぁ電気と情報では(最終的な)人気が違いますからね。この人数差は仕方ないですよね。(5人ほど違います。)
これでも上級学年に比べてば人数差は少ない方なんですよ。某5年機械なんて50人・・・(笑)
そんなこんなで。無事、戻って参りました。
もう今日は疲れたのでそろそろ寝たい・・・(笑)
あと、先週の金曜日にロボカップ部の部員の募集を「一応」締め切りました。
とりあえず現状としては、在籍が
5年生2人
4年生4人
3年生5人
2年生0人
1年生9人
という状態です。2年生なんてなかった(笑)
やっぱり一年生多いですね・・・今年は当たり年かなぁ。←何が
まぁ形上はこうなっていても、今実際にロボカップに来れる人は
5年生0人
4年生0人
3年生2人
2年生0人
1年生9人
だったりしていますけど(笑)
これ・・・大丈夫なのか?
もうこうなったら一年生のロボカップ経験者に頼るしかないですね。指導とか指導とか指導とか・・・。
(^・ω・)ノRadiumProduction in RoboCupJunior
明日は工場見学。
学校8時集合だそうです。
遅刻した子は置いてけぼり・・・
置いてけぼり食らうと、恐怖の課題地獄なんだとか。コワイコワイ。
明日は何人地獄を見ることになるでしょうかね(笑)
今日の記事は、またまたNBCについてです。
とりあえず一番基礎的なライントレースができるようになった。という話を以前しました。
まぁこのライントレースプログラムについてちょっと書いていこうと思います。
今回、作製したプログラムは、ほんっとにライントレースの基本だけを行ったプログラムです。
センサーの数は3つ。ギャップや直角などの対応プログラムは一切入っていません。
っていうかそんなもの入れる気力がありません。
というのも・・・プログラムがこんなに長くなってしまうんです(笑)
これは、只普通に右のセンサーが黒くなったら右回転、
左のセンサーが黒くなったら左回転というプログラムしか入っていません。
なので実質使っているセンサーは2つですね(笑)
ちゃんと楽してNXCと同じ関数を使用したのにこの長さって・・・(笑)
やっぱりNXCと比べると格段に難しくなっているのがわかります。
でも、関数はNXCと同じですし、そもそもどういった動きをするかはわかっている訳なので、
見れば、大体何がどうなっているのかはわかりますよね。NXCの経験者なら・・・。
まぁこの辺は簡単だからいいのですけど、例えば配列だったり、関数に引数を使ってみたり、戻り値・・・なんてことになると
途端に意味不明になります。(それがASMです(笑))
これで本当にレスキューのプログラムが書けるのか・・・とてつもなく不安です。
あ。このプログラムのファイル挙げときますね。
それではー。
(^・ω・)ノRadiumProduction in RoboCupJunior
学校8時集合だそうです。
遅刻した子は置いてけぼり・・・
置いてけぼり食らうと、恐怖の課題地獄なんだとか。コワイコワイ。
明日は何人地獄を見ることになるでしょうかね(笑)
今日の記事は、またまたNBCについてです。
とりあえず一番基礎的なライントレースができるようになった。という話を以前しました。
まぁこのライントレースプログラムについてちょっと書いていこうと思います。
今回、作製したプログラムは、ほんっとにライントレースの基本だけを行ったプログラムです。
センサーの数は3つ。ギャップや直角などの対応プログラムは一切入っていません。
っていうかそんなもの入れる気力がありません。
というのも・・・プログラムがこんなに長くなってしまうんです(笑)
#include "NXTDefs.h"
//sensor set
#define kurosiro1 450
#define kurosiro2 450
#define kurosiro3 380
#define sirogin1 630
#define sirogin2 670
#define sirogin3 630
//vl set
dseg segment
motorA byte 100
motorC byte 100
curveA byte 100
curveC byte 100
sensor_1vl sword
sensor_2vl sword
sensor_3vl sword
dseg ends
//fnc set
subroutine FRONT
OnFwd(OUT_A,motorA)
OnFwd(OUT_C,motorC)
return
ends
subroutine BACK
OnRev(OUT_A,motorA)
OnRev(OUT_C,motorC)
return
ends
subroutine RIGHT
OnFwd(OUT_A,curveA)
OnRev(OUT_C,curveC)
return
ends
subroutine LEFT
OnRev(OUT_A,curveA)
OnFwd(OUT_C,curveC)
return
ends
//main
thread main
dseg segment
dseg ends
SetSensorType(IN_1,IN_TYPE_REFLECTION)
SetSensorType(IN_2,IN_TYPE_REFLECTION)
SetSensorType(IN_3,IN_TYPE_REFLECTION)
Loop:
ReadSensor(IN_1,sensor_1vl)
sub sensor_1vl, kurosiro1,sensor_1vl
ReadSensor(IN_2,sensor_2vl)
sub sensor_2vl, kurosiro2,sensor_2vl
ReadSensor(IN_3,sensor_3vl)
sub sensor_3vl, kurosiro3,sensor_3vl
NumOut(1,LCD_LINE1,sensor_1vl)
NumOut(1,LCD_LINE2,sensor_2vl)
NumOut(1,LCD_LINE3,sensor_3vl)
call FRONT
brtst GT,Loop,sensor_2vl
brtst GT,curvel,sensor_1vl
brtst GT,curver,sensor_3vl
jmp Loop
curvel:
call LEFT
jmp Loop
curver:
call RIGHT
jmp Loop
endt
これは、只普通に右のセンサーが黒くなったら右回転、
左のセンサーが黒くなったら左回転というプログラムしか入っていません。
なので実質使っているセンサーは2つですね(笑)
ちゃんと楽してNXCと同じ関数を使用したのにこの長さって・・・(笑)
やっぱりNXCと比べると格段に難しくなっているのがわかります。
でも、関数はNXCと同じですし、そもそもどういった動きをするかはわかっている訳なので、
見れば、大体何がどうなっているのかはわかりますよね。NXCの経験者なら・・・。
まぁこの辺は簡単だからいいのですけど、例えば配列だったり、関数に引数を使ってみたり、戻り値・・・なんてことになると
途端に意味不明になります。(それがASMです(笑))
これで本当にレスキューのプログラムが書けるのか・・・とてつもなく不安です。
あ。このプログラムのファイル挙げときますね。
それではー。
(^・ω・)ノRadiumProduction in RoboCupJunior
たまたま今日午後、秋葉に行ったのですが。
そんでたまたま、秋月に行ったんですね。
そしたらこんなものが・・・
こんなPIC、みたことない。
初めて見る系列のPICが店頭にあったので買ってきちゃいました。PIC16Fって887までじゃなかったのか・・・
調べてみたら、どうにもPICを販売しているMicrochip社がつい最近、
新しいPICを短期間に何種類も市場に投入したことがわかりました。
つまり、これはその時に発売された新型のPICのひとつという訳ですね。道理で知らないわけだ・・・
もちろんまだ詳細なデータは調べていません。でも18Fや24F、DS30F やDS33F、
さらには32bitのPIC32MXまで発売したというのに今更PIC16Fの最新機って・・・どうなんだろう。
でも大きな特徴は、とにかく安い。
今までの同サイズのPICと比べると、200円も安くなっています。
16F873と比べたら3倍以上値段が違いますよ・・・これは凄い・・・
まぁその分なんか性能が残念なんでしょう。どうせ16Fだし・・・
でもなんか面白そうなので、ちょっと遊んでみようと思います。
それでは。
P.sナメててスンマセン。やっぱりほかの16Fとは桁違いでした。
これ、普通に使えますね。
そんでたまたま、秋月に行ったんですね。
そしたらこんなものが・・・
こんなPIC、みたことない。
初めて見る系列のPICが店頭にあったので買ってきちゃいました。PIC16Fって887までじゃなかったのか・・・
調べてみたら、どうにもPICを販売しているMicrochip社がつい最近、
新しいPICを短期間に何種類も市場に投入したことがわかりました。
つまり、これはその時に発売された新型のPICのひとつという訳ですね。道理で知らないわけだ・・・
もちろんまだ詳細なデータは調べていません。でも18Fや24F、DS30F やDS33F、
さらには32bitのPIC32MXまで発売したというのに今更PIC16Fの最新機って・・・どうなんだろう。
でも大きな特徴は、とにかく安い。
今までの同サイズのPICと比べると、200円も安くなっています。
16F873と比べたら3倍以上値段が違いますよ・・・これは凄い・・・
まぁその分なんか性能が残念なんでしょう。どうせ16Fだし・・・
でもなんか面白そうなので、ちょっと遊んでみようと思います。
それでは。
(^・ω・)ノRadiumProduction in RoboCupJunior
P.sナメててスンマセン。やっぱりほかの16Fとは桁違いでした。
これ、普通に使えますね。
前回のProgramの記事はコンパイラの話で終了しました。
なので今日はそれの続きで、いよいよCnによるプログラムについての記事を書こうと思ったのですが、
よく考えたら作るにも開発環境がないことに気が付いてしまいました。
僕のPCに(笑)
という訳で急きょカテゴリーを変更して、Cプログラムを書くための環境(ソフト)を紹介しようという路線に変更しました。
とりあえずいくつか紹介しようと思います。
まずはEmacs。
うちの学校では「エマックス」と呼んでいますが、正式には「イーマックス」です。
元々はテキストエディタで、うちの学校ではこれを使ってプログラムを書いています。
まぁこれは開発環境というかどうかは微妙ですが・・・
開発環境というと、プログラムを書くエディタとコンパイラとデバッカと・・・
って全部そろったものをいうような気がしますからね。
これはエディタだけですから・・・
でもユーザーを見てみると、断然プログラミングに使われている場合が殆どです。
これの場合はインストールしたら普通のメモ帳みたいにプログラムを書いて保存して、
そのあとで手動でコンパイラにファイルをぶっこんでコンパイルさせることになります。
実行も手動で、この辺のことはEmacsではサポートされていません。
非常に書きやすいですが、ちょっと初心者には難しいかも・・・
基本的にUNIX系列のものですがWinでも使えますよ。
次に学習用C言語開発環境。
これはちゃんと一通りセットになっています。
これなら初心者でもわかりやすい・・・筈!
とりあえず一番これが楽です。
只、結構無名なソフトなので、何かあった時に対処ができなくなるかも知れません。
まぁその時は諦めて再起動してください。
コンパイラはGCC、(らしい)
また起動にはNET Framework Version 2.0が必要です。
最後に一番有名であろうMicrosoft Visual Studio。
通称「ビス」。一部地域ではMVSだそうです。
一番ポピュラーかつ本格的な環境です。
普通にプロのプログラマーが使うようなレベルの環境ですが、初心者でも十分扱えるという優れものです。
色々と系列がありますが、C言語をやる場合はその中のVisual C++というものを使います。
これはC言語とC++という言語に対応しています。C++はよく知らないので割愛します(笑)
1年上の先輩までは授業でやってたらしいですが、僕らの代からCになったのでやってない・・・
もちろんエディタからコンパイル、エラー表示も実行、そしてデバッグもすべて行ってくれます。
しかもMSの純正なので情報もサポートもばっちり!まずこのソフトで迷うことはないでしょう。
でもこれだけ優れたビスですから・・・お高いんでしょう?
なんてことはありません。完全無料です。ちょっとMSへの登録が必要ですけど・・・
いくらスカイプを有料声明をだしたMSとはいえ、ビスは無料で使えますよ。
只、問題が一つ。
現在公開されているのは、2010版ですが、ここで重要なことが・・・
「2010版は使うな。」
危険・・・というよりバグの塊みたいなものです。うちの高専でも起動すらできない人が続出しました。
とにかく酷いです。あれだけは使い物になりません。
アップデートで直ってるかな?でもとりあえずまだ使えなはずです。
という訳でビスを使う際は2008とか2005とかの古いバージョンを探して使ってください。2003でも大丈夫です。
どうやらちゃんと動くそうです。
よくわからんっ!
とりあえずこんな感じかな。興味のある方はちょっと入れてみればいいんじゃないかなぁ(笑)
それではー。
今度こそCの記事書くぞー
(^・ω・)ノRadiumProduction in RoboCupJunior
なので今日はそれの続きで、いよいよCnによるプログラムについての記事を書こうと思ったのですが、
よく考えたら作るにも開発環境がないことに気が付いてしまいました。
僕のPCに(笑)
という訳で急きょカテゴリーを変更して、Cプログラムを書くための環境(ソフト)を紹介しようという路線に変更しました。
とりあえずいくつか紹介しようと思います。
まずはEmacs。
うちの学校では「エマックス」と呼んでいますが、正式には「イーマックス」です。
元々はテキストエディタで、うちの学校ではこれを使ってプログラムを書いています。
まぁこれは開発環境というかどうかは微妙ですが・・・
開発環境というと、プログラムを書くエディタとコンパイラとデバッカと・・・
って全部そろったものをいうような気がしますからね。
これはエディタだけですから・・・
でもユーザーを見てみると、断然プログラミングに使われている場合が殆どです。
これの場合はインストールしたら普通のメモ帳みたいにプログラムを書いて保存して、
そのあとで手動でコンパイラにファイルをぶっこんでコンパイルさせることになります。
実行も手動で、この辺のことはEmacsではサポートされていません。
非常に書きやすいですが、ちょっと初心者には難しいかも・・・
基本的にUNIX系列のものですがWinでも使えますよ。
次に学習用C言語開発環境。
これはちゃんと一通りセットになっています。
これなら初心者でもわかりやすい・・・筈!
とりあえず一番これが楽です。
只、結構無名なソフトなので、何かあった時に対処ができなくなるかも知れません。
まぁその時は諦めて再起動してください。
コンパイラはGCC、(らしい)
また起動にはNET Framework Version 2.0が必要です。
最後に一番有名であろうMicrosoft Visual Studio。
通称「ビス」。一部地域ではMVSだそうです。
一番ポピュラーかつ本格的な環境です。
普通にプロのプログラマーが使うようなレベルの環境ですが、初心者でも十分扱えるという優れものです。
色々と系列がありますが、C言語をやる場合はその中のVisual C++というものを使います。
これはC言語とC++という言語に対応しています。C++はよく知らないので割愛します(笑)
1年上の先輩までは授業でやってたらしいですが、僕らの代からCになったのでやってない・・・
もちろんエディタからコンパイル、エラー表示も実行、そしてデバッグもすべて行ってくれます。
しかもMSの純正なので情報もサポートもばっちり!まずこのソフトで迷うことはないでしょう。
でもこれだけ優れたビスですから・・・お高いんでしょう?
なんてことはありません。完全無料です。ちょっとMSへの登録が必要ですけど・・・
いくらスカイプを有料声明をだしたMSとはいえ、ビスは無料で使えますよ。
只、問題が一つ。
現在公開されているのは、2010版ですが、ここで重要なことが・・・
「2010版は使うな。」
危険・・・というよりバグの塊みたいなものです。うちの高専でも起動すらできない人が続出しました。
とにかく酷いです。あれだけは使い物になりません。
アップデートで直ってるかな?でもとりあえずまだ使えなはずです。
という訳でビスを使う際は2008とか2005とかの古いバージョンを探して使ってください。2003でも大丈夫です。
どうやらちゃんと動くそうです。
よくわからんっ!
とりあえずこんな感じかな。興味のある方はちょっと入れてみればいいんじゃないかなぁ(笑)
それではー。
今度こそCの記事書くぞー
(^・ω・)ノRadiumProduction in RoboCupJunior
( うちの部活の場合)、答えは「ダイオード」です。
という訳で今日はダイオードの紹介をしようと思います。
ダイオード、英語で書くとDiode。一体どんなものなのでしょう。
またこれ外観は、
こんなのだったり
こんなのだったり
こんなのだったり
こんなのだったり
します。
基本の回路図記号はこんな感じです。
種類が変わると微妙に変わってきます。
それで、ダイオードは何ができるかといいますと、電流、電圧の方向の制限と電流量の制限の2つです。
よく「ダイオードの整流作用」等という言葉を聞く場合がありますが、これは電流、電圧の方向制限の応用です。
まず一つ目の電流、電圧の方向の制限についてですが、これは簡単に申しますと、
ダイオードの一番大きな特徴、というよりダイオードの存在意義でもある、
「電流を1方向にしか流さない」という特徴を表しています。
要するに上の回路図記号でいうと、左から右には電流を通すけど、右から左には電流を通さないということです。
つまりこれだと電気が流れて、
これだと流れないという訳です。
基本的にはそれだけです。
まぁ下の回路図でも、ある一定上の電圧をかけると急に電気が流れるようになる特性も持ってたりしますが
この辺はややこしいので今は省略します。
次の電流量の制限ですが、これは簡単に、ダイオードに流せる電流量は決まっているので、
上の回路図では、回路の電流の量がダイオードによって決まっちゃいますよ。ってことです。
ダイオードによって、10mAだったろ20mAだったり1Aだったり・・・と決められています。
この値は実際に回路を作ってみるか、ダイオードの仕様を調べるかしないとわかりません。
基本的には後者を行いますけど・・・いきなり実験だなんて勇者すぎます。
因みにダイオードにも当然、内部抵抗があるので、電圧降下が発生します。
電圧降下っていうのは以前書いたように、
上の回路でいうダイオードと抵抗の間とGND(マイナス極)の電位差(電圧の差)や、
Vcc(プラス極)とダイオードと抵抗の間のように1素子の両端の電位差のことです。
この電位差が素子内で落ちている電圧なので電圧降下と呼ばれているはずです。
ここでこの電圧降下量についての話ですが、
さっき電流量は一定だということを説明しました。内部抵抗はもちろん一定なので
オームの法則から、電流と抵抗が一定なので電圧も一定になることがわかります。
よって電圧降下量は一定。ダイオードの電圧降下は一定値になることがわかります。
この値ですが、大体0.6~0.7Vのものから2V近くのものやこれを超えるものまで結構いろいろあったりします(笑)
ダイオードを使う際にはこの値にも注意してくださいね。
まぁこんな感じのダイオード。どんな時に使うのかな;ぁ。ということは次回に回したいと思います。
ダイオードのがなんなのかがわかったところで今日はこの辺で。それではマター。
(^・ω・)ノRadiumProduction in RoboCup Junior
という訳で今日はダイオードの紹介をしようと思います。
ダイオード、英語で書くとDiode。一体どんなものなのでしょう。
またこれ外観は、
こんなのだったり
こんなのだったり
こんなのだったり
こんなのだったり
します。
基本の回路図記号はこんな感じです。
種類が変わると微妙に変わってきます。
それで、ダイオードは何ができるかといいますと、電流、電圧の方向の制限と電流量の制限の2つです。
よく「ダイオードの整流作用」等という言葉を聞く場合がありますが、これは電流、電圧の方向制限の応用です。
まず一つ目の電流、電圧の方向の制限についてですが、これは簡単に申しますと、
ダイオードの一番大きな特徴、というよりダイオードの存在意義でもある、
「電流を1方向にしか流さない」という特徴を表しています。
要するに上の回路図記号でいうと、左から右には電流を通すけど、右から左には電流を通さないということです。
つまりこれだと電気が流れて、
これだと流れないという訳です。
基本的にはそれだけです。
まぁ下の回路図でも、ある一定上の電圧をかけると急に電気が流れるようになる特性も持ってたりしますが
この辺はややこしいので今は省略します。
次の電流量の制限ですが、これは簡単に、ダイオードに流せる電流量は決まっているので、
上の回路図では、回路の電流の量がダイオードによって決まっちゃいますよ。ってことです。
ダイオードによって、10mAだったろ20mAだったり1Aだったり・・・と決められています。
この値は実際に回路を作ってみるか、ダイオードの仕様を調べるかしないとわかりません。
基本的には後者を行いますけど・・・いきなり実験だなんて勇者すぎます。
因みにダイオードにも当然、内部抵抗があるので、電圧降下が発生します。
電圧降下っていうのは以前書いたように、
上の回路でいうダイオードと抵抗の間とGND(マイナス極)の電位差(電圧の差)や、
Vcc(プラス極)とダイオードと抵抗の間のように1素子の両端の電位差のことです。
この電位差が素子内で落ちている電圧なので電圧降下と呼ばれているはずです。
ここでこの電圧降下量についての話ですが、
さっき電流量は一定だということを説明しました。内部抵抗はもちろん一定なので
オームの法則から、電流と抵抗が一定なので電圧も一定になることがわかります。
よって電圧降下量は一定。ダイオードの電圧降下は一定値になることがわかります。
この値ですが、大体0.6~0.7Vのものから2V近くのものやこれを超えるものまで結構いろいろあったりします(笑)
ダイオードを使う際にはこの値にも注意してくださいね。
まぁこんな感じのダイオード。どんな時に使うのかな;ぁ。ということは次回に回したいと思います。
ダイオードのがなんなのかがわかったところで今日はこの辺で。それではマター。
(^・ω・)ノRadiumProduction in RoboCup Junior
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(01/03)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
プロフィール
HN:
Luz
性別:
男性
アーカイブ