に行ってきました。
ぷーちん号ぷちは一応出走はしたけれど、スタートのセンサを切っただけで終わり。リタイアという名の実質棄権。
最小最軽量を狙ったんだけど、「完走してないけど別にいいよね部門」という余計な但し書きが付くことになってしまった。
「完走しないとマウスと呼べるわけねーだろ部門」の最軽量は依然あちらの方です。
そりゃ完走しないでいいなら何でもありになっちゃうけどさ。。。なんとかこいつを走るようにせねば。。。
去年は出なかったので今回は 2 年ぶりの競技でしたがやっぱり楽しいですね。また来年会いましょう。
お疲れさまでした。
2016-11-21
2016-11-13
タクトスイッチなんてなかった
ぷーちん号ぷちはまだ走りはじめていない。
ところでタクトスイッチは使わないことにした。
押すたびに緊張を強いられるスイッチなんて使ってられない。
操作は他のセンサで代替できるが、UART で Flash 書くときのブートモード選択は物理スイッチじゃないとできない。ということでそれは諦めて ST-LINK 使って SWD で書き込むことに。コネクタはないけどデバッグ用に底面にパッドは用意しておいたので、そこにばね接点で当たってみる。

指で押さえておく必要があるが (輪ゴムでもよい)、今のところ動いてる。よかった。ていうかパッドにはんだ付けしないと SWD 使えないという元々の設計がイケてなかった (コネクタのスペース的に無理だったんだけど)。
今頃こんなことしてる場合じゃないだろとも思うけど、このほうが効率化できてトータルでは捗るのである。きっと。
これでマウスにコネクタもスイッチも必要ないことが分かった。
2016-11-07
ハード完成 (見かけ上)
ぷーちん号ぷちです。
形にはなったけれど、見えてる問題としては
* ギアの噛み合わせが渋い。
* 自作光学式エンコーダのスキャン方法が決まってない。
* タクトスイッチが押しにくい。
ギアについて、今回も懲りずに噛み合わせの調整代がほぼない設計になってる。
ていうか軸ぶれがひどい。どうすんだこれ。
2番目のエンコーダは STM32 のペリフェラルの使いこなしの問題。
タクトスイッチ、わざわざ軽荷重で操作できるように選んだダブルアクションのタクトスイッチが押しにくい。
押し子をそれっぽく作ればなんとかなると思ってたが、実装位置的にそもそもどうにもならない気もしてきた。
形にはなったけれど、見えてる問題としては
* ギアの噛み合わせが渋い。
* 自作光学式エンコーダのスキャン方法が決まってない。
* タクトスイッチが押しにくい。
ギアについて、今回も懲りずに噛み合わせの調整代がほぼない設計になってる。
ていうか軸ぶれがひどい。どうすんだこれ。
2番目のエンコーダは STM32 のペリフェラルの使いこなしの問題。
タクトスイッチ、わざわざ軽荷重で操作できるように選んだダブルアクションのタクトスイッチが押しにくい。
押し子をそれっぽく作ればなんとかなると思ってたが、実装位置的にそもそもどうにもならない気もしてきた。
2016-10-31
2016-10-28
CubeMXのバグ
STM32F411 のソフト開発に CubeMX を使用中。
ペリフェラルの設定が非常に簡単なので便利だが、クロックの設定でバグ(たぶん)を踏んでしまった。
STM32 では HCLK の値によって Flash latency の値を変える必要があって、その設定コードは CubeMX が生成してくれる。
30MHz < HCLK <= 64MHz の時は Flash latency は 1 wait cycle、
64MHz < HCLK <= 90MHz では 2 wait cycle となる。
で、HCLK が 64MHz の時は 1 wait state になるはずが、なぜか 0 wait state のコードが吐き出される。
63MHz や 65MHz、他の境界値では正しい設定になってたが、64MHz だけおかしい。
こんなピンポイントなバグを踏んでしまうとは・・・
CubeMX のバグったコードが目に浮かぶようだ・・・
ちなみに CubeMX は Eclipse のプラグインのやつで、バージョンは 4.16.0.201607131424 です。
ペリフェラルの設定が非常に簡単なので便利だが、クロックの設定でバグ(たぶん)を踏んでしまった。
STM32 では HCLK の値によって Flash latency の値を変える必要があって、その設定コードは CubeMX が生成してくれる。
30MHz < HCLK <= 64MHz の時は Flash latency は 1 wait cycle、
64MHz < HCLK <= 90MHz では 2 wait cycle となる。
で、HCLK が 64MHz の時は 1 wait state になるはずが、なぜか 0 wait state のコードが吐き出される。
63MHz や 65MHz、他の境界値では正しい設定になってたが、64MHz だけおかしい。
こんなピンポイントなバグを踏んでしまうとは・・・
CubeMX のバグったコードが目に浮かぶようだ・・・
ちなみに CubeMX は Eclipse のプラグインのやつで、バージョンは 4.16.0.201607131424 です。
2016-10-25
基板実装
今作もホームリフローで実装。
前作でリフローできることが分かったので、調子の乗って小物系パーツに LGA とか BGA の部品を選定。新しくて良さげな部品って大体そういうきついパッケージしてる。
電源が入ることは確認したが、それ以外の部品については実際に動作確認するまではちゃんと実装できてるのかはっきりしない。とりあえずマイコンの QFN は実装できているように見える(ちょっと怪しいけど)。
全部の動作確認ができるまでは組み立てもできないので、ハードウェアの完成はまだだいぶ先になる。
リフローについては大会後に余裕あるときにまた書く予定。(書かないフラグ)
前作でリフローできることが分かったので、調子の乗って小物系パーツに LGA とか BGA の部品を選定。新しくて良さげな部品って大体そういうきついパッケージしてる。
電源が入ることは確認したが、それ以外の部品については実際に動作確認するまではちゃんと実装できてるのかはっきりしない。とりあえずマイコンの QFN は実装できているように見える(ちょっと怪しいけど)。
全部の動作確認ができるまでは組み立てもできないので、ハードウェアの完成はまだだいぶ先になる。
リフローについては大会後に余裕あるときにまた書く予定。(書かないフラグ)
登録:
投稿 (Atom)

