スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

180mm進もう4

今晩は!
暮れですねー
振り返ってみると今年もよい年でした。来年もよい年でありますように。

さて、進もうの4回目になります。
ちょっと3回目の記事で訂正があります。一部パルス幅と周期を混同しているヶ所がありました。PWMについての詳細は分かりやすいページを見つけましたので貼っておきます。

PWMについて

前回はPWMモードを使う必要性を説明したつもりです。
では、PWMモードを実際に使うにはどんなことをすればよいのでしょうか?
答えはデータシートを見て、設定すべき宣言を把握することです。

目的:SH7125でPWMモードを使う
方法:データシートを読んで何を宣言(設定)していけばよいのか見る。

PWMモードに限らずマイコンで使いたい機能(AD変換や割り込みなど)はデータシートに乗っていますが、数百ページあるデータシートを全て目を通すなんてことはやってはいけません。欲しい機能のところだけを見て、設定するようにしましょう。そうすれば一見情報が膨大で手が付けられないように見えるデータシートも実は大したことありません。

ということでSH7125のデータシートを持ってない人は部室のUSBからデータシートを全部保存して、「CPU」フォルダに入っているSH7125のデータシートを開いてください。
(僕の記事は全部Miceの環境に特化させているのでマイコンが異なる等で変わることもあるかと思いますがすいません。)

まず、PWMモードの項目を探します。これはSH7125ではMTU2の機能です。
MTU2->動作説明->PWMモード1について見てみると。

――――――引用――――――――
PWM モードは出力端子よりそれぞれPWM 波形を出力するモードです。各TGR のコンペアマッチによる出力レベルは0 出力/1 出力/トグル出力の中から選択可能です。各TGR の設定により、デューティ0~100%のPWM 波形が出力できます。TGR のコンペアマッチをカウンタクリア要因とすることにより、そのレジスタに周期を設定することができます。全チャネル独立にPWM モードに設定できます。同期動作も可能です。PWM モードは次に示す2 種類あります。

(a) PWM モード1
TGRA とTGRB、TGRC とTGRD をペアで使用して、TIOCA、TIOCC 端子からPWM 出力を生成します。
TIOCA、TIOCC 端子からコンペアマッチA、C によってTIOR のIOA3~IOA0、IOC3~IOC0 ビットで指定した出力を、また、コンペアマッチB、D によってTIOR のIOB3~IOB0、IOD3~IOD0 ビットで指定した出力を行います。
初期出力値はTGRA、TGRC に設定した値になります。ペアで使用するTGR の設定値が同一の場合、コンペアマッチが発生しても出力値は変化しません。
PWM モード1 では、最大8 相のPWM 出力が可能です。
―――――――――――――――――――

と書いてあります。
何も知らない人向けにこれを説明すると、
1、PWM出力ができる端子があるのでその端子からPWM出力をする。
2、コンペアマッチ時(後で詳しく)の端子の状態を選べるから好きなDutyにできるよね。
という感じ。

説明すべきは、各TGR、TCNT、カウンタクリア、全チャンネル独立にPWM、ってとこかな。

TCNTとは
TCNTとは数を数えるカウンターだと思ってください。
0から始まって1,2,3,…と勝手に増えていき、こちら側が設定した何かしらの要因で0に戻ります。

各TGRとは
TGRにはTGRA、TGRB、…などがあります。これらの存在意義はどのタイミングで端子を状態を変えたり、割り込みを発生させるかといった、タイミングを決めるためのものです

カウンタクリアとは
カウンターであるTCNTを0に戻すことです。

全チャンネル独立にPWMとは
3回目の記事でPWMには周期とDutyという要素があることを書きました。
独立にPWMとは、例えばPWMを3つ発生させるとして、各PWMをバラバラな周期やDutyに設定できるということです。


では次に大事な概念であるコンペアマッチについて
上の説明で予想できた人もいるかもしれませんが、何かアクションを起こしてほしいタイミングにTGR~(AとはBとか)を設定します。そしてカウンターであるTCNTとTGR~が同じになることをコンペアマッチと呼び、コンペアマッチが起こると事前に設定した何かが起こります。
これは例えば、端子の状態を0[V]にするとか5[V]にするとかです。

以上に説明した大枠さえわかっちゃえば下の図が何を言ってるかもなんとなくわかるかもしれません。
12281_20131229031619fcc.png



