ふぃるるん備忘録

結婚したい人生だった

ろぼこんやめます

2017年02月21日 23時49分19秒 | ロボコン
こんばんは
今日今年のロボコン活動の反省会を先生方に発表してきました

PCがフリーズしたり色々ありましたがまあぼちぼち…

その際顧問の方にロボコンやめる宣言してきました

正直自分の中ではやめると決めたのは夏休み中だったかと
なんでプログラムがしたくて高専に入学したのに何故テスター持ってる時間の方が長いんだろうって思い始めたのがはじめ
それに来年もこのデスマをする気になれなかったってのもある

交ロボがロボコン活動最後になるので頑張るぞー

来年は資格とアプリの年にしよう
基本情報が単位判定されるのは3年生で終わりだし同級生がセンター試験対策してるのに遊び呆けるのは阿呆かなーっと
アプリつくるぞー高専祭に間に合わせなきゃ…
google playで小遣い稼ぎすれば天狗にならなくて済むし気分転換になればいいなー
時間が無い…

ps このペースで更新できたらいいんだけどね

ロボコンの反省と舞台裏

2016年10月31日 20時11分40秒 | ロボコン

 

久しぶりの更新ですこんにちは

個人の反省、来年への抱負などを一週間と少し考えてまとめたので…

1、反省

まずこの記事を書くにあたってエゴサを初めてかけてみたんです
いろんなことが書いてあったなーって感じです。
タコ、イカメットがいじられてたりしてて見てて楽しかったです
実はあれ一年生が数日前に作ったものなんです。
いろいろな人に覚えていただいたりして、個人的にすごい役に立ちました

色々な疑問に答えていくと
α:うちのメット、イカとタコは皆さんわかったと思うんですが、もう一つがなんだかわかりました?
あれはウミネコなんです。(色々なところで言って回っているので知ってる人は知ってると思いますが)

なのであの橋ロボットはウミネコなんですよ…
設計当初は光のページェントとか言ってたんですけどね、何をどう間違ったのか

β:最後の砦のシーンの操縦で結構物議を醸していましたね…
えーと、あのあとのコメントで
「時間が足りなかった」だのなんだのほざいてましたが、結構適当なこと言ってましたごめんなさい。
あれは結構いろんな要因が関わっていて
「さっさとオブジェを置け」ってツイートたくさん見ました
あれ、操縦者に聞いたら置けなかったらしいんです。

ライブストリーミングでどこまで声が入っているかわからないですけど
箱を島から持って来る前に80cmで高さを確定させようと作戦変更の支持を出してました。
その声が操縦者に聞こえてなかったらしく、箱を砦においてしまったんです。
それでもう脳内は「オブジェ!オブジェ!オブジェ!」って感じになるわけです
あのマシン、箱を持ってないと吸盤面が下にならない機構なんだそう。

それを練習しているうちに変更になってたのをわすれてて箱をタコが吸着し続けたんです
あそこで話していれば…とおもうとかなり高い授業料でした

仕様変更、試合流れ、とても大事
もしあそこで勝っていればと思うと色々思い浮かびます
前日、秋田のありかさんと話ししてて
新大陸までショートカット橋とか砦マシンの機構が似てるから
これで対決できたら楽しいと思ったんです…
あーーーー!!!!!悔しい

 


2、後輩・来年へ
まずピットの一年生へお疲れ様でした。
君らはどうせ何も言わなくてもBチームを引っ張っていってくれると信じています、
今年で最強の先輩Hさんはいなくなってしまうわけで…
それに製作設計チーム運営といろいろな仕事をしていただいたAさんもいなくなってしまいます
はっきりいって来年の難易度によってはスタートゾーンから出られないかもしれません、
しかし今年のオフシーズンで各々先輩に聞けばなんとでもなります…多分
今年一年メインでコードを書いたりPMしたりして思ったのは
書籍やブログも多少は参考になります、しかしロボコンという特殊中の特殊はだいたい例外扱いです。
基本は先輩に聞くことでなんとかしようと思ったほうがいいです。
機構だってデータもらえるでしょうし、
プログラムだってよくわかんないMBEDの英語FAQ・Wikiより実際のコードをみて理解したときがいくつもありました
回路もプリント基板のデータをもらいました。
自分でやることは確かに大切です、でもロボットの試走までの時間短縮が最優先です。
そのことだけは忘れないでください。

制御の一年生へ
・バージョン管理はしっかりね。
Gitを使えってわけではないけど、使えたら使ってください
わからないならせめてコメントで更新日時を書くとかしてください
あとせっかくMBEDのブラウザコンパイラにコミット機能があるんだからそれぐらい使ったらいかが?

・使い慣れたIDE(エディタ)で開発したくなる気持ちは十分わかります。
実際私も時間に余裕があれば基本的にVS2015で開発してしまうんですが、
早めにLPCXpressoになれることをオススメします。
コンパイルする際にいちいちコピペしたり、環境パスをライブラリ踏むようにいじってあげたり
はっきりいって時間のムダだと思います、マクロでピンを決めてる部分もMBEDにはあるのでそこも定義しないといけないし

