忍者ブログ
RoboCup Junior Japan Rescue Kanto OB

             2005~2013
[1]  [2]  [3]  [4]  [5
うちのロボカップ研究部の部員は、大抵がNXTやRCXなどのレゴと

PICなどのマイコンの両方を使うことができます。


どちらもプログラムはC言語なので、構成は大差ありません。

と、言うか関数さえ作ってしまえばNXCのプログラムやrobotCのプログラムであれば、

そのままコピペでPICを動かすことも可能ではあります。

じゃあこのふたつはプログラムを書く時にどのような違いが出てくるのか。今日はそれについてお話しします。


NXTとPIC、まず一番に違いがでるのが、処理速度の早さでしょう。

NXT内蔵のARM7と比べると、PICは塵にも等しいですが、NXTと比べると、何故かPICが勝ってしまうんです。

RCXの時にもあった、レゴ社特有のアレですね。

これ、し速度なんて早い方がいい。そう思う方は多いと思うのですが、その通りです。


唯、早いには早いなりにNXTの時には起こり得ないような問題が発生するのです。


例えばノイズ。


NXTであれば、よっぽどモーターに負荷でもかけない限り、センサーの値は常にしっかりと返ってきてくれますよね。

でも、センサーの読み取りの早いPICではそうはいきません。

ちょっとのことで生まれた電源のノイズやらなんやら、モロに出力に反映されてしまいます。

だから例えば、黒を見るまで回転する・・・なんてプログラムは危険ですね。
どこでノイズが乗ってセンサーの値が瞬間的に下がるかわかりませんからね。


他にもあるのがセンサーとモーターのラグ。

NXTにもあったかと思いますが、PICではもっと酷いです。

だってセンサーの読み取りはNXTより早くなっているのに、

モーターの応答速度はモーターの問題ですからマイコン側は関係ありません。


つまり・・・ラグは大きくなる一方と・・・。


後は問題が起きた時の原因について。

NXTでは動作が思うようにいかなければ、それはロボットの構造的問題かセンサーの挿しミス、あるいはプログラム。

特にNXT熟練者であれば、問題は十中八九プログラムといっても過言ではないでしょう。


でもPIC、特にメインボードから自作した場合、その原因の欄に「回路」というものが堂々追加されます。

今まで十中八九プログラムだったのが、新たに回路という不確定要素が加わる。これ程厄介なことはありません。

本当に慣れないとどっちが原因かなんてすぐ判別はできませんからね。難しいです。


このように、問題が生じた時の原因の思考も変える必要があるんです。


だからややこしい。難しい。


NXTにもPICにも同様にややこしい問題は多いのです。


(^・ω・)ノ RadiumProduction in RoboCup Junior
書く書く詐欺をして思いっきり放置したコンテンツの一つが此方。

PICkit2で新しい16Fの4桁シリーズに書き込みをする方法についてです。

と、いうのは、PICkit2は元々の仕様的に新しい16F が出来る前に作られたものなので、

PICへの書き込み機であるにも関わらず、書き込みができません。
PICkit2。選択すらさせてくれません。
標準だとPICkit3やICD2,3などを使用する必要があります。


でも、PICkit3は使いにくいし、ICDは高い・・・とにかくPICkit2の普及率は異常なんですよね。

だからなんとかしてPICkit2で新型の4桁16Fに書き込みができないか。というのが今回の記事です。


結論から言うと、できます。

まずはこちらのサイトでパッチファイルをダウンロードします。

この辺にパッチファイルのリンクがあるのでポチッとやって落としましょう。
パッチファイルのあるサイトです。丸の中をクリックで落とせます。


落ちたら。解凍するなり何なりして中身を開きます。ZIPなのでWindowsなら問題なく開けるでしょう。

そして中にあるPK2DeviceFile.datというファイルをCopy。ファイルは1つしかありませんから間違えようがないでしょう。


そしてそれをCドライブのProgramFilesにあるMicrochipというフォルダ内のPICkit 2 v2というフォルダに貼り付けます。
このMicrochipフォルダの位置はOS、設定によって変わります。
とにかく標準でソフトウェアがインストールされるであろうフォルダ内に行けばまず間違い無いです。



上書きがどうこう言われるので、はいを押しましょう。上書きしないとパッチになりませんからね。



そしたら・・・MPLABを再度開いてもっぺん選択してみると・・・
PICkit2。選択すらさせてくれません。

変わりませんね。僕のやつはVersionが8.50という古いものだからなのかもしれませんが、結局使えません。


となると手段はひとつ。PICkit2の標準ソフトを使う方法です。

実はPICkit2にはデバッガ付きの標準の専用ソフトが存在します。一応3にもあるんですけど・・・。

それがこの、PICkit 2 Programmerというソフトです。
PICkit 2 Programmer

先程パッチファイルをペーストしたフォルダと同じフォルダのPICkit2V2.exeというソフトがそれに当たります。

まず、起動すると、上のような画面になります。


使い方は簡単。まずは上のDevice Familyで使うPIC の種類を決定します。基本はあるところから型番を探すのですが、

今日本でメジャーであろうPIC のほとんどはここにはありません。

16Fを使うときはとりあえず一番上のbaselineとしておいて下さい。

これでとりあえずPICの設定は終わり。次に書き込み方ですが、

まず、適当なコンパイラ、またはMPLABでソースコードをコンパイルします。

すると、そのプロジェクトファイルと同じフォルダにプロジェクト名.hexというファイルができていると思います。

それが実際に書き込むときに使うファイル、つまり機械語化されたプログラムになります。
hexだから16進数で書かれていますね。


まずそれをインポートします。方法は
左上のImport Hexをクリック
Ctl+Iでインポートウィンドウを開いて、
コンパイルに作成された.hexファイルを選択して開くを押します。
コンパイル時に作成されたHexファイルを選択、インポートします。


すると、画面がこのようになって
インポート成功の文字、Writeボタンで書き込めます。
この状態でいつも通り、PICkit2と電源をPICのに繋いで、Writeボタンを押すと書き込まれます。

というのが、このソフトの使い方。これでPICkit2でも4桁16Fに書き込みを行うことが出来るようになります。


そんな感じで今日はこの辺で・・・。

久しぶりにまともな記事書いた気がします。


また、DropBoxを始めてみたいという方は此方のリンクから行っていただくと、500MBサービスされるらしいです。

(^・ω・)ノ RadiumProduction in RoboCup Junior
最近常時テスターをポケットに入れるようになりました。これは異常でしょうか?

今日の午後の話なのですが、部屋の掃除をしていたら、懐かしのPIC16F877Aが出てきました。

例の3年前の残念自作機を作った時に使ったPICですね。

特徴は・・・特徴は・・・。

あれ。1939に勝てる要素が見つからない。駄目だ、特徴とか書くの止めにしよう。


とにかくそんなPICを本棚の隙間から発見しました。

と、言うわけで使ってみよう。

まずは電源を繋いで動作確認・・・

俺のPICが燃えるように熱い!

つまり燃焼→放棄→本棚の隙間・・・と。

なるほど理解致しました。だからこんなところに・・・というか捨てましょうよ。

そんな感じで放物線を描きながらPIC16F877はゴミ箱の中へと消えていきました・・・。


そろそろPICの供養塔を建てたほうがいいのではないでしょうか。


(^・ω・)ノ RadiumProduction in RoboCup Junior
最近、腰にPICを付けて生活しているのですが、今日、そのPICにとんでもないことが起きているに気がついてしまいました。

磨耗PICの写真です。
・・・。

磨耗してる・・・。


角のところがツルっと丸くなってしまっているのがお分かりになられるでしょうか?

実はこの状態で中の銀の部分がチラッと見えたり見えなかったり。

あぁ。PICって使ってるとこうなるんだ。やっぱり電子回路部品って消耗品ですね。


今日はそんな突っ込みどころ満載の記事でした。


(^・ω・)ノRadiumProduction in RoboCupJunior
C82の影響はやはり大きく、今日も結構遅刻者が出てしまったようです。


今日は一応前期最後の授業日ということで、みんな浮き足立っていましたね。

僕の場合は、基本的に夏休みも休みなしなので、全く関係ないのですけど・・・。


と、言うわけで、今日の内容はPIC24Fについてです。
PIC24Fです。見た目は16Fとは変わりません。
以前に、僕がシンガポールの世界大会で使用したロボットがこのPICを使用していました。

公称クロック32MHzですが、実際の内部クロックは半分の16MHzの残念な16bitの子です。


そして色々と問題が多いことでも有名ですね。某ピンとか某コンパイラとか・・・


とはいえ、この24Fにも勿論良い所は沢山あります。


まずはピン割り付け機能。

PWMやI2C等の幅広い機能を普通のPICなら決められたピンに接続しないと使用することができませんでしたが、

24FではRPピンというピンが複数個あって、そのピンに使いたいモジュールのピンを自由に割り付けることが出来る機能です。

性能という面では影響を及ぼしませんが、非常に使いやすい便利な機能です。某AVRにも搭載されている機能ですね。


次にMSSPモジュールの複数搭載

要するに16Fでは一つしか搭載されていなかったI2CやSPIのモジュールが、なんと2つも搭載されています。

これにによって、16Fでは不可能だったSPIとI2Cの併用ができるようになっています。

それに両方I2Cに設定すれば、同じアドレスのセンサーを2つ使用することも出来るわけです。


そして莫大なプログラムメモリの量。

24Fは16Fとは文字通りケタ違いのプログラムメモリを持っています。実は24HやDSPシリーズ、32MX よりもメモリの量は多く、

それ故に処理速度自体が遅い割に、かなり高度なプログラムを描くことが出来、

同クラスのマイコンと比較すると、安価でかなり高機能なシステムを制作することができます。


只、この長所は何れも単純なプログラムではあまり効果を発揮しません。

システムが高度になればなるほど力を発揮するもののようなので、24F自体、使い所は難しいですね。

今日はそんな感じで24Fの紹介でした。


先程から麻雀の勝ち抜き戦をやっているのですが、現在41連勝。止まらなくなりました(笑)

(^・ω・)ノ RadiumProduction in RoboCup Junior
SkypeでC30を部員に叩きつけようとしたら、残り1時間って表示されました。どういうことなの・・・。

という訳でC30をもう一度やることになりました。しかもおまけ付きで。


もちろん媒体は24F。

ちょっと16Fだとメモリ的に足りなくなるようなプログラムを書く必要に迫られてしまったのでまた乗り換えです。

以前にこんなにメモリ使うんか?なんて記事を書いたような気が致しますが、まさかこれが伏線になるとは。フラグ建築って難しいです。

そんなこんなでまた24Fです。今度は何処らへんで飽きるのでしょうか・・・。


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

(^・ω・)ノ RadiumProduction in RoboCup Junior
と言っても教えるのは僕ではないですけどね。今年はニートに徹します。

対象は今年の一年生。担当は2年生だそうです。そしてつい最近まで存在すら知らなかった部長が居ました。


ですが・・・明日からは期末試験2週間前なので一年生は部活不可・・・

という訳で8月以降に持ち越しになりました。


なんか16F1938を使うとか使わないとか言っている部員がいるのでPickit3の購入を推奨します。

まさか部で買ったのが足りなくなるとはなぁ。予想外も予想外ですね。


そんなこんなでどうなるかは未定ですが、来月から始まるようですね。夏休みにかかってやるのかな?

夏休みになればNESTロボコンの活動の方も始まりますので一年生二年生は大忙しですね。


これでおーでーのだけでなく、PIC勢も増えるのか・・・。今年はホント転機、英語で言うとTurning Pointですね。

それにしても、なかなか面白いことになって来ました。そろそろ部長の手に負えないぞ・・・。

・・・という、「今までは仕事をしていた」ようなコメントを残したところで今日はこの辺で。

(^・ω・)ノ RadiumProduction in RoboCup Junior
というのも、うちの学校は(海側は)海抜2m前後なので雨が降ると沈みます。よくこんなところに学校作ったなぁ・・・
最近こんなものが張られました・・・因みにこっちは西側で2.2mとありますが、東側は1.9mとなっていたり・・・
台風が来ると必ずといっていいほど辺り一面が鮫洲湖に・・・。今日もそうなる前に強制下校となりました。


最近まともに部活できてないような・・・昨日も爆破実験で終わりましたし。


という訳で、今日の授業中なのですが、なんとなく、PICでの並列処理について考えていました。

というのも、PICはLEGOなどに比べたら処理はとても早いですが、マイコンとしてはやっぱり残念な方です。

勿論カメラの制御だったりといった複雑な処理は出来るはずもありません。

だったら最近流行りのCPUのように並列処理をすればいいのではないか・・・と言うことになった訳なんです。



それで色々考えていたのですが・・・結論から言ってムリですね。

と、言うのも並列処理で処理をいくら早くしても、通信に時間がかかって結局意味をなさなくなってしまうのです。

それこそ通信線を2ケタ使うぐらい頑張った通信じゃないと通信で時間を食って逆に遅くなるという計算結果に。


ピンを増やす目的でなら問題無いですが、速度向上を目的としてPICの並列処理をさせるのはどうにも難しようでした。

入出力ピン半分ほど犠牲にするならできなくもありませんが・・・そこまでしてやりたくもありませんし。

という訳でここ数日は訳の分からない思考から訳の分からない発想をしたり、実験をしたり

そんな日々が続いています。


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


(^・ω・)ノ RadiumProduction in RoboCup Junior
実は新型の16FPICには、以前紹介したPIC16F1827よりも、もっと小さいPICがあるのをご存しでしょうか。

それがこのPIC16F1823です。
16F1823です。このサイズにこの機能。使える子です。

なんとピン数は14ピン。

一般的に販売されている74HC等のロジックICと同じピン数でありながら、16F1827と同等の性能を持ちます。

まぁ無論ピン数だけはどうしても足りていないのですけど・・・


そして驚くべきはその値段。

なんと90円(秋月電子通商価格)。遂に100円のオーダーを切ったんです。

今まで100円を切るPIC。と言えば、16F6XXとか、10Fとか12Fとか、残念な子たちしかいませんでした。

でも16F1823は新型の4桁台の16FPICです。勿論、そんな残念な子達の一員ではありません。


この低価格、そしてこの性能。正直非常お得なPICだと思うんですよ。

16F1827 同様、サブのPICとして非常に役立ってくれること間違いないでしょう。I2Cが使えることも大きいですよね。

という訳で今日はそんな格安PICの紹介でした。


(^・ω・)ノ RadiumProduction in RoboCup Junior
電源を入れると、ふいーん↓という感じで電源の電圧が落下する現象が発生しました。


・・・PICが燃えたようです(苦笑)

回路に変更がないのに急にこの現象が起きた・・・と言うことはまぁ十中八十九PICですからまた買いに行きませんと。

というか前に一度、回路間違えた時に恐らく焼けていたのでしょうね。プログラム自体は動作してるから質が悪い。

まぁそんなこんななので今週の土日はまたアキバに行くことになりそうです。
最近は本当にお金がいくらあっても足りないような気がするのは・・・・やっぱりこの子達のせいなんだろうなぁ。


ここ数ヶ月ずっと赤字が続いているので、ぶっちゃけそろそろヤバイのですが・・・どうしたものか。

とにかく支出を減らさないとなのですが、消耗品の使用が激しいのでどうなることやら・・・。


(^・ω・)ノ RadiumProduction in RoboCup Junior
今日は新しい方の16FのPICの中でも19XX のほうではなくて、18XXの方のPICについて紹介します。

今日、紹介するのは16F1827というPICです。
PIC16F1827です。
http://akizukidenshi.com/catalog/g/gI-04430/

このPIC、何かといいますと、18PINの小型なPICにも関わらず、アナログピンが12ピンあったり、I2Cが使えたりと、

滅茶苦茶な性能しているPICなんです。


センサー用のサブPICとして非常に便利に扱うことが出来るだけでなく、

動作周波数も32MHzなので、比較的処理速度も速く、

16ビットタイマーも搭載されているので色々と汎用性の高いPICです。

まぁピン数が少ないので大規模構成の回路のメインCPU・・・という訳にはいきませんけどね。


今日はそんな16f1827の紹介でした。


(^・ω・)ノ RadiumProduction in RoboCup Junior
カレンダー
06 2020/07 08
S M T W T F S
1 3 4
5 6 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
最新CM
[06/08 ONE RoboCuper]
[01/24 sk]
[09/25 ONE RoboCuper]
[11/19 big]
[11/11 お馬さん]
かうんた
らじぷろ目次
らじぷろ検索機
プロフィール
HN:
Luz
年齢:
26
性別:
男性
誕生日:
1994/02/15
職業:
大学生
趣味:
ラボ畜
自己紹介:
初めまして。Luzと申します。
某大学の情報学科に入りました。のんびりと生活を送るのが今年の夢です。
めーる
radiumproduction☆yahoo.co.jp
※☆を@に変更して下さい。
バーコード

PR

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


Related Posts Plugin for WordPress, Blogger...