スポンサーサイト

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

苺サーボでヒューマノイドを作る その2

こんばんは。
そろそろ世間は夏休みでしょうか? 電車で親子連れや子供をよく見ます。

前回の実験にサーボモータを7つ追加して再実験しました。
今回も以下の項目を調べます。
 ・トルク
 ・消費電流
 ・消費電力

実験に使用したサーボは以下の8つです。すべてシリアル(コマンド)サーボとなっています。
選定基準は手元に合ったものや、借りられたものです。

・Pirkus
PRS-DE07MS
PRS-S40M

・Futaba
RS301CR-H3b
RS405CB

・KONDO
KRS-6003HV ICS
KRS-4033HV ICS
KRS-4034HV ICS
KRS-2552RHV ICS

実験の詳細や様子は以下の動画を御覧ください。


実験結果として、およその値ですが以下のようになりました。
シリアルサーボ実験結果
*この値はこちらの実験環境による結果なので参考程度に留めてください。

 実験結果を眺めるとRS-DE07MS以外は、公称値のトルクより低く出ました。
どのように公証トルクを算出しているのかわからないのでなんとも言えませんが、実験機材の都合として3 [kg]までしか計測できないので200 [mm]という長いアームのせいでうまくトルクが伝達していないのかもしれません。
しかし、実際にはロボットに組み込むので損失は絶対に発生します。
そいう意味ではそのへんも考慮しながら結果を眺めるといいかもしれません。

 消費電流はKRS-4034HVが出力トルクを考えると群を抜いて低いです。すごくエコみたいです。

また、本実験の動画にない注意としてサーボモータが全て新品というわけではありません。
RS301CR、KRS-6003HV、KRS-4033HV、KRS-4034HVだけが新品となっています。
なので、古いサーボほどへたっている可能があります。
それと、動画を見ればわかるのですが、サーボ出力が安定せず採用した値が妥当かどうかはわからないので、動画からご自分で考えていただけると助かります。

 ロボメカの後輩がすでにPWMサーボで同様の実験を行なっていますので、そちらの動画も楽しみにしたいです。
それでは今回はここまでです。

最後に、今回の実験に協力してくれた皆様ありがとうございました。

テーマ : ホビーロボット
ジャンル : コンピュータ

苺サーボでヒューマノイドをつくる その1

 久しぶりにヒューマノイドロボットを仲間と作ることにしました。
ヒューマノイドは2人でチームを組んで作っていたのですが、今回は新たに後輩に参加してもらいました。
電気回路に強いM1と、オールラウンドになんでもこなす優秀なB3の二人です。

まずは準備として、今まで使っていた苺サーボ(PRS-S40M)の特性を測定しなおしました。
調べる項目は、以下の3つです。
 ・トルク
 ・消費電流
 ・消費電力

今まで電気系統が貧弱だったので、今回は安定した電気系統にするために消費電力などを知る必要があります。
実験内容は動画にしてYoutubeにUPしたので以下の動画で御覧ください。



実験結果として、およその値ですが以下のようになりました。

実験結果
印加電圧8.4 [V]
消費電流2.9 [A]
消費電力24 [W]
トルク23 [kg・cm]

*この値はこちらの実験環境による結果なので参考程度に留めてください。

他の会社のサーボモータなどでも比較のために試してみたくなりました。
ストール時の消費電流は結構大きく、予想を上回っています。
全部のサーボが一度にストールするとは考えられませんが、電気系統の設計を後輩には頑張ってもらわないといけないことがわかりました。
それでは今回はここまでです。

テーマ : ホビーロボット
ジャンル : コンピュータ

pyMCUで遊んで見る その2

 こんにちは。
今日はこのまえ紹介したpyMCUについてです。

前回はLEDがチカチカするだけでしたが、今回は7セグメントLEDを使用します。
参考にする例題はこちらです
http://www.pymcu.com/SevenSegmentLED.html

準備する部品一覧です。
高輝度ブルー7セグメントLED表示器(カソードコモン)C-551UB
カーボン抵抗(炭素皮膜抵抗) 1/4W220Ω 7本

例題で使用している7セグメントLEDはアノードコモンで、私が用意したのはカソードコモンとなっています。
単に在庫があったので使用しているのでどちらでも構いません。
ただし、当たり前ですがアノードコモンとカソードコモンで回路とプログラムが異なるので注意して下さい。
アノードコモンの回路とプログラムは例題を見てもらうとして、この記事ではカソードコモン用の回路とプログラムを記述します。

使用する7セグメントLEDと回路は以下のようになります。
pyMCU:7LED回路
抵抗値は好みに合わせて決めて下さい。
実際にブレッドボードに実装したのが以下の図です。
pyMCU:7LED回路実装

それでは次に環境設定です。
前回import sysのsys.pathにpymcuなどのフォルダを追加しましたが、その方法では一時的にしか追加されないとうい事がその後わかりました。
Windows上において自分のフォルダを追加するには、環境変数に記述する必要があります。
以下の変数を新規で作成します。