というところで時間が来たので今週はここまで!
次回は上の図についてプログラムを書きましょう(今度こそ…)
ではでは良いお年を!( ^^) _旦~~
スポンサーサイト

180mm進もう3

今晩は!
昨日今日と東京は雨が降りましたね。
実は関東は冬より夏のほうが雨が降りやすいって知ってました?

さて、今回も180進もうの記事です。
自分で読み返してなかなかによく分からない進行をしていたので少しまとめます。

1.ステッピングモーターはパルス数から距離を導ける。
2.加速度、速度の概念から距離を導いてもぴったり進める。
3.2の具体的なプログラムは? ←今ここ

って感じに進行してるつもりです。
では前回の解答から行きましょう。

問題
小数点以下を四捨五入で丸め込むプログラムをC言語で書きなさい。

解答
やり方は色々あると思いますが、結論として0.5を足してint型にキャストするのが良いようです。
他にもdouble型を引数にして四捨五入した後の整数をint型で戻り値にする関数を作りましたが、実験してみたところ実行時間に大きな差が生まれました。

#define round(A) ((int)(A+0.5))
int roundf(double A){
  return (A+0.5);
}
void main(void){
  double i=0;
  int B=0;
  double C=839.8372;
  for(i=0;i<=100000000;i+=0.1){
//    B=(int)(C+0.5); //5秒 -(1)
//    B=roundf(C); //35秒 -(2)
     B=round(C); //5秒 -(3)
  }
  printf("%d\n",B);
}
(1),(2),(3)で、どれも出力結果は840.000です。
自分で作ったのはどんな感じでしたかー

さて、なんでこんな問題を出したかというと、ステッピングモーターを使うなら是非int型へのキャストを切り捨てでなく四捨五入で行って欲しいからです\(^o^)/
おすすめは(3)のdefineでマクロにするやり方です。
マクロとは関数に似ているdefineです。処理が速いです。(説明不足)
さっきの実験でも予想できるように、関数を使うとそれだけで時間がかかります。
マウスの世界は1[ms]も馬鹿に出来ないので、少しでも処理を早くすることを心掛ける必要があります。


ということで、解答を終わります。round(A)は今後も登場させる予定です。

今日の話は「PWMってなによ?」です。
Mice歴一年生の方はそもそもなんでそんな得体の知れないもんを使うの?って疑問があると思いますので必要性から説明していきます。

ライントレーサーで、モーターをずっとONにするとすごい勢いで壁に突進しました?
僕は2年前それが起きてめっちゃ焦ったのをよく覚えています。
きっと皆さんはモーターの出力をONとOFFに繰り返し切り替えることで減速して走行させたのではないかと思います。
実はこれは疑似PWMと呼ばれていて、皆さんはすでにPWMをさせていたのです。
PWMにはDuty(比)というものがお供についてきます。
例えばずっとモーター出力ONだとDutyは100%、同じ間隔でONとOFFを繰り返すとDutyは50%という具合です。

さて、ライトレの話からPWMの話が出てきましたが、ここでステッピングモーターの場合少し様子が変わります。
この前も書いたようにステッピングモーターはパルスよってモーターが回転するので、ライトレで使ったDCモーターのようにずっとONとか交互にONとOFFとかいう概念はないです。

え、じゃあPWM使わないの?と、思うかもしれませんが使います!
DCモーターの場合大事だったのはDutyでしたが、ステッピングモーターの場合大事になるのはパルス幅です。
ちょっとお絵かき
12211.png
めっちゃ分かりづらい図になっちまったw
DCモーターだと周期あたりのONの時間(赤枠)がモーターの回る速度を決定します。(うん、図がダメだわ)

一方ステッピングモーターの場合wss

左のほうが時間当たりのパルスの間隔が短いのが分かると思います。
つまりDCモーターと違って周期に対するDutyではなくパルスの間隔(間隔が短いか長いか)がモーターの回る速度を決定します。

つまりステッピングモーターでは、PWMの周期自体を変化させることでモーターの速度をかえるということです。

小まとめ
・DCモーター
   周期一定
   Duty変える
・ステッピングモーター
   周期変える
   Duty一定(一般的には50%)

