創活こんぺさん支部
http://bmj0312.blog.shinobi.jp/
ロボットとかマイコンとかモータースポーツのお話。
ja
2017-09-08T21:32:55+09:00
-
http://bmj0312.blog.shinobi.jp/robot/2016%E5%B9%B4%20%E7%9F%A5%E8%83%BD%E3%83%AD%E3%83%9C%E3%82%B3%E3%83%B3%EF%BC%8C%E5%85%88%E7%AB%AF%E3%82%82%E3%81%AE%E3%81%A5%E3%81%8F%E3%82%8A%E3%83%81%E3%83%A3%E3%83%AC%E3%83%B3%E3%82%B8
2016年 知能ロボコン,先端ものづくりチャレンジ
だいぶ時間が立ってしまいましたが,
2016年の知能ロボコン,先端ものづくりチャレンジin習志野
にルンバで参加しました。
まず知ロボ。
間に合いませんでした。
通信周りなどなどの不具合が取り切れず,開始後数十秒で制御が落ちちゃう(´・ω・`)
車を出してくれた友人には...
2016年の知能ロボコン,先端ものづくりチャレンジin習志野
にルンバで参加しました。
まず知ロボ。
間に合いませんでした。
通信周りなどなどの不具合が取り切れず,開始後数十秒で制御が落ちちゃう(´・ω・`)
車を出してくれた友人には非常に申し訳ない。
あまりにもダメダメだったので夕方には仙台観光と称してマルツ行ったりしてたところ,
最優秀ビデオ賞を受賞したことをtwitterで教えてもらうという不覚ぶり。。
それから半年後の先端ものづくりチャレンジ イン 習志野。初参加でした。
知ロボから半年たっていることもあり,ハード,ソフトともに大幅改善して挑むことができました。
ボール1つを(マシン上に)残してあとはすべて正しく仕分けることができ,結果は3位。
(知ロボだったらもはやパーフェクト前提なのでここまでの順位にはならないですね。。。)
センサ配置が悪いのか,
ボールを検知するために使用しているVL53L0の誤検知の影響でタイムロスしてます。
フィールド中央の島の角で何か見えちゃうんですよねぇ。
知ロボの時点ではVL6180Xを使用していました。測定距離が短いので誤検知は特になかったと記憶していますが,これはこれで,途中でフリーズする?問題があって曲者でした。
I2Cでデータは取れるものの,内部ステータス,距離値ともに変化しなくなるという状態です。数秒ごとにリセットかけることで回避していましたが,その間にボールに突っ込んでしまうこともしばしば。
どうしましょかね。カメラ?
ロボットの概要は下記スライドにて。
2017年の知ロボ記事はそのうち。。]]>
ロボット/電子工作
2017-09-08T21:32:54+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E7%A7%8B%E6%9C%88%E9%9B%BB%E5%AD%90%20sharp%205.5%E3%82%A4%E3%83%B3%E3%83%81%E9%AB%98%E7%B2%BE%E7%B4%B0%E6%B6%B2%E6%99%B6%E3%83%91%E3%83%8D%E3%83%AB
秋月電子 SHARP 5.5インチ高精細液晶パネル
秋月電子で販売している,これ!
SHARP 5.5インチ高精細CGシリコン液晶パネルセット 1080×1920ドット ラズパイ用
http://akizukidenshi.com/catalog/g/gM-11967/
ラズパイに良さそうと思って思わず買ってしまったんです。
し...
SHARP 5.5インチ高精細CGシリコン液晶パネルセット 1080×1920ドット ラズパイ用
http://akizukidenshi.com/catalog/g/gM-11967/
ラズパイに良さそうと思って思わず買ってしまったんです。
しかしこれ,薄い液晶パネルと基板を,すぐに断線しそうなフレキケーブルで繋いであるだけ…といった構成で,このままでは安心して使えません。
というわけで,レーザー加工機を使用してアクリル板でケースを作ってみました。
調べたらエンクロージャって言うみたいですね。
いい感じっヽ(´ー`)ノキツネかわいい。
横置きもこの通り
表から見たときに配線を隠すことができるよう,基板を配置しました。
電源と明るさ調整ボタンはアクリルパーツで押せるようになっています。
スタンド
アクリルパーツ同士の嵌合でできています。
縦置き横置き両対応。
エンクロージャ本体の溝とぴったり一致してずれないようになっています。
サイズ
146 x 88 x 15 mm (突起部,スタンド除く)
組み立て
部品一覧
エンクロージャ用アクリルパーツ 7枚
エンクロージャ用スイッチパーツ 1つ
プラネジ M3 x 6mm 4本
プラネジ M3 x 15mm 6本
スタンド用アクリルパーツ 4枚
①液晶を載せます。
見やすくするため保護紙を貼ったままにしています。実際に組み立てる際は,組み立て直前に剥がすと良いと思います。
②重ねる
液晶の外周を囲むようにはめ込みます。
③更に重ねて,フレキケーブルを引き出します。
④インターフェース基板(AE-LS055-MIPI)を載せます。
FFCを接続しておきます。
⑤FPCを折り返してインターフェース基板に接続します。
液晶側に力がかかりすぎないよう,しっかりコネクタ同士の位置を合わせてカチッと嵌めます。
⑥FFCを折り返し,アクリルを重ねます。これだけ3mm厚。
⑦ブリッジ基板(AE-HDMI-MIPI)にFFCを接続して,ネジ止めします。
⑧2枚重ねます。
⑨最後の一枚に,ボタンをはめ込みます。
⑩最後の一枚を重ねて表からネジ6本締めれば完成
保護紙を剥がす際は,テープでぺったんがおすすめです。
]]>
雑記
2017-08-31T23:57:50+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/%E9%9B%91%E8%A8%98/%E3%80%90%E7%9F%A5%E3%83%AD%E3%83%9C%E3%80%91%E5%86%8D%E9%96%8B%E2%80%A6
【知ロボ】再開…
しばらくRXマイコン使うと思うので、
いろいろ機能追加しつつルンバできちんと課題をクリアできるように目指してます。
ちょいとはまったのが、E2データフラッシュ。
ソフト書き直すたびに値が消されちゃって困ってました。
ルネサスのページ
によると、IDコードプロテクトの機能を使わないと全消去されると...
いろいろ機能追加しつつルンバできちんと課題をクリアできるように目指してます。
ちょいとはまったのが、E2データフラッシュ。
ソフト書き直すたびに値が消されちゃって困ってました。
ルネサスのページ
によると、IDコードプロテクトの機能を使わないと全消去されるとのこと。
さらに、それはUSBでの書き込みだとできないという残念な仕様…
USBでの書き込み速くていいんだけどなぁ。]]>
雑記
2016-12-05T23:36:26+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/%E3%80%90%E3%83%AB%E3%83%B3%E3%83%90%EF%BC%9Aroi%E3%80%91song%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89
【ルンバ:ROI】Songコマンド
ルンバでTRUTHを再生してみました。
音を出す系のコマンドではまったポイント。
「Roomba 500 Open Interface (OI) Specification」によると、
SongNumberは0~4で設定できると書いてあるが、
ルンバ770で試した所、4に設定すると再生されない。
...
音を出す系のコマンドではまったポイント。
「Roomba 500 Open Interface (OI) Specification」によると、
SongNumberは0~4で設定できると書いてあるが、
ルンバ770で試した所、4に設定すると再生されない。
0~3のみを使うようにして実装した。
・Matlabスクリプトでmidiファイルを読み込んで変換してます。
・和音出せないので、そういう曲だとちゃんと再生できない。]]>
ロボット/電子工作
2016-06-26T23:34:36+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/cubify%20design%E3%81%A7%E3%82%A4%E3%83%B3%E3%83%9C%E3%83%AA%E3%83%A5%E3%83%BC%E3%83%88%E3%81%AA%E6%AD%AF%E8%BB%8A%E3%82%92%E6%8F%8F%E3%81%8F
Cubify Designでインボリュートな歯車を描く
これをインストール。スクリプトでCubifyを操作する的な何かっぽい
http://www.wizotools.com/wizoscript
んでこのスクリプトを実行する。
http://www.britishideas.com/2013/04/25/involute-gears-in-alibre...
http://www.wizotools.com/wizoscript
んでこのスクリプトを実行する。
http://www.britishideas.com/2013/04/25/involute-gears-in-alibre-design/
以上!]]>
ロボット/電子工作
2016-04-01T22:50:50+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/%E3%80%90%E3%83%AB%E3%83%B3%E3%83%90%EF%BC%9Aroi%E3%80%91buttons%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%81%AE%E4%BD%BF%E7%94%A8
【ルンバ:ROI】Buttonsコマンドの使用
ルンバ770のボタン仕様について。
Buttonsで返ってくる値に癖があったのでメモ。
結果的には、状態によって立つビットが違うってこと。
普通に使う場合の表示に合わせて対応したビットが立つ。
ROIの仕様書にはこうあります。
Bit76543210ValueClockScheduleDayHou...
Buttonsで返ってくる値に癖があったのでメモ。
結果的には、状態によって立つビットが違うってこと。
普通に使う場合の表示に合わせて対応したビットが立つ。
ROIの仕様書にはこうあります。
Bit | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
Value | Clock | Schedule | Day | Hour | Minute | Dock | Spot | Clean |
んで、ルンバ上の表記はこう。
①初期状態
この状態でClockボタンを押すと、②の状態へ移行します。
② Clockを押す
ここでOKを押すと①の状態に戻ります。
Scheduleを押した時も同様。
で、Buttonsで返ってくる値は、
①の状態では対応したビットのみが立つ。
②の状態では、何も押していない場合はClockのビットがたった状態。
何かしらボタンを押すと、対応したビットに加えて、Clockのビットも立った値が返ってくる。
また、OKを押した時はClockのみが立った状態。すなわち、押したことを判別できない。状態は①に戻る。
そして、Cleanボタンを押すと0が返ってきて、状態は①に戻る。
ClockとScheduleボタンがこんな挙動。
ルンバ770だとボタンが4つ(Clean除いて)あるのですが、Buttonsで返される値のビットとの対応は状態によって変わるわけですね。
めんどいなぁ。状態によっては読めない一番右のボタンと、Cleanボタンの扱いをどうするか。。。
2016/06/11追記
ROIの資料だと下4bitしか載ってないので調査。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
OK | ゴミフルサイン | ダスト検知 | クリーン | Check Robot | Dock | Spot | Debris |
CleanボタンとバッテリLEDの表示は分かれていて、
LEDs(Opcode 139)のコマンドで送る
1バイト目の4bit目でCleanボタンのon/offを設定。
続く2バイトはクリーンボタンでなく、バッテリ表示の色と明るさの設定となる。
・・・けど、明るさは変えられないっぽい。
Scheduling LED Bitsも補完。
7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
DAY | HOUR | MINUTE | Schedule | Clock | AM | PM | Colon |
]]>
ロボット/電子工作
2016-03-26T00:35:54+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/roomba%20open%20interface%20-roi-
Roomba Open Interface (ROI)
例によってルンバと戯れています。
ちょっといまハマってる・気になってること
①速度司令コマンドで下2桁くらい四捨五入される?
速度司令出した後に、速度読むと、ちょっと違う値が返ってくる
-80で-78
-90で-92
-200で-199
②Cleanボタンの明るさ0にしても うっすら光る
...
ちょっといまハマってる・気になってること
①速度司令コマンドで下2桁くらい四捨五入される?
速度司令出した後に、速度読むと、ちょっと違う値が返ってくる
-80で-78
-90で-92
-200で-199
②Cleanボタンの明るさ0にしても うっすら光る
③コマンド送信間隔どこまで早く出来る?
受信は15msごと
モード切り替えてすぐは指令効かないみたい。(→20ms間は効かないっぽい?(2016/03/26))
④タイヤの回転方向変えた時にエンコーダずれないかな?
エンコーダのカウント方向はタイヤへの回転方向指令によるため
⑤音コマンド受け付けない…
ただただプログラムミスってた
⑥miniDinコネクタのL字のやつってないかな。もしくは短いの。
⑦iRobot_Roomba_500_Open_Interface_Spec.pdfたまに間違ってる
エンコーダのLとRが逆]]>
ロボット/電子工作
2016-03-25T21:35:11+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/ps3%E3%81%AE%E3%82%B3%E3%83%B3%E3%83%88%E3%83%AD%E3%83%BC%E3%83%A9%E3%82%92%E3%83%9E%E3%82%A4%E3%82%B3%E3%83%B3%E3%81%A7
PS3のコントローラをマイコンで
マイコンでお手軽にPS3コントローラを使えるようにするSBDBT。
http://www.runele.com/ca1/2/
基板にはPICが載ってるだけで、ソフトも公開されていることから、自作してみました。
Elecrowに発注。
届く。基板17枚。(黒い方はまた別の基板です。I2Cのカラーセン...
http://www.runele.com/ca1/2/
基板にはPICが載ってるだけで、ソフトも公開されていることから、自作してみました。
Elecrowに発注。
届く。基板17枚。(黒い方はまた別の基板です。I2Cのカラーセンサ。)マイコンはPIC24FJ64GB002ってやつ。
ソフトを少しいじって書き込み&動作確認。
こんなことができます。PS3コントローラでルンバを動かしつつ、パソコンでルンバの物理バンパーの接触状態を取得してます。
SBDBT基板一つでPCとPS3コントローラと通信できるので便利。
--- 接続概要 ---
パソコン ─ (Bluetooth) ─ SBDBTもどき基板 ─ ルンバ
PS3コントローラ ─ (Bluetooth) ┘
-------------------]]>
ロボット/電子工作
2016-03-16T00:12:08+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/vl6180x%E8%A9%A6%E9%A3%9F
VL6180X試食
ストロベリーリナックスで買えるVL6180X。
https://strawberry-linux.com/catalog/items?code=16180
測距センサですね。
よくあるSharpの奴とは違って、光が跳ね返ってくるまでの時間を計るタイプです。
なので物体の反射率とか形状に影響を受けにく...
https://strawberry-linux.com/catalog/items?code=16180
測距センサですね。
よくあるSharpの奴とは違って、光が跳ね返ってくるまでの時間を計るタイプです。
なので物体の反射率とか形状に影響を受けにくいとかなんとか
I2C面倒だなーと思いながら簡単に実装してみました。
でも何故か110mm程引いたされた値で取得されちゃいます(´・ω・`)
→アプリケーションノートのオススメ設定を試したらちゃんと計測できました(2016/03/15追記)
ひとまずやり方↓
【使い方(暫定版)】
I2C通信フォーマット
[I2Cアドレス(0x29)][レジスタ上位アドレス][レジスタ下位アドレス][データ][データ][…
送受信ともにこんな感じ。
詳細
1, 計測間隔を設定する
I2Cで0x00, 0x1B, 0x04を送る。
3バイト目で間隔を設定している。10msなら0x00, 20msなら0x01, …, 50msなら0x04
2, 連続計測モードにする
I2Cで0x00, 0x18, 0x03を送る
3, 計測結果を読む
I2Cで0x00, 0x62を送って1バイト受信
これでmm単位の値が取れます。
あと気になるのはI2Cアドレス書き換えられるかだけど、0x0212に7bitの新アドレスを書けば良いみたい。でも電源切ったら忘れちゃうみたい?意味ない!!!!???
GPIO-0が起動時にCEな機能を持つこととGPIO-1を組み合わせて使えないかかんがえちゅー
アプリケーションノートの初期化コードで、データシートに載ってないレジスタいじってるから何か隠されてるようだ。。。
-----------------------
2016/04/10 追記
Using multiple VL6180Xs in a single design
複数デバイスを使いたい時用アプリケーションノート見っけた。
使いたい数分のGPIOをマイコンとつなぐか、I2CでIO拡張するIC使う的な感じで対応するしかないみたい。]]>
ロボット/電子工作
2016-03-05T02:09:18+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)
-
http://bmj0312.blog.shinobi.jp/robot/sharp%E6%B8%AC%E8%B7%9D%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%ABgp2y0e03
SHARP測距モジュールGP2Y0E03
これ
http://akizukidenshi.com/catalog/g/gI-07547/
過去の測距モジュールと比較して、とっても小さくなりましたねっ。
いつものアナログ出力に加え、I2Cで接続できるのでポートをたくさん消費することなく複数台使えるようになったのが特徴。(16台までね)
さら...
http://akizukidenshi.com/catalog/g/gI-07547/
過去の測距モジュールと比較して、とっても小さくなりましたねっ。
いつものアナログ出力に加え、I2Cで接続できるのでポートをたくさん消費することなく複数台使えるようになったのが特徴。(16台までね)
さらに、コマンドを送ってフィルタの設定とかしたりスリープ入れられたりします。
昨年の知能ロボコンマシンでお世話になりました。
複数台使うためにはそれぞれに異なったI2Cアドレスを設定する必要があります。
ちょっと面倒だったのでやり方メモ。
【参考】
http://www.sharp.co.jp/products/device/doc/opto/gp2y0e02_03_appl_e.pdf
まずは写真のピンにハンダ付け。(アドレス書き換え時に使うだけなのでてきとーでおっけーヽ(´ー`)ノ
これ電源なんで、マイコンからFETとかでon/offできるように回路構成してください(50mA流せればok。以下"電源"と言ったらこのピンのこと)。
あとはデータシートのFig.40、Table.20あたりを参考に、ハンダ付けした電源ピンをon/offしつつI2Cでコマンド送るだけです。
ただし、一回きりしか変更できないっぽいので要注意。
----------
・電源offにする
【Stage1】
・I2Cで0xEC, 0xFFを送る。 (Fig.40だと0xEFを書くようになってるけど誤植?)
・送信終わったら電源をon
【Stage2】
・I2Cで0xC8, 0x00を送る。
【Stage3】
・I2Cで0xC9, 0x45を送る。
【Stage4】
・I2Cで0xCD, 新アドレスを送る (使えるアドレスはデータシートのTable.21参照)
【Stage5】
・I2Cで0xCA, 0x01を送る
・500us待つ (E-fuse書き込み待ち)
・電源offにする
----------
ひとまずここまでやればアドレスが変更されます。
データシートだとこの後ちゃんと書けたかどうか確認してるみたい(?
Stage6以降は新しいI2Cアドレスでアクセスするみたい(未確認
というわけで、無事量産出来ましたとさ。]]>
ロボット/電子工作
2016-02-26T22:32:05+09:00
こんぺ~ (@conpe_)
NINJA BLOG
こんぺ~ (@conpe_)