追記2012/07/19:Linux上においてもsys.pathには一時的にしか追加できず、PYTHONPATHに記述する必要があるようです。


変数名:PYTHONPATH
変数値:C:\Python26\Lib\site-packages\pymcu-1.0.8;C:\Python26\Lib\site-packages\pyserial-2.6


PYTHONPATHという変数名は決まった変数名で、この変数をPythonが自動的に参照してくれるようです。
この環境変数はsiteにもsysにも関係ないので、sys.pathにもこの変数の値は反映されないようです。
これで永続的に自分が用意したフォルダを参照出来るようになりました。

最後にプログラムを入力し、7セグメ ントLEDを点灯させます。


>>> import pymcu
>>> mb = pymcu.mcuModule()


ここまでは前回同様です。
pymcuモジュールをインポートし、pyMCUのボードを初期化します。



>>> led = [[1,2,3,4,5,6],[2,3],[1,2,7,5,4],[1,2,7,3,4],[6,7,2,3],[1,6,7,3,4],[1,6,5,4,3,7],[1,2,3],[1,2,3,4,5,6,7],[1,2,3,4,6,7]]


次にledというリストに上記のリストを入れ子にします。
これは順に0-1-2-3-4-5-6-7-8-9を表現するためにどのLEDを光らせるかというものです。
先ほど示した図のように、A-Gまである7セグメントLEDのどの位置を光らせれば目的の数字が得られるか考えれば、数字の意味がわかると思います。


>>> mb.pinLow([1,2,3,4,5,6,7])


1-7までのIOをLowにします(Highで点灯)。


>>> x = 0
>>> while 1:
        mb.pinLow([1,2,3,4,5,6,7])
        mb.pinHigh(led[x])
        mb.pausems(500)
        x += 1
        if x > 9:
                x = 0


xという変数を用意し、whileの中でカウンターの役割をさせます。
whileで無限ループを作り、プログラムを止めるまでカウントを繰り返させます。
mb.pinLow([1,2,3,4,5,6,7])は点灯しているLEDを消灯し初期化します。
mb.pinHigh(led[x])で順々に0-9までの数字を表示します。
mb.pausems(500)500 [ms]ウェイトします。
x += 1で次の数字に移ります。
if x > 9:変数xが9より大きければx = 0でカウントーを初期化します。

最後にプログラムから抜けるときはCtrl+Cで抜けることができます。
実際に実行すると以下のように数字がカウントされます(写真なので2だけですが)。
pyMCU:7LED点灯
以上のように簡単に7セグメントLEDが制御できました。
今回はここまでとなります。

テーマ : ホビーロボット
ジャンル : コンピュータ

pyMCUで遊んで見る その1

 こんばんは。
今日は友人から借りているマイコン”pyMCU”について書きます。
公式ページ:http://www.pymcu.com/index.html
pyMCU:外観

このマイコンはまだマニアック過ぎて日本では公式ホームページからしか買えないようですが、そのうち流行ると思います。

"pyMCU”の特徴はなんと言ってもPythonでプログラム可能な点です。
Pythonなのでコンパイルもいらず、対話型シェルから気軽に動かせます。
テストが簡単にできたり、開発環境の準備が非常に簡単などメリット満載です。

今回は開発環境を用意します。
ちなみに私の環境は以下のとおりです。基本的な説明はWindows基準で行います。
Windows7 64bit
Python2.6.6
pymcu1.0.8
pyserial2.6

1.Pythonのダウンロード
http://www.python.jp/Zope/download/pythoncore
ここから好きなPythonをダウンロードします。
ちなみに、私はPython2.6.6を使用していたので、2.6.6を使用していますが、2.7系列が推奨のようです。
このあとの作業を考えると2.7系列が良いでしょう。

2.Pythonのインストール
インストーラを起動して、順次したがっていきます。
インストール先はCドライブ直下にあるとしてこの先は説明します。

3.pymcuのダウンロード
以下のサイトからpymcuをDLします。
http://pypi.python.org/pypi/pymcu/1.0.8

4.pyserialのダウンロード
*この作業はPython2.7の人は最初から入っていると思われるので多分いりません。
以下のサイトからpyserialをDLします。
http://pypi.python.org/pypi/pyserial/2.6

5.pymcuとpyserialモジュールのパス設定
ダウンロードしたpymcuとpyserialを展開し、以下のフォルダ上に配置します。
C:\Python26\Lib\site-packages
*バージョンが違う人は適せん読み替えsite-packages下に配置して下さい。
ここにフォルダごと移しましょう。
次にPythonを立ち上げ、対話シェルで以下のようなコマンドを入力します。


>>> import sys
>>> sys.path.append('C:\\Python26\\lib\\site-packages\\pymcu-1.0.8')
>>> sys.path.append('C:\Python26\Lib\site-packages\pyserial-2.6')


と打ちましょう。最後に