次にPWMの必要性について
上に書いたようにステッピングモーターではパルス幅を変えて速度を変えるのですが、これってどうやると思います?マイコンは正確な時間が分かるので細かく割り込みをかけるってのが一つ思い浮かぶと思います。しかし、割り込みで一々パルスを発生させる(ある端子の出力をONにしてOFFにしてを繰り返す)と処理が重くなるうえにちょっと速く走ろうとするとすぐに処理の限界が来ます。
じゃあどうしようもないのかというと、マイコンさんにはちゃんとPWMモードという素晴らしい機能があります。これは周期やDutyを設定すれば、マイコン内の処理に負荷をかけず、自動的にパルスを生成し続けるという機能です。
マウス製作に入っている人は、手元の参考回路図を見るとモータードライバのclock端子にマイコンのPWMモードが使えるポートが割り当てられているのが確認できるかと思います。

切が悪いですが時間なので今週はここまで。
次週は今度こそ具体的なプログラムに入りたいと思います。
ではでは(*^-^*)

180mm進もう2

今晩は!
寒くなってきましたね。
今週は連日企業説明会に行って来ます。
忙しくなって更新できなかったらごめんなさい。(と今のうちに謝っておこう)
けどなんとか更新途切れないように頑張ります。

ということで前回の解答から行きます。


問題
128パルスで1回転するステッピングモーターがあります。
タイヤの直径が45mmのとき
180mmぴったり進むには何パルス送ればよいでしょうか。

解答
128[パルス]:45[mm]=x[パルス]:180[mm]
x=512
より、512パルス送れば180mmぴったり進みます。

で、本日の内容は「180mm進もう」です。

「え、もうぴったり進めるじゃん」とお思い?
確かに問題にしたやり方でぴったり進めます。この方法は(僕に)ステップ数ベースと呼ばれています。
頑張れば加速や減速もできるし、任意の速度で進むこともできます。頑張れば。どのくらい頑張るかは先々代の部長に聞いてください。
しかし、ステップ数ベースだと、例えば加減速をしようと思ったらタイヤ径やら最高速からPWMの周期(次週詳しく)を求めてその瞬間での値を配列から読み込むなど面倒なことをしないといけません。

そこで、別の方法があります。
それは(Mice内で)物理量ベースと呼ばれているやり方です。
高校物理で出てくる、加速度、速度、距離の関係を用います。
簡単に言うと、距離は速度を積分したもの。速度は加速度を積分したもの。
ライトレでCMTタイマーで1秒ぴったりでLEDをON・OFFしようってありましたよね。つまりそれは、マイコン側で正確な時間が把握できるということです。何が言いたいかというと、速度を理論値としてマイコン側で記憶しておけば、どれくらい進んだかが経過時間によって把握できるということです。
ピンと来ないかな?
ちょっとお絵かき

12161.png

短冊で積分するのと同じ考え方です。
図に書きそびれましたが、短冊の横の長さが単位時間dt、短冊の縦の長さが理論値、横軸が時間tです。
単位時間が十分短ければ積分した結果は同じになります。

で、話は戻りますが、180mm進みたいときは速度の積分値(=距離)が180mmになるように進めてあげればよいのです。加速度と速度の関係も同じで、速度は加速度を単位時間毎にどんどんと足してやればその指定した加速度で加速します。
恐らく一つ疑問が浮かぶと思います。
誤差だらけに見えるが本当にそのやり方で理論通りの距離を進むのか、と。
ということで何か作りました。

https://dl.dropboxusercontent.com/u/75915365/%E8%B7%9D%E9%9B%A2%E3%81%AE%E7%90%86%E8%AB%96%E5%80%A4simu.xlsx

上のエクセルファイルを簡単に説明すると、最高速、加速度、単位時間を変えて、マイコンから出てくるパルス数やその結果の理論値との誤差がどのようになっているかを見るものです。
最高速をめっちゃあげると(加速のみにすると)ほぼ誤差なく追従することが分かります。
逆に一定速で走っているときは誤差がたまることが分かります。ステッピングモーターの宿命です。

初めに行っておくと、Mice内ではdt=0.001[s]が良いというのが定説です。
単位時間が短いほうが細かく動けるからいいよね!って落ちにしようと思ったのですが、dt=0.001でやってたけど距離0.00以下の精度は要るのかと、僕自身が現在混乱しております。

