「featured」タグアーカイブ

初めまして、塚本です。
スマートロボティクス社へインターンシップにやってきました。

実際に会社の中に入り、二週にわたり、7日間、
”3Dプリンタを用いたロボット用エンドエフェクタの開発”に取り組みました。

対象は自由に設定してOKとのことだったので、トマトやミカンなどの、
球体状の野菜・果物の把持を目的として取り組みました。

ラフ画で設計案をまとめ、、、

3DCADで設計を詰め、、、

3Dプリンタで制作をしました。

 

このハンドの特徴としては、馴染み把持が可能な点です。
なるべく力を分散させることで、対象を優しくしっかり持てるのではないかという狙いです。

3Dプリンタの特徴である、設計の自由度の高さと制作スピードの速さを生かし、試作を重ねました。

実際に形にしないとわからないこともあるので、スピード感を落とさず現物での確認ができる3Dプリンタは大きな役割を果たしてくれました。
特に、バネの張力の確認や、リンク長や角度などのパラメータの調節を、実物使いながら確認しながらできた点が便利でした。

1週間と少しの間、皆さんと同じ空間で作業をさせていただいて、とても楽しい時間を過ごせたうえ、3Dプリンタの素晴らしさを知ってしまいました(笑)
自宅導入も検討したいと思います(笑)

最後に、簡単に動作実験をしてみたので、ぜひご覧ください。

 


概要

BLEデバイスを使用し、BLEタグをハックする

想定読者

Arduinoなどを使用しBLEデバイスを作った後、実際にBLEデバイス量産を踏まえた開発を行ってみたい方

はじめに

こんにちは。ハードエンジニアの川越です。
IoTデバイス等でBLEデバイスの開発をしたい!となると、実際の商品化を前提に開発を進める事が出てくると思います。
今回は、量産化を踏まえた開発が可能な開発キットを使って、市販のBLEタグをハックし、Lチカするまでを紹介したいと思います。(2017/1月に書いてからずっと放置していた記事なのでちょっと古い情報です)

開発デバイス&環境

BLEモジュール

低消費電力ながら処理能力の高いCortex-M4を搭載した、SiliconLabs「BGM113」開発キットを使用します。
BGM113
BGM113 開発キット

BLEタグ

Amazonで販売していた「Logitec Bluetooth 4.0対応 BLEタグ」を使用します
BLEタグ

開発環境

BlueGeckoシリーズ用の開発言語、BGScriptを使用します
(BLE開発が初めてという方にお勧めの開発言語との事ですが…言語としての制限が多すぎるので、Cでの開発がおすすめです)

タグの解析

BLEタグを外部から制御する為に、タグの解析を行います。
BLE接続が可能なアプリを使用し、内部でLED点灯に関係していそうな値を探します
今回は、Alert Levelに0x01 or 0x02を書き込んだところ、LEDの点灯が出来ました

コンパイルの実行まで

  1. 開発環境ダウンロード先
  2. インストーラ選択bgm
  3. コマンドラインより[bgbuild.exeのパス  bgプロジェクトのパス  -f]を実行
    例 : 「C:\SiliconLabs\bgm-1.0.4-1073\bin\bgbuild.exe XXX.bgproj -f」

タグに接続し、LEDを点灯させる

  • BGScript(.bgs)
# le_gap_scan_response
dim lg_i # overall ad data position index
dim lg_j # individual ad field position index
dim ad_field_length
dim ad_field_type

event system_boot(major, minor, patch, build, bootloader, hw)
 # configure scanning (100ms interval, 100ms window, passive)
 call le_gap_set_scan_parameters(160, 160, 0)

 # start scanning
 call le_gap_discover(le_gap_discover_generic)
end

event le_gap_scan_response(rssi, packet_type, sender, address_type, bonding, data_len, data_data)

 lg_i = 0

 while lg_i < data_len
 
 ad_field_length = data_data(lg_i:1)
 ad_field_type = data_data(lg_i + 1:1)

 if sender(0:3) = $02E2C7 && sender(3:3)=$441319 then
 if ad_field_type = $02 || ad_field_type = $03 then # partial ($02) or complete ($03) list of 16-bit UUIDs
 lg_j = 0
 
 while lg_j < ad_field_length

 if data_data(lg_i + lg_j + 2:1) = $1802 && data_data(lg_i + lg_j + 3:1) = $2A06 then
 call le_gap_end_procedure()
 call le_gap_open(sender(0:6),address_type)

 # set loop counters to 100 so we'll stop looking
 # (there is no "break" function in BGScript)
 lg_i = 100
 lg_j = 100
 end if

 lg_j = lg_j + 2

 end while
 end if
 end if

 lg_i = lg_i + ad_field_length + 1

 end while
end

event le_connection_opened(address,address_type,master,connection,bonding)
# connection established
 call gatt_write_characteristic_value_without_response(connection, address(:), 1, $01)
end

まとめ

実際の開発に当たっては、Simplicity Studioを使用して開発する事になるかと思いますが、IoTデバイス開発に必須の電源測定機能など、開発に必要な機能が各種ありますのでおすすめです。が、BGScriptでの開発は…マジでやめておきましょう。配列使えないとかあるので。

補足

本デバイスをそもそも使用したのは
1. 外部ネットワークからWifi経由でBLEデバイスを制御したい
2. 外部ネットワーク操作からデバイスがレスポンスするまで1s程度
3. BLEデバイスをボタン電池2個で1年持たせる
という要件があり、それの検証時に使用したものです。
IoTデバイス開発でお困りの方がみえましたら、ご相談頂けますと幸いです。


概要

NAO専用椅子の紹介(スマロボから販売予定です。興味がありましたら、お問い合わせ下さい)
なお、開発にあたっては、Fubright株式会社様と共同で開発させて頂いております

はじめに

07/27-30に開催されるロボカップにスマロボも展示するよ!の宣伝のために、急遽ブログを書いているハードエンジニアのGoe3です。

NAO向けの椅子を作った経緯

NAOを使って頂いている方々から、NAOの展示や受付等を行う際に「転ぶのが心配だなーでも座らせると体育座りだから机の上ではちょっと…」というお話を頂きます
スマロボでも、NAO用の椅子って作れないかな?という相談を受けました。

既製品は存在する?

NAOの椅子は、既製品として既に樹脂製やDIYの物があったりしますが、他社製のものは20~30万くらいしちゃうんで、気軽には買えない気がします。
他社充電機能付 $2,490
DIY 個人製作?
という訳で木材(MDF)を使って、設計・デザインしてみました。

CADイメージ

NAOが座る部分は、若干摩耗していくので、矢印の2パーツは取り換え可能になっていたり、背面の穴を使って、充電ケーブルを固定可能です。

 

実物

座らせるとこんなイメージになります。
写真はMDFのままですが、製品の方は塗装仕上げを行いますので、より木材に近い質感と耐久性が向上したものになります!

まとめ

ロボカップでも、これらガジェットや、自社開発ロボット、その他ロボット関連の製品を展示しておりますので、ぜひ遊びに来て下さい

おまけ

ちなみに、PCアームでがっつりNAOを支えたいなーという方はこちら