>>> sys.path
['C:\\Python26\\Lib\\idlelib', 'C:\\Windows\\system32\\python26.zip', 'C:\\Python26\\DLLs', 'C:\\Python26\\lib', 'C:\\Python26\\lib\\plat-win', 'C:\\Python26\\lib\\lib-tk', 'C:\\Python26', 'C:\\Python26\\lib\\site-packages', 'C:\\Python26\\lib\\site-packages\\OpenRTM_aist', 'C:\\Python26\\lib\\site-packages\\OpenRTM_aist\\RTM_IDL', 'C:\\Python26\\lib\\site-packages\\pymcu-1.0.8', 'C:\\Python26\\Lib\\site-packages\\pyserial-2.6']


と入力し、パスが追加されているか確認します。
これは私の環境のものなので、完全には一緒にならないと思います。
重要なのは"pymcu"と”pyserial”が追加されているかどうかです。
*ちなみにモジュールの追加場所はどこでも構いませんが、Pythonはsite-packagesに入れることを推奨しているようです。

6.環境設定の確認
対話シェルに以下のコマンドを入力して下さい。


>>> import pymcu


pymcuをインポートしてエラーが出なければ環境設定は完了です。
もしpymcuをインポートして以下のようなエラーが出た場合はモジュールがうまく取り込めていません。


>>> import pymcu
Traceback (most recent call last):
File "", line 1, in
import pymcu
File "C:\Python26\lib\site-packages\pymcu-1.0.8\pymcu.py", line 12, in
import sys, os, serial, time
ImportError: No module named serial


pyserialが見つかっていないので、もう一度パスが合っているか確認してやり直して下さい。

7.動作確認
それでは早速動作させてみましょう。
以下の公式チュートリアルのBlinking an LEDをやってみます。
http://www.pymcu.com/BlinkingLed.html

このチュートリアルには回路図や実装図まであるので非常にわかりやすです。
開発にはブレッドボードを使うとやりやすいとおもいます。

用意するものは以下のものです。ただし、あくまでも例で正直なんでも構いません。
・ブレッドボード
EIC-801
・LED
L314LBD 
・抵抗
カーボン抵抗1/4W 330Ω
・配線
ブレッドボード・ジャンパーコード(オス-オス)セット


 
import pymcu # pymcuモジュールのインポート

mb = pymcu.mcuModule() # pymcuの初期化 pymcuとPCの接続を行います COMやBaudrateの設定は自動

for x in range(25): # 25回ループ
mb.pinHigh(1) # IOのD1をHighに設定 LEDが光る
mb.pausems(500) # 500ms待つ
mb.pinLow(1) # IOのD1をLowに設定 LEDが消える
mb.pausems(500) # 500ms待つ


このプログラムを実行するとLEDが点滅してある程度したら終了すると思います。
pyMCU:LED点滅

これでpymcuの導入編は終わりです。

テーマ : ホビーロボット
ジャンル : コンピュータ

友人の就職を祝う

お久しぶりです。

友人の誕生日を祝うで祝った友達がめでたく就職しましたので、プレゼントを作りました。

その友人はイタリア料理屋で真面目にバイトしてたので、イタリア料理が上手です。
というわけで、プレゼントついでに料理を作ってもらえるように、料理道具をプレゼントしました。

料理道具としてまな板を選定し、”まぁまな板にレーザー彫刻でもしてプレゼントすることにするか”と仲間と話し合い決めました。
そして、レーザー彫刻するなら、これのオープニングに出てくるアレ風にするしかありません。
何を隠そうネットで話題になる前からMOCO'Sキッチンの大ファンだった私は、これがやりたくして仕方ありませんでした。

作り方としては、
1.友人の顔写真を入手する
2.余計な背景を消す
3.8bitくらいのグレースケールに変換
4.変換後顔の影などが気になれば、変換を取りやめ、影などを消したり、潰したりする
5.気に入ったグレースケールができたら、適当に似ているフォントを選び文字を入れる
6.適当な木のまな板を買ってきて、レーザー彫刻を行う
7.彫刻後サンドペーパーなどで表面を仕上げる

という具合です。
実際には西友で買ってきたまな板の出来が酷かったので、切ったり削ったりしてます。
また、友人の名前がたまたま元ネタ(MOCO'S)に近かったので良かったですが、遠い場合はなんとかもじって寄せてください。

出来たまな板が以下のモノです。
MOKU'Oまな板
実用に耐えうるよう表面の強度もろもろを考えて、彫刻の深さは薄めにしました。
あと時間がなく同じフォントを探したり、作ったりすることができなかったので、そのへんは時間を作ってやればよかったと反省してます。

これがプレゼントしたときの友人です。
MOKU'O


プライバシーを尊重してメガネをぼかしてます。
しかしこの写真からでもうれしそうな笑顔が伝わります♪
その後友人にイタリア料理を作ってもらい、楽しい飲み会となりました。
この仲間達とは大学出たあとも付き合って行きたいです。

プレゼント制作班の人お疲れ様でした。
MOKU'Oくん就職おめでとう。

それでは、今回は終わりです。
月別アーカイブ
カテゴリ
FC2カウンター
最新コメント
リンク
最新トラックバック
検索フォーム
RSSリンクの表示
ブロとも申請フォーム

この人とブロともになる

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