単位時間の大小による違いは、制御をかける頻度や動ける距離の分解能などです。図にも示したように細かいほうが何かとよいのですが処理が重くなる欠点があるので、マイコンが絶対処理落ちしない程度に小さくするのが良いと思われます。
DCモーターだと速度にも制御をかけなきゃいけないのでdt=0.01は絶対ダメなのですが、ステッピングモーターならdt=0.01で行けるかもしれません。豊口さん直進とスラロームで検証お願いします。

と、こんなところで1時間が来たので今週はここまで。

今週の問題は
例のエクセルファイルでROUND関数を使って、小数点以下を四捨五入で丸め込んでいるのですが、C言語でこれを実装してください。解答は次週!

次週は180mm進もうのいよいよ具体的な部分、「PWMってなんぞ」です。
ではでは(*^-^*)

参考:MiceWiki 物理量ベースとは,
http://mice.deca.jp/cgi/dokuwiki/doku.php?id=%E7%89%A9%E7%90%86%E9%87%8F%E3%83%99%E3%83%BC%E3%82%B9%E3%81%A8%E3%81%AF

180mm進もう1

こんにちは\(^o^)/
この前の宣言通りマウスのハードを完成させた人向けの記事を細々と書いていきます。
ちなみにステッピングモーターを前提にしています。


さて、ハードを完成させたみなさん。
何をしていいか分からないでしょうw

動かすのに必要な事柄は前回の記事がおおよそなのですが、
とりあえずテンションを上げるためにmm単位でぴったり動けるようになりましょう!

そこで今回の記事では考え方を記していきます。
具体的には、何がわかっていて何を計算しなきゃいけないのかを整理しましょう。
途中で分からない単語があったらすぐに検索やでb

ステッピングモーターの仕組みがなんとなく分かっているなら下がわかるはず。
今ある情報は、
・1パルスでモーターが回転する角度がわかる。
・モーター軸にはめたタイヤの直径がわかる。


ここで、なんとなくぴったり進めそうな予感がする?

例えば1パルスで1度回転するとしましょう。
このとき360パルスで360度(1回転)タイヤが回るわけだから、
360パルスでタイヤの直径分動くということになります。

今の例でタイヤの直径が50mmなら
360:50=1:x
で1パルスで0.1388[mm]動くというとこになります。

従ってこの場合動ける最小の距離は0.1388mmでそれよりも細かくは動けないのです。

では問題
128パルスで1回転するステッピングモーターがあります。
タイヤの直径が45mmのとき
180mmぴったり進むには何パルス送ればよいでしょうか。

答えは次週!
次週は任意の速度と加速度を出すにはどうすればよいかの記事を書くよ。

---------------------------------――――

こっから雑談

なんか家で使ってたPCが壊れちゃって、サークルで使ってるPCを持ち歩く生活になりました。
処理が速いってのと安いってのを最優先にしたPCだったのでソフトも全然整ってなく。。。
一番の問題がOfficeが入ってなかったので実験のレポートが家で書けないw
なんでいろいろ検索してみた結果、中国版のこれを入れてみました。

アマゾンで買ったやつ
導入方法、コンペブログ で検索
テーマ->MicrosoftOfficeで4番目くらいの記事