・ライブラリは動くことを確認してから完成報告をしましょう。
動かないライブラリを軸にメインファイルを叩いて、大部分書き直した経験をすればわかります…

・イキってclass大量生産してもそれはオブジェクト指向ではなくて
スパゲッティなだけです。(過去のコードにあったledのクラスってなんだよ…)

・もし回路が信用できないなら信用しなくて結構。
テスターを買いましょう。本当に大事。
逆にコードなら家でもどこでもバグ探しができます。
自信を付けたら「自分を信じろ、全てを疑え」の信念の元に動いてください。
ちょっとでもおかしいと思ったらケチつけたほうがいいかと。
やりすぎるとチェックするって言われてこっちに来るの遅くなったりウザがられるけどね


最後に。

とりあえず今はクソ悔しい!!!!!!!!!!!!

 

その他質問があればリプで


 


LPC1769のmbedライブラリを使わないDigitalOut

2016年09月11日 19時32分51秒 | ロボコン

やあやあこんばんは いつぞやぶりの更新でございます

今回は比較的ちゃんとした話。

 

でもいろんなサイトを経由してなんとか形にしたものなので変なこと書いていたらコメントください

 

記事の背景

自分でやってみて全然資料がないんですよね

プルダウンモードがなんちゃらかんちゃらだとか ポートの設定がーって感じで。

いつものノートのページをみてもよくわかんなかった人が多かったと思います

http://www.nxp-lpc.com/lpc_boards/lpcxpresso/note/note1.html (いつものサイト)

実際のコード

ポートの表 <https://openwsn.atlassian.net/wiki/display/OW/XpressoHack>より頂きました。

上の図はportInOutで使うであろう(?)ピンのポートで分類分けしたものです。

上に書いたノートのサイトでどういう関数、文法で書けばいいのかわかったけど全然ポートの分類分けしたデータがないいいい

みたいなことになったと思うんです。

それでportInOutのサイトを見たりLPC_GPIOで検索した人も多いのでは?

この表の添字の部分がビットアサインです 配列名みたい部分がポート番号になってます。

ex) p21 -> port2 の (0x01<<5)

 

HL出力として使うことを宣言する

 

題名から分かる通り今回は一番簡単な出力をやっていきます

ポートがわかればあとは簡単で ピンの入出力設定などの宣言をすればおしまいです。

 

LPC_GPIO@ の@に先ほど調べたポート番号を入れます。

LPC_GPIO@はオブジェクトポインタなのでアロー演算子を用いてアクセスします、

そうしてFIODIRにアクセスして、用いるピンのビットを1にして代入します。

複数入力する場合はビットの論理和などを用いると良いかもしれません

(間違って二回入力した場合足し算で指定した場合桁上りしてしまいます。)

ex) p21をOutに設定する。

LPC_GPIO2 -> FIODIR |= (0x01);
 
これで
arduino的にいうと pinMode(pin,OUTPUT);
mbedでいうと DigitalOut obj(p21);
を書き終えた段階です。

HLを制御

この章が一番簡単かもしれません。
HにするならFIOSETをつかって
LにするならFIOCLRを使います
使うとはどういうことなのかというと、 上の2つは変数です。
つまりここに先ほど見たビットアサインに対応するビットに0x01を入れれば良いのです
LPC_GPIO2 -> FIOSET(FIOCLR) = (0x01)

TIPS

小技、小ネタみたいなものを紹介できればいいかなーと

マクロ定数を使ってみては?

まず、上の記事を参考にコードを書けばわかると思いますが
結構ビットアサインを間違えて挙動がおかしいことになると思われます。
なのでマクロ(#define)やconstで一番はじめに宣言しておかばよいかと
例えば #define LED_RED (0x01 << 5 ) としておけば

LPC_GPIO -> FIOSET = LED_RED;

とすることができます。

FIOSETとかってなんの略?

これは私の見た記事だと確か
Fast(速い)のF IO (input/output) SET (セット) CLR (クリア) といった事が書いてあったような

最後に
ここまで結構大変でした。
LPCマイコンはNXPの合併のせいでいろいろ影響を受けているので
LPC1769に関しては廃盤になるし…
(新しいのはなんかLPC-LINKがおかしいと思うんです。はい。)
この記事に来る人はだいたい1769を使いたいひとかと思うんです。
全然資料がないんですよね…マイナーだし廃盤だし。

あと僕はそこまでのスピードを求める用途じゃないんですよね…
μsの世界かな-と思ってしまう今日このごろ(未検証)
あと大変だったのはサンプルコードがネットには転がってないし、
手元にあるのは結構大規模なコードなのでよくわかんないんですよね。

PWMとか…もうつらい。 そこらへんとI2Cとか
イーサネットとかがはあったのでもうてんやわんやで
低級言語を読み取ってる感じでした。 (詳しくは検索してください)

そっからDigitalOutだけひっこぬいたわけですが すべてやろうとすると心が折れそう。
mbedライブラリをnuclreo401とかに移植できるのに なんでlpc17xx.hなんて使わないといけないのだろうか…。
といったわけでこの辺でさようなら
ー ーーーーーーーーーーーー
初版2016年9月7日