忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[41]  [42]  [43]  [44]  [45]  [46]  [47]  [48]  [49]  [50]  [51
昨日の話になりますが、部室でのんびりとライトセンサーを作っていました。

使っていたのは此方のセンサー。
もう何度も登場している此方のフォトリフレクタ。ようやく本格的に使用します。
これを並べて基盤につけて、増幅回路を乗っけて・・・なんて作業を行なっていました。

まぁとにかく今回も回路構成が気持ち悪いことになって、

なぜかトランジスタと基盤の隙間にはんだ流し込んだりと、意味不明なはんだづけを数多くやったような・・・。


なんか設計・・・というよりコンセプトを根本から間違えたような気がします。

そんなことがあったので、正直昨日は死にかけていました(笑)

もうはんだは見たくない気分です(笑)


因みに今はとある楽曲のRemixやってます。なんでこんなことしてるんだろう。


(^・ω・)ノ RadiumProduction in RoboCup Junior
事故った非常に事故った。

というのも、何が起きたのかはわかりませんが、

また新入部員が2人増えたらしいです(笑)

しかも、他にもうちを検討している一年生は3~4人いるんだとか。


えっと・・・・これで一年生は全部で9人?去年の11人に負けず劣らず卑怯な人数していますよね。

一昨年まで10人いなかった極小部活が、たった2年で20人超の超巨大勢力に。

生徒の部活所属率が極端に低い産技高専品川では、この人数はどう考えても巨大勢力です(笑)

っていうか・・・


5年生 0人
4年生 4人
3年生 0人
2年生 9人
1年生 9人

明らかにこの比率はおかしいような・・・。一昨年あたりから確実に事故が発生していますね。高学年がいないという惨事。

まぁこの惨事を巻き起こしたのがどっかの勧誘科のヒトと、

このチラシです。
去年作成したロボカップ研究部のチラシです。一体これにどんな魔力があったのでしょうね?
去年このチラシをばらまかせた結果、部員が異常繁殖を起こしました(笑)

そして今年も・・・。


副部長の才なのか、チラシの効果なのか、真相は不明ですが、とにかく部員が大量にやってくるんです。
実際このチラシをパクった・・・というか再加工して作成された電気通信部のチラシも、巻いてからすぐに新入部員が増えましたからね。
ロボカップと電通のチラシを並べてみた。さすが電通キタナイ!
さて、この謎の効果を生むチラシ、一体どんなソフトで作成したかといいますと・・・


そう、あの有名な「ペイント」です。

Windows7で急にクオリティが上がって世界中を驚かせたことでも有名ですよね。

これでちょちょちょーっと書いて、消して、描いて、副部長に配布作業を投げたんですが・・・

その結果が沢山の新入部員です。


まぁ副部長の場合、去年はプロ研から、今年はロボコンから部員をかっさらったという

非常に「汚い」というか、えげつない手法で部員を増やしたりもしていますから、綺麗な勧誘ではなかったのですが・・・

それでもこの人数はよく集まったものですよね。
流石にロボコン部室の前で待機して、ロボコンの見学から出てきた一年生をこっちに拉致なんて手法はどうかと思いますが・・・

去年度の終わり頃に、新入部員、くるかなぁ。一人来ればい良い方だよね。なんて言っていた頃がバカみたいですね。



という訳で今日はそんな新入部員がどんどん増えているという報告でした。いつ人数確定するんだろう。

(^・ω・)ノ RadiumProduction in RoboCup Junior
いろんな人が回路を作っているのを見ていて思うのは、

やっぱり回路には設計者の性格が出る、という点でしょうか。


キタナイ人はキタナイ回路、キチガイな人にはキチガイな回路。

変態は変態なりに変態な回路を作るものです。

現状のロボカップ部もそれなりにみんなキチガイなので、生まれてくる回路も当然キチガイなものが多いです。

まぁその原因のほとんどはうちのロボカップ部の部員はみんなパターン図を書かないからなんですけど・・・


そんな中、今回のPIC回路は、本当に数年ぶりにちゃんとパターン図を書いて作ってみました。

そのおかげで大分まともな回路にはなりましたけど・・・やっぱり線の数がなんか変です(笑)

こんな感じになりました。
今回作成した・・・というか作成途中のPIC回路です。PICが見えない・・・
一見何も無いようにも見えますが、この連結ピンの数、明らかに事故の臭いがします。

しかも2段構造なのでPICがほとんど見えていない・・・ということで横からの写真も。
PIC回路横から見るとこうなります。えぐいです。
ずらーっと並ぶピンヘッダ。そして2つのPIC16F1939、出せるI/Oピンを全て投入した結果こんなことになりました。

めんどくさくなったので殆どのピンにはコネクタを付けていません。費用削減のためにコード直繋ぎでいこうと思います。

でもちゃんとピンの配線までは行なっているので、2枚目の裏の配線はとんでもないことになっています。



まぁそんなこんなでちゃんと動作するPICのメイン基盤が完成しました。まぁまだメイン基板しか無いので何も出来ませんけど・・・。

こっからあれやこれやと投入してキチガイ基盤を量産する予定です。

産技祭用のキチガイ基盤の作らないとだし・・・最近回路の仕事が多いです(笑)


(^・ω・)ノ RadiumProduction in RoboCup Junior
今回は文字列についての記事です。

まずは文字について、

例えば、文字といえば、a、b、cこんな感じですよね。

C言語における文字というのは半角英数一文字を指します。

この文字というもの、0と1しか理解出来ないコンピューターに理解させる為にはどうしましょうか。

0と1となると2進数、2進数は数字ですよね。

つまり文字を数字に置き換えてやればいいですよね。

という訳でCに限らず、プログラミングにおいては、文字は数字で表現します。

だから例えばaをコンピューターで表す時には0を使って、bを表す時は1を使って・・・と決めることで、コンピューター上で文字を扱えるようにしている訳ですね。


具体的には文字ひとつで1バイト、つまり0から255までの数字で表現されています。

この文字と数字の対応を決定しているのが、所謂文字コードというものです。
文字化けとかの原因はこの文字コードの設定の不一致によるものですよね。

まぁ文字コードにも色々ありますが、C言語だと、半角英数にはASCIIを、全角にはシフトJISが使われます。

だから、コンピューター上で文字を表す時はこの文字コードに従って数字を入力すればいいわけです。

まぁでも流石にそれはいちいちコードを調べなくてはいけないので面倒ですよね。

という訳で、C言語では、文字は'a'という風に、'で囲ってやることで、表現できるようになっています。


文字を変数に入れる場合はchar型の変数を使用します。

例えばこんなふうに

char c = 'a';

これでaが変数cに代入されました。

この状態で出力を行うと・・・

printf("%c",c);

aという文字が出力されます。char型変数を使う際には%cを使うところはもう大丈夫ですよね。


これが文字です。

では文字列とは何でしょうか。

文字の列、文字の集まり、

つまり、abc等の二文字以上の文字の並びのことですね。

この場合の扱いはどうなるでしょうか。

実はC言語には、文字を扱う変数はありますが、文字列を扱う変数はないんです。

つまり、他の変数のような使い方はできないんです。

ならどのようにするか、という話ですが、変数を使って順列のデータを操作する方法が2種類程ありましたよね。

例えば、配列、例えば、ポインタ

こういったものがそれに該当します。

と、いうことは・・・コンピューター上では文字列はchar型の配列やポインタで表現できるということです。

つまり、配列で考えると、1要素ごとに文字列の一文字分が格納されることになるわけですね。


只、ここで気をつけないといけない点は、配列を使う際とポインタを使う際では微妙に扱いが異なってきてしまうのです。

次回は、この配列の時とポインタの時の違いをプログラムを書きながら紹介していこうと思います。

それでは今回はこの辺で。

(^・ω・)ノ RadiumProduction in RoboCup Junior
それにしても最近、周りの部活との交流がかなり盛んになっているような・・・

どこもかしこも協定結びまくっているような・・・。気のせいでしょうか。



今日は昨日の続き、例のPIC回路の続きです。

といっても、一日かかってまだハンダ付けの途中で終わってしまいました(笑)

まぁ後コネクタ一つなので、明日にはこっちの基盤は終わるであろうと推測されています。

と思ったけど明日は会議なので進展はないでしょうね(笑)じゃあ明後日完成かな?

何れにしてもまだまだ作る基盤は沢山あるので、暫くははんだごてとの生活が続きそうですね。

それでは今日はこの辺で。


(^・ω・)ノ RadiumProduction in RoboCup Junior
今回の記事は電池の話の続きです。

前回の記事では、ニカド電池とニッケル水素電池について記述しました。

これらの電池は何れもひと昔前は充電池の主流でした。

しかし現在の電子機器、携帯やスマートフォンにはこれらの電池は
使われていません。

では、どんな電池が使われているのでしょうか?

その答えはリチウム電池です。

リチウム電池とは、従来の充電池とは、全く違う、新しい種類の充電池です。

何種類かありますが、ますばその具体的な特徴について紹介します。

まずは1セル辺りの電圧、普通の乾電池やニカド、ニッ水はだいたい1セル辺り1.2〜1.5vでしたよね。

それに対し、リチウムイオン電池はだいたい3.6〜3.7v、倍以上の電圧がだせることになります。

そして流せる電流量も多く、同サイズのニカドやニッ水とは桁が違う・・・訳ではありませんが、

大体1.5〜2倍くらいはいけるはずです。

そしてメモリー効果も極端に少なく、メモリー効果によって使えなくなることはそうそうないでしょう。

また、継ぎ足し充電も自在に行え便利です。

あと大きな特徴が、軽いということでしょうか。

同サイズの他電池と比べても半分以下の重量だったりもします。

まぁそういった理由から、今では二次電池は殆どリチウム系の電池が市場を占めています。


只、リチウム電池には弱点もあります。

まずは温度。

メモリー効果が殆どない代わりに電池自体の温度上昇によって出力の低下やメモリー効果のような現象が起きます。
そのくせリチウム電池自体は他の電池より発熱しやすいっていうんだからめんどくさい。

まぁこれはスマートフォンがあったかくなる一番の原因だったりしますよね。

因みにこうなると電池が膨らむので割りとわかりやすいです。


あとは完全放電すると使い物にならなくなる点でしょうか。

だから使用する際には、電池残量に注意しないといけません。


あとは・・・ショートさせると非常に危険です。最悪電池が爆発することもあります。

よく聞く某りんご社のPCの爆発は殆どこれが原因ですね。


まぁこのように、便利な反面、とても危険である電池がリチウム系の電池という訳です。

便利だけど危険・・・どっかで聞いたことがあるような・・・
この電池も危険であるということがもっと世に知られていれば、ここまで普及する前に反対運動とかで撤廃されていたかも知れませんね・・・


まぁそんなリチウム電池ですが、

実は二次電池のリチウム電池には大きく分けて三種類あります。
リチウムには一次電池もあるんですよね。

一つはリチウムイオン電池
Li ionなんて表記されていると思います。

リチウム電池の中では安全な部類で、燃えることはあっても爆発まではそうそうしないでしょう。

リチウム系の電池の最初期のものなので、型落ちしたパソコンや小型機器のバッテリーなんかに使われています。

通常電池のセルは乾電池みたく丸い形状をしているのでなかなか電池を使う機器は小型化できなかったのですが、

リチウム系の電池はセル自体が平べったいパック状になっているので、

充電池に採用することで、機器を驚異的に薄くすることができるようになったりした背景があったりなかったり


そして次はリチウムイオンポリマー電池

Li-poなんて表記がされているはずです。

で、この電池ですが、

ヤバイです。うちの高専では爆弾と等価に扱っています。

と、いうのも・・・

あ、ショートしちゃった。

どかーん

昔ここにロボカップ部の部室があったんだけどね・・・。

なんていう自体になりかねないくらい危険です。

そんな危険な電池ですが、どのような所に使われているかと言いますと、

例えば、大多数のノートパソコンとか、

殆どのデジカメとか、

NXTとか(笑)


それぐらい身近な電池だったりします。

素材はリチウムイオン電池と同じですが、セル内はゲル状になっていて、高密度のポリマーになっています。

要するにリチウムイオン電池を高密度にしたものがリチウムイオンポリマー電池という訳です。

高密度なので、もちろん普通のリチウムイオン電池よりサイズ辺りの容量が大きくなります。

なので大容量かつ軽量な電池になる特徴があります。

そういった理由から様々な機器に使用されています。


そして3つ目はリチウムフェライト電池

Li-Feなんて表記されます。

フェライトですから、鉄が混ざっている電池になります。

リチウム系の電池だと一番新しい・・・というか、つい最近でてきた種類の電池です。

家電に使われているのはまだ僕は見たことないです。ラジコンバッテリーなんかだと最近増えてきましたよね。

その特徴は、自己放電が全く起きない、メモリー効果がゼロ、急速充電が可能、そして爆発しない。

これまでのリチウム系の弱点をかなりもみ消した仕様になっていますね。リポと同様の出力でこの便利さは素晴らしいですね。

只ちょっとお高いという弱点がありますが・・・。



以上がリチウム系の電池の紹介です。

因みにうちの部では大多数の充電池がリポになっています。爆弾だらけですね。

(^・ω・)ノ RadiumProduction in RoboCup Junior
ぶいーん。ただいま例の電ノコで基盤を切っています。


今日はあっという間に実験が終わってしまったので割りと暇でした。

という訳で取り組んだのが、

例の16F1939基盤の拡張です。

というのも、この基盤、40ピンのPICが2つも乗っているせいで無駄にI/Oピンが多いんです。

全体だと60以上あるんじゃないかな。多すぎます。


まぁ勿論こんな数、実装できるはずもないので

基盤は2段に分けてI/Oピンやらなんやらはそっちの方からだしていくようになりました。


それでも回路図も自力ではんだづけするには狂っているぐらい面倒な基盤になってきています。

回路図も完成しないまま、回路作成に入ったりもしましたが、全然完成する気配がありません。
っていうかこれ本当に出来るのか・・・?


とにかく毎度のことですが、キチガイな基盤が出来る方向なのはまず間違いないでしょうね・・・。

それでは今日はこのへんで。できたらまた報告します。これは一日二日じゃムリだろうなぁ。レポートあるし。


(^・ω・)ノ RadiumProduction in RoboCup Junior
どうやら600回目の記事は成功報告という割と明るい記事になりそうです。


電磁気の授業で死んだ後、放課後。

とりあえず昨日告知したNXTPICI2C通信をやってみることにしました。
NXTとPICを繋いでみました。左の巨大なセラコンはあれです。後輩の戦いの軌跡です。

まぁ予想通りあっという間に終わりました。僕が寝ぼけていたせいで無駄に1時間ほど持っていかれましたけど・・・。

NXTの方は普通に普通の1.27で、PICは例の16F1823で行いました。14ピンの小型のヤツですね。


とりあえず、NXTからデータを送ったり、PICからデータを送ったり。色々してみましたが、

まぁまぁなんの問題もなく無事に通信できていました。


という訳で今日はそれを終わらせて、後はのんびりと・・・何してたっけ。ちょっと思い出せませんねぇ・・・。

うん。きっとそのまますぐ帰ったんですよね。うん、きっとそうだ。



そんな感じで今日はNXT-PICI2C通信のお話でした。別に特記するようなことでもないね。

それでは今日はこのへんで。

(^・ω・)ノ RadiumProduction in RoboCup Junior
今回はポインタの続きです。

前回までで、ポインタと変数の関係についてつらつらと書いていったかと思います。

今回の記事ではここら辺を実際のプログラムを使ってもう一度書いていこうと思います。

と、いう訳で早速プログラムです。

int main(void)
{
int x=5;
int y=2;
int *p;
printf("%d",x);
printf("%p",&x);
p=&x;
printf("%d",*p);
printf("%p",p);
p=&y;
printf("%d",*p);
printf("%p",p);

return 0;
}

例えばこんなプログラムがあったとしましょう。

まず一番目のprintfでは、xの値である5が出力されるのは大丈夫ですね。

じゃあ二番目のprintfは何でしょう。

二番目のprintfは変数xのアドレスになりますので、


わかりません(笑)


変数のアドレスがどうなるかは、その時のメモリーの空き具合によって変わりますので、

プログラムを実行する度に変わってきてくるのです。

因みにアドレスを出力する際には%pを使います。

そして三番目のprintf、ここでは前にpにxのアドレスを代入していることから、これはxの値である5が出力されます。

同様に四番目のprintfは・・・xのアドレスなので此方も不明ですね。

まぁ、二番目のprintfの結果と同じ値が出力されることになります。

そして五番目、ここでは、既にpに新たな変数yのアドレスが代入されていますね。

ということは、ここで出力されるのは、yの値である2になる訳です。

同様に六番目のprintfは変数yのアドレスになります。これもxと同様に数値そのものはわかりませんが、

xのアドレスとyのアドレスが一致することはありませんので、二番目、四番目の値とは異なる値になるはずです。

また、こんなプログラムになると出力はどうなるでしょう。

int main(void)
{
int x=5;
int y=2;
int *p;

p=&x;
*p+=y;
printf("%d",*p);
printf("%d",x);

return 0;
}

このプログラムの場合、まずはポインタpに変数xのアドレスを代入しています。

そしてさらに、そのポインタpの示す値に変数yの値を加えています。

ということなので、一番目のprintfが出力するのは5+2なので7となります。

二番目はと言いますと、pにはxのアドレスがありますので、pがxのアドレスと一致している間は必ず
*p=xとなります。

よって二番目の出力も7ということになります。


こんな感じで、片方が変わればもう片方も変わる。

こういった同期する仕様になっているので、ちゃんと使えば非常に便利ですが、

やっぱり値の変動とか、そもそも今どのポインタがどの変数を示しているのか等、

一目ではわかりにくい部分がどうしても出てきてしまいます。


だから難しい、だからわからない。こうなる訳です。

まぁこれに関しては、正直慣れが一番の特効薬ではないでしょうか。

最初のうちはわかりません。常識です。でもやっていればそのうち慣れてくると思います。



さて、ここまできて一つ疑問に思うのが、「これ、何に使うんだ?」というところでしょう。

だって変数のアドレスがわかったって・・・ん?

ってなりますよね。

実はこのポインタ、例えば関数とか、配列とか、文字列とか、構造体とか、

そこら辺と兼ね合わせて使うことが殆どになります。

まぁこれらの話は後程するとして、まずは先程ちょろっと出てきた文字列や構造体について紹介していこうと思います。


まぁそんなところで今日は終了です。

(^・ω・)ノ RadiumProduction in RoboCup Junior
さて。この記事はNXTカテゴリーなのか、PICカテゴリーなのか。

割と悩むことなくNXTカテゴリーにしましたが、特に意味はありません。


NXTPIC。どちらもI2C通信ができるので、繋げると色々ロボットの幅が広がって凄く便利なのですが・・・。

何故か僕はこれをやったことがないんです。

なんでなんだろう。使う機会がなかったから?とにかくやったことがないんです。

まぁ一番の理由はつい最近までPICでも、3.3Vの24Fや24Hで遊んでいたからでしょうね。

5V対応のPICで遊びだしたのはつい最近の話ですし・・・。

NXTのケーブルから出ている電源も大体5Vなので、3.3VのPICだと何かと不便ですからね。


という訳でI2Cをやってみることになりました。

以前にRCXPICと通信した際は、謎の2線シリアル通信規格を作って、謎な通信をしていましたが、

今回、NXTではI2Cという共通の通信規格がありますからね。非常に楽にこなせると思います。


今週はまずそんな感じで遊んでいこうと思います。結果はまた後ほど報告ということで。


それでは今日はこのへんで。

(^・ω・)ノ RadiumProduction in RoboCup Junior
PIC16F1939。 ここ暫く、何度もその単語が出ている PICの型番なのですが、

よくよく考えると、このPIC自体はまだ一回も話題に上がってないんです。


という訳で今回の記事では、このPIC16F1939 についてです。

まず概観はこんな感じ。40PINのPICです。
PIC16F1939です。画像は秋月のサイトから。
秋月電子通商にて170円で売ってます。

16Fファミリなので8bitのPICですが、16bitの24Fより早いです。

I/Oピンは最大で36ピン、発振子内蔵型のPICなので普通にフルで使えます。

電源電圧はなんと1.8V~5.0Vまで対応、どの電圧でも動きますが、最高性能を出したい際は5Vで。


動作周波数は最大32MHzとなっています。

旧型の16FはMIPSの関係上、事実上のシステムクロックは動作周波数の4分の1になっていましたが、

この16F19XXシリーズがは、1サイクル1命令なので(分岐を除く)、システムクロックも32MHzです。


A/Dコンバーターは10bit、24Fのように複数個の搭載はされていませんが、アナログピンは全部で14chあります。

アナログ入力14個はこのサイズのPICでは多い方なのではないでしょうか。結構使い勝手がいいですね。


そしてタイマーは独立して5つ搭載されています。当然ですが、そこいらの16Fとは数も質も全然違います。

なんと8bitマイコンのくせに16biタイマーが標準で搭載されていたりするんです。


後、通信モジュールはシリアルのSPI、I2C、EUSARTが対応しています。UARTがないのはちょっと痛いですね・・・。

CCPモジュール、つまりPWM等の波形を扱うモジュールの数も5つと、旧型の16Fを圧倒しています。

後はLCDドライバやらタッチセンサモジュールやら、色々と面白い機能が搭載されています。


まぁこのように、なんか凄いよ。という新しいPICの種類なんですね。

また、同じ40PINで実は160円(10円安い!)で16F1937 というPICも発売されています。
16F1937 です。といっても見た目は余り変わらない・・・これも写真は秋月電子から。

これとの違いはなにかといいますと、RAMとプログラムメモリの量が1939の半分しかなかったりします。

まぁ基本的な性能は変わりませんので、安い方がいいというのであれば此方の方がいいかもしれませんね。(10円だけど)


僕の場合は記述するプログラムの量的な問題から1939の方を使用しています。

でもまぁ普通にプログラムするのであれば、1937のメモリサイズで事足りると思います。

因みに24F なんかになると、ここらへんのメモリの量とか、通信モジュールの数とかが増え始めます。

特にメモリとかがおかしな領域に突入するんです。システム的に絶対あんなに必要ないと思われる量のメモリがあったり・・・。


まぁモジュールはともかく、メモリはそんなに使うことは余り無いと思われますので、

どう考えても24Fのアレは一体・・・ってなりますよね。そんな高度なプログラム、わざわざPICで書かないって。


といっても、結構頑張ったプログラムにしちゃうと1937の場合は足りなくなる場合もでてきますので、

プログラムがつがつ書いちゃうような人には1939の方がお勧めだったりします。


そんな感じで、今日はPIC16F1939 の紹介でした。

(^・ω・)ノRadiumProduction in RoboCupJunior
カレンダー
08 2024/09 10
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
最新CM
[05/09 ONE RoboCuper]
[05/07 HDD ほしいよー]
[04/21 ブラック3辛]
[12/26 bols-blue]
[06/08 ONE RoboCuper]
かうんた
カウンター カウンター
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
性別:
男性

PR

忍者ブログ 2007-2021,Powered by Radium-Luz-Lα+-Rescatar in RadiumProduction [PR]


Related Posts Plugin for WordPress, Blogger...