2足歩行のmbed+bluetoothドングルのspp通信がうまくいかない.
(serialのバグ?mbedのブラックボックスにハマった?)
仕方がないのでsh7137(滝田技研)+Xbee wifiに構成を変更した.
XbeeシリーズはPCと専用ソフトでもって通信方式形式、場合によってはA/D変換などの機能を設定できる.
そのソフトがX-CTUというのだが、こいつがどうにも不安定でかなわない.
原因を追うとX-CTUが設定値を読み込み始めるとXbeeがリセットしている模様.
ソフト側ではなく回路側の問題だった.
(Xbeeは起動電流が極端に大きいらしい.)
秋月の"XBee USBインターフェースボードキット"の3.3Vラインに470uFをバイパス.
usbバスパワーでも問題なく動作するようになった.
デブリ集積所
Debris Depot
ロボット製作日誌&適当なメモ
2013/02/07
2012/11/15
設計完了
CADを書き終えた.
2860g
ネジ入れればちょうど3kgといった所か.
2860g
ネジ入れればちょうど3kgといった所か.
二足モード
全肢とも平行リンク独立ピッチである.
肢の根本にロールヨーピッチ軸(非直行)があるので大方どんな姿勢でも取ることができる.
腰ヨーがないので起き上がりと前攻撃が難しい^^;
四足モード
四足にすると足首についたPEEKスペーサが足裏として接地する.
四足時は無駄な自由度が多い.故にキモい動きができる.
頭のピラミッドにはセンサとコネクタハブが入る
足の機構
膝サーボ1つで2つの平行リンクを駆動する.
足の前後は独立ピッチで行わせる.
また、ゴムひもをかけることでトルク補助を行う .
2012/11/06
形にはしたが
臓物もろもろ込で3kg オーバー orz
サーボモータ(KRS-4034)を重量を実測したところ
モータ+ホーン+フリーホーン+ケーブルで71g.
昨日は65gで計算していたので
モータ(24ケ)だけで144gほど追加された事になる.
これから修正.
もうシリアルリンクでいいんじゃないだろうか
サーボモータ(KRS-4034)を重量を実測したところ
モータ+ホーン+フリーホーン+ケーブルで71g.
昨日は65gで計算していたので
モータ(24ケ)だけで144gほど追加された事になる.
これから修正.
もうシリアルリンクでいいんじゃないだろうか
2012/11/04
重量が・・・
ひたすらに重い.
これでネジとバッテリーが計算に入ってないのです.
以下考えられる改良点
ベアリング→ブッシュで -100g
スラストベアリング→テフロンスペーサで -120g
ロールの片持ちやめる -90g
削りだし→板金 ?g
ピッチ間を短くする ?g
5mm厚→3mm厚にする(3mm厚にM2側面タップ) ?g
これでネジとバッテリーが計算に入ってないのです.
以下考えられる改良点
ベアリング→ブッシュで -100g
スラストベアリング→テフロンスペーサで -120g
ロールの片持ちやめる -90g
削りだし→板金 ?g
ピッチ間を短くする ?g
5mm厚→3mm厚にする(3mm厚にM2側面タップ) ?g
2012/11/01
Inventorでインボリュート歯車
Inventorと歯型データのみで歯車のソリッドモデルを作る方法
小原歯車工業で歯車のDXFデータを落とす(歯型計算を利用)
Inventorのスケッチ から"Autocadファイルを挿入"
歯型の部分を押し出しサーフェイス
サーフェスをミラー
歯数だけ円環状パターン
念のため、サーフェイスからステッチを実行
グローバル平面にスケッチで断面エッジを投影
お好みの厚さで押し出し
サーフェイスを非表示にして
完成!
小原歯車工業で歯車のDXFデータを落とす(歯型計算を利用)
Inventorのスケッチ から"Autocadファイルを挿入"
サーフェスをミラー
歯数だけ円環状パターン
念のため、サーフェイスからステッチを実行
グローバル平面にスケッチで断面エッジを投影
お好みの厚さで押し出し
サーフェイスを非表示にして
完成!
2012/06/14
mbedで相手のMACアドレスを指定する
mbedのBlueUsbで接続デバイスのMACアドレスを指定する方法.
TestShell.cppのConnectDevices()を以下のように書き換える.
void ConnectDevices()
{
BTDevice* devs[8];
int count = gHCI->GetDevices(devs,8);
for (int i = 0; i < count; i++)
{
printfBytes("DEVICE CLASS",devs[i]->_info.dev_class,3);
if (devs[i]->_handle == 0)
{
BD_ADDR* bd = &devs[i]->_info.bdaddr;
if(bd->addr[5]== 0x## && bd->addr[4]== 0x## && bd->addr[3]== 0x## && bd->addr[2]== 0x## && bd->addr[1]== 0x## && bd->addr[0]== 0x##);
else continue;
printf("Connecting to ");
printf(bd);
printf("\n");
gHCI->CreateConnection(bd);
}
}
}
太字部分を追加.
bd->addr[5]を先頭アドレスとして##に接続したいデバイスのMACアドレスを入力する.
これでbluetoothが飛び交う環境でも目的のデバイスに接続できるようになる.
TestShell.cppのConnectDevices()を以下のように書き換える.
void ConnectDevices()
{
BTDevice* devs[8];
int count = gHCI->GetDevices(devs,8);
for (int i = 0; i < count; i++)
{
printfBytes("DEVICE CLASS",devs[i]->_info.dev_class,3);
if (devs[i]->_handle == 0)
{
BD_ADDR* bd = &devs[i]->_info.bdaddr;
if(bd->addr[5]== 0x## && bd->addr[4]== 0x## && bd->addr[3]== 0x## && bd->addr[2]== 0x## && bd->addr[1]== 0x## && bd->addr[0]== 0x##);
else continue;
printf("Connecting to ");
printf(bd);
printf("\n");
gHCI->CreateConnection(bd);
}
}
}
太字部分を追加.
bd->addr[5]を先頭アドレスとして##に接続したいデバイスのMACアドレスを入力する.
これでbluetoothが飛び交う環境でも目的のデバイスに接続できるようになる.
登録:
投稿 (Atom)