ちゃんと公式のものなので法を犯したりはしてないです(w
amazonで6000円でした。お安い。
製品版なので次のPCにも入れられます。
残念なのは非商用目的が刻印されてることくらい

12071.png

話は変わって本当にやるのかは不明ですがキット化の回線図が進んでおります。
あとは書き込み周りを付ければOKかな。
やはり、流行の秋月のあれを乗せるべきだろうかw
ライトレ終わって止まってる人、誰か人柱になってくれないかな(´ω`*)

12072.png

技術ネタを書くことにしたよ

タイトル通り技術ネタを書いていくことにするよ

更新は週1回で土日のどっちか。
ブログ書こうとするとやたら時間をかけてしまうので、1時間でぶつぎりにします。
きりが悪くなっちゃったらゴメンね。

ハードが完成したところからを想定します。
大まかな流れとしては

1、180mmぴったり進もう

2、壁のあるなしを判定しよう

3、姿勢制御をしよう

4、ぴったり90度回転しよう

5、加速・減速をしてみよう

6、左手法でゴールしよう

7、足立法でゴールしよう

8、重ね探索をしよう

9、最短走行をしよう

10、スラロームをしよう

11、探索を工夫しよう

12、斜め走行をしよう

13、ターンを自動化しよう


こんな感じの流れで進めていきます。
1だけはものすごく時間かける予定です。
全部で何週間かかるか謎ですが就活がうまくいけば5月6月あたりから加速するかもです。

一年間お疲れ様でした

早かったような、とても早かったような。
斜め走行のように部長の任期が終わりました。

後半は自分の機体を大事にしすぎてしまい、サークルに目を向けられていなかったと反省しております。

まずは、次年度の役員役職の皆様へ、勝手なことを言いますが今Miceは転換期にあると思います。
今までのような運任せが通用しなくなり、しっかりと次世代を育てるシステムが求められています。
その中でいかにMiceというサークルを育てていくか、ある意味とてもおもしろいことだと思います。この強大な敵をサークル全員で力を合わせて倒してほしいということが、朽ち行く私の願いです。

次に昨日まで役員役職についていた皆様へ、1年間お疲れ様でした。
みなさんのお蔭で、私はとても楽しくサークル活動を行うことができました。
特に最後まで副部長(技術部長?)には助けてもらいっぱなしでした。この場を借りて深く感謝いたします。

総会で私が出した議題ですが、ガチ勢の大批判にあい何も決められなかったことが悔しいです。本当は具体案であるキット化よりも根本の問題をいかに解決するかを議論したかったのですが…
しかしまあこれの解決は今の1~2年生の楽しみなので、もはや老害となった私はここにはっつけて満足しましょう。
一年間本当にお疲れ様でした。


提出議題
・Miceの活動はどのようなものであるべきか

はじめに
今回私は、Miceの活動自体へ疑問を持ち、この議題の提出に至った。
時間も限られているのを考慮して、先に私の意見をこの文書にて示しておく。

Miceの現在の問題として、先の部会での山本先輩、林先輩、森田先輩の発議によると、仕事を放棄する人が急増しているだとか、活動は自由であるはずなのに鍵当番や役職を強制させられるから自由ではない、などがある。
これを解決するために、議題が提出され、総会で議論が行われることになった。
私が提出した議題は先の議題と全く別に思うかもしれないが、実は表面に現れたすべての問題の根本にある問題であると考えている。はじめに、私が思っている「大学のサークル」というものを伝えておきたい。私が思う大学のサークルとは、大学生活をより楽しくより面白くするためのものである。以下に現在のMiceの活動に疑問を持っている理由や、問題の提示を行うが、その前提に上記の私のサークルへの固定観念がある。

現在Miceには大きく分けて2つの根本的問題があると考える
1.
マイクロマウスという競技は1から作り上げて大会で完走させるには、あまりにも時間がかかる上に難しいということ

2.
現在のMiceの活動はそもそもMiceの掲げる目的からずれていること

重ねてにはなるが、上記2つの問題がMice内で現在現れている表面上の問題全ての根源にあるのではないかと思う。
そもそもMiceというサークルの目的は何なのだろうか。

部則第3条より
本団体は、知的ロボットを始めとする総合的なエレクトロニクスに関する研究および実験、情報交換を通じ、メンバーの技術、知識の向上とメンバー相互の親睦を深めることを目的とする。

 部則から目的は明らかであった。では私たちは本当にこの目的に沿って活動しているのだろうか。
自分のマイクロマウスを製作するのは自分1人だけである。よく言えば自分の力で自分の知識や技術を高められる。悪く言えば誰も助けてくれない。そんな境遇にあったからか、サークル内では率先して仲間に教えようとすることが少ないように思う。いわば自分のことは自分でという風潮があり、それは一方で大会への原動力(入賞すれば全て自分の力と自慢できる)になり、一方で製作がうまくいかない部員への壁になったのではないかと思う。私は今日はっきりと断言するが、この風潮は良くない。なぜなら「自分のことは自分で」という自律の要求は「自分の技術は自分で」には適用するべきでないと今日思うからである。
私たちは技術や知識については手取り足取り教えていくべきで、そこを勘違いしていたのだと考える。技術を教えてもらえない環境において、機体が完成せず動かない人は楽しくない。これが根本の問題から現れる致命的問題であると考察する。そしてこの問題が、退部したくなるという恐ろしい段階を招くだろう。
これは一刻も早く改善しなければいけないはずだ。
周りのことを考えず、ただ自分が大会で成績を残すように活動することが常態化した現在の姿こそ、最も避けるべき姿であると気づいた。
本来あるべき姿は、全員が全員を教えあって、大会に全員で出ることではないだろうか。大会成績は二の次であるべきで、メンバーの技術、知識の向上とメンバー相互の親睦を深めることに最大の重きを置くことこそ、全員が気持ちよく、楽しく、サークルをしながら大学生活を送ることができると考える。

もしも全く0の知識で入部した人が、健全に大学生活を送り(僕みたいに授業をさぼらない)、私たちのサークルで電子工作やプログラムを用いたロボットの製作ができるようになったら素晴らしいと思う。そして卒業するときに、このサークルにはいってよかったと思ってもらえるのなら、
Miceは未来永劫に安泰であると確信している!

さあ、美辞麗句を並べても仕方がない。次に具体的にどのような活動をするべきか提案する。
私が捉えた現問題の状態を以下に示す。

目標状態
・部員全員サークル活動を楽しめる。
・部員全員の技術が向上する。
・部員同士が自ずと仲良くなる。

初期状態
・サークル活動が楽しいのは部室によく来る人だけ
(私が決めつけるのもおかしいが、妥当ではないか。)
・技術の向上は一部だけ
・部室によく来る人だけで仲良くなる

ここで、先述のように私が思う根本の問題はマイクロマウスが難しすぎることとサークルの活動自体がMiceの目的に反した活動になってしまっていることである。
私は、マイクロマウスをキット化することを提案する。
ここで言うキット化とはプリント基板を作成し部品実装だけの状態を用意することである。
これによって、回路の設計、配線、回路のデバックがなくなる。NCで土台を作ることやデザインを決めることが残るが、ライントレーサーを終えたくらいなら丁度良い難易度ではないかと考える。
デメリットはある。大会の規定によって、そのキットマウスで大会に出た場合、上位1台しか入賞や予選通過が認められない。また、あらゆるものを犠牲にしてマイクロマウスに打ち込んだもの(以下 俳人と呼ぶ)は現れなくなるだろう。これはつまり飛び抜けた技術力を持つものがいなくなることを示す。しかし原点に返って考えれば、私たちの目的は俳人の産出にはなく、いかにメンバーの技術と高め親睦を図るかである。語弊を恐れずに言えば、抜きん出た技術力はいらないし、大会で上位を独占する必要もない。皆が楽しんで機体を動かし制御を学ぶには、提案したマウスのキット化が良いのではないかと思う。欲を言えば、もしかしたら、それでマウスの面白さにはまった人が将来次のキット化マウスやオリジナル機体を出してくれるかもしれない。
提案者であるからにはこの案が通れば私がキットを作成する。さらに、プリント基板の作り方を教えてほしいとか、回路の意味を教えてほしいなど要望があればいつでも講習を開こう。この議題に関係はないがOBOGはみんなMiceが好きなので協力してくれることは間違いない。

これによって期待される状態は以下である。

中間状態
・マウスを走らせられる人が増える
・つまっても機体の仕様が同じなので、お互いに教えあえる
・迷路がよく展開されマウスも走っており、新入生や入部を迷っている人の意欲を高める

この状態は目標状態へ直結すると考える。
以上で提案を終わる。

---------------------------------

まず、問題にあげた1枚目の1,2がそもそも問題であるのか認められなければ提案以下は関係ない。
  ―> 1,2が問題であるのか、解決が必要であるのか議論したい。

上が解決すべき問題であるなら、目標状態はどこにあるかを話し合いたい。
(私のはあくまで1意見で、目標状態は大会上位入賞かつ高い技術の永続的継承にあると思う人もいると思うし、部としては提案された意見の賛成が多いほうを目指すべきである)
  ―> Miceはどのような活動を目的とするべきか話し合いたい

上で決まった目的を達成するための、具体的な解決策を話し合いたい。
  ―> 具体的な解決策を話し合いたい
諭吉さん曰く「百回の説論を費やすは一回の実例を示すに若かず。」である。
批判より代案が欲しいよ。


Miceにお世話になった分、Miceをよりよくしたいと思いこの議題を提出する。
(元?)部長 照井 憲
時計
カテゴリ
最新記事
12月14日開始
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。