説明 RobovieMaker2 内の .txt アクションファイルから、指定されたアクションフレームを読み込みます。 構文 myframe.load(filename, frame_name) パラメータ myframe: ServoFrameVstone 型のオブジェクト。 filename: RobovieMaker2 によって保存された .txt アクションファイルの名前。注: この関数は、SDカードのルートディレクトリからのみアクションファイルを検索します。86DuinoにSDカードが挿入されていない場合、または指定されたファイルがSDカード上に存在しない場合、読み込みは失敗します。 frame_name: アクションフレームの名前(RobovieMaker2で確認できます)。 戻り値 true: ファイルの読み込みに成功しました。False: ファイルの読み込みに失敗しました。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #include <Servo86.h> Servo myservo0; Servo myservo1; Servo myservo2; ServoFrameVstone […]
説明 positions[] 配列の内容を、ServoFrame で読み込み可能なモーションフレームファイルとして保存します。 構文 servoframevstone.save(filename) パラメータ myframe: ServoFrameVstone 型のオブジェクト。 filename: モーションフレームファイル名。注: ファイルはSDカードのルートディレクトリに保存されます。86DuinoにSDカードが挿入されていない場合は保存に失敗します。 戻り値 True: ファイルは正常に保存されました。 False: ファイルは正常に保存されませんでした。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 #include <Servo86.h> ServoFrameVstone myframe; void setup() { myframe.positions[0] = 1800; //フレームのコンテンツを設定 myframe.positions[1] = 1300; myframe.positions[2] = 2000; myframe.save("frm0.txt"); //アクションフレームを"frm0.txt"に保存します。 […]
説明 指定されたサーボの目標位置を、positions[] 配列に格納されているモーションフレームに設定し、同時にサーボに移動命令を出します。playPositions() を呼び出した後、サーボの移動処理がバックグラウンドで継続されている間、プログラムは他のタスクを続行できます。サーボが目標位置に到達したかどうかを確認するには、isServoMultiMoving() を呼び出します。 文法 myframe.playPositions() myframe.playPositions(servo0) myframe.playPositions(servo0,servo1) myframe.playPositions(servo0, servo1, ... , servo44) myframe.playPositions(time) myframe.playPositions(time,servo0) myframe.playPositions(time,servo0,servo1) myframe.playPositions(time,servo0,servo1, ... ,servo44) パラメータ myframe: ServoFrameVstone 型のオブジェクト。 servo0 ~servo44 (オプション): Servo 型のオブジェクト。servo0 は positions[0] の値を使用し、servo1 は positions[1] の値を使用します。以下同様です。 time (オプション): サーボが目標位置に到達するまでの時間を指定します。この値が指定されていないか 0 に設定されている場合、サーボは最大速度で回転します。 ポストバック なし 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 […]
説明 指定されたサーボのターゲット位置を、positions[]配列に格納されているアクションフレームの内容に設定します。 文法 myframe.setPositions() myframe.setPositions(servo0) myframe.setPositions(servo0,servo1) myframe.setPositions(servo0, servo1, ... , servo44) myframe.setPositions(time) myframe.setPositions(time,servo0) myframe.setPositions(time, servo0, servo1) myframe.setPositions(time, servo0, servo1, ... , servo44) パラメータ myframe: ServoFrameVstone タイプのオブジェクト 。 servo0 ~servo44 (オプション): Servo 型のオブジェクト。servo0 は positions[0] の値を使用し、servo1 は positions[1] の値を使用します。以下同様です。 time (オプション): サーボが目標位置に到達するまでの時間を指定します。この値が指定されていないか 0 に設定されている場合、サーボは最大速度で回転します。 ポストバック なし 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 […]
説明 ロボットのモーションフレームを格納する整数配列。各配列要素は、ロボットサーボの位置(単位:µs)に対応します。 ServoFrameVstone の初期化時にモーションフレームファイルが読み込まれていない場合、ユーザーはこの配列の要素を直接設定することでモーションフレームを設定できます。 構文 myframe.positions[channel] パラメータ myframe: ServoFrameVstone 型のオブジェクト。 channel: 配列要素を 0 から 44 の範囲で指定します。n 番目の要素の値は、以下の例に示すように、n 番目のサーボに割り当てられる位置を表します。 (注: 86Duino One ではすべての配列要素が有効です。86Duino EduCake では 0 から 25 の範囲のみ、86Duino Zero では 0 から 16 の範囲のみが有効です。) RobovieMaker2 は 30 軸サーボをサポートしているため、 load() 関数を使用してモーションフレームファイルから指定されたモーションフレームを読み込む場合、positions[0]、positions[1]、…、positions[29] のみが有効な値となり、残りの配列要素は 0 になります。 ポストバック なし 例 1 2 3 4 5 6 7 8 9 10 […]
説明 ServoFrameVstone クラスを初期化します。ServoFrameVstone は ServoFrame クラスを継承し、RobovieMaker2 モーションエディタで作成されたロボットモーションフレームを読み込むことができます。 構文 ServoFrameVstone myframe ServoFrameVstone myframe(filename, frame_name) パラメータ filename: RobovieMaker2 によって保存された .txt モーションファイルの名前。 frame_name: モーションフレームの名前(RobovieMaker2 で取得)。 これらの2つのパラメータを入力すると、ServoFrameVstone はクラスを初期化する際に、指定されたモーションフレームを初期モーションフレームとして自動的に読み込みます。ファイルは SD カードのルートディレクトリに配置する必要があります。86Duino に SD カードが挿入されていない場合、または SD カードにモーションファイルが含まれていない場合、ファイルの読み込みは失敗します。 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #include <Servo86.h> Servo myservo0; […]
86Duinoの電源を入れると、BIOSは内蔵フラッシュメモリ、SDカード、USBフラッシュドライブの3つの場所で起動ディスクを検索します。検索順序は、まずSDカード、次にUSBフラッシュドライブ、最後にフラッシュメモリです。86Duinoのファームウェアは工場出荷時に内蔵フラッシュメモリにプリインストールされています。86Duinoに起動可能なSDカードまたはUSBドライブを挿入しない場合、デフォルトでフラッシュメモリから起動します。ただし、起動可能なパーティションを持つSDカードまたはUSBドライブを挿入する場合は、86Duinoファームウェア(つまり、SysImage)または他のオペレーティングシステム(Windows、Linuxなど)が既にインストールされていることを確認する必要があります。そうでない場合、86Duinoはオペレーティングシステムを見つけられないため、起動に失敗します。SDカードまたはUSBドライブを挿入して86Duinoをフラッシュメモリから起動する場合は、まず起動パーティションのない空のディスクを作成する必要があります。以下に方法を示します。 ステップ 1 まず、MiniTool の Partition Wizard ソフトウェアをコンピューターにインストールします。以下では、32GB の SD カードを例に、パーティションの作成方法を説明します。空のSDカード(または内容を消去できるもの)を用意し、コンピューターに挿入します。 ステップ2 パーティションウィザードを開きます。以下のような画面が表示されます。SDカードのディスクIDを確認します。この例では、SDカードはディスク2に相当します(下図参照)。 ステップ3 次に、SDカード上の古いセクターをすべて削除します(以下の手順を実行すると、SDカード上のすべてのデータが消去されることに注意してください)。 SDカードに2つ以上のセクターがある場合、次のような画面が表示されます。SDカードは複数の長方形のセクションに分割されています。各セクションを1つずつクリックし、「削除」ボタンを押してください。 ステップ4 完了すると、SDカードに「未割り当て」と表示されたブロックが1つだけ残っていることがわかります。 SDカード(ディスク2)をクリックし、「作成」ボタンを押します。SDカードに新しいパーティションを再構築します。 「作成」をクリックすると設定ウィンドウがポップアップ表示されます。以下のように設定してください。プライマリとFAT32が選択されていることを確認し、「OK」を押します。 ステップ5 左上隅の「適用」ボタンを押します。 「はい」をクリックすると、ソフトウェアは設定をSDカードに書き込む準備を始めます。 ステップ 6 SDカードのパーティションが分割され、再構築されます。 以下の画面が表示されたら、「OK」ボタンを押します。 新しく作成されたパーティションの「States」列に「None」と表示されます。 これで、ブートセクタのない空のSDカードの作成に成功しました。このSDカードを86Duinoに挿入すると、オンボードフラッシュメモリから起動できるようになります。プログラムでSDライブラリを使用してSDカードにアクセスすることもできます。 ライブラリリファレンスページ 86Duinoリファレンス資料のテキストは、クリエイティブ・コモンズ 表示-継承 3.0 ライセンスに基づいてライセンスされています。リファレンス資料内のコード例はパブリックドメインとして公開されています。
説明 この関数は、servoBeginSplineMotion() によって有効になる曲線補間機能を無効にします。この関数は、Coding 300 以降の 86Duino IDE でサポートされています。 文法 servoEndSplineMotion() パラメータ なし ポストバック なし 例 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #include "Servo86.h" Servo Servo1; Servo Servo2; Servo Servo3; ServoFrame Frames[3]; unsigned long playtime[3] = […]
説明 サーボ動作の軌道補間方法として、曲線計画を指定できます。曲線補間を有効にすると、ロボット動作中の振動を適切に抑制し、ロボットの動作をより安定させることができます。この機能は、Coding 300 以降の 86Duino IDE でサポートされています。 構文 servoBeginSplineMotion(mode, frames, frameTime, numFrames) パラメータ mode: 3つのモードから選択できます。 NATURAL_CUBIC:このモードは振動を適度に低減し、ロボットの動きを滑らかにします。ただし、NATURAL CUBIC SPLINE 式に準拠するため、ロボットフレームの配置によっては、補間された軌道が意図した動きから逸脱する可能性があることに注意してください。これを回避するには、CONSTRAINED_CUBIC モードを使用してください。 CONSTRAINED_CUBIC:このモードはCONSTRAINED CUBIC SPLINE 式に準拠し、前述の NATURAL_CUBIC の欠点を解消します。ただし、これにより滑らかさの効果は低下します。 CATMULL_ROM: CATMULL-ROM SPLINE 式に基づいており、NATURAL_CUBIC によるオーバーシュートを効果的に抑制し、CONSTRAINED_CUBIC よりも優れた平滑化を実現します。(この設定は Coding 315 以降でサポートされています。) frames: カーブプランニングのためのフレームの配列。 frameTime: 各フレーム間の時間間隔の配列(ミリ秒単位)。 numFrames: カーブプランニングのためのフレーム数(つまり、フレーム配列のサイズ)。 ポストバック なし 例 1 2 3 4 5 6 7 8 9 10 11 […]
プロジェクトの起源 機能の説明 資料の準備 ハードウェアのセットアップ 歩行の説明 モーション編集 結果のプレゼンテーション 関連リンク プロジェクトの起源 このプロジェクトは、Scrap Six Legsプロジェクトから派生しました。「Scrap Six Legsによく似たPrintBot Crabプロジェクトがあるんですよ?」と上司は言いました。 「エンドロ博士のソルジャーC、このプリントボット・クラブ・プロジェクトは君のものだ!」そして、ソルジャーCがプロジェクトリーダーに任命されました。 機能説明 Thingiverseには、プリントボット・クラブという興味深いプロジェクトがあります。このプロジェクトには、GUIA_Printbot_Cangrejoのアセンブリファイルが含まれています。 これを実装するには、86Duino Enjoy と 86Duino Zero を使用します。さらに 86ME と組み合わせれば、コードを1行も書かずに PrintBot Crab をアニメーション化できます! マテリアルの準備 — 3Dプリントパーツ — 86Duinoを使って部品を印刷する まず、86Duino Enjoyを使ってPrintBot Crabの全パーツを印刷します。(86Duino Enjoyの使用中に問題が発生した場合は、こちらのチュートリアルを参照してください。)スライスソフトウェアを使用してGコードを作成する際、PrintBot Crabの2つのパーツが86Duino Enjoyの印刷範囲を超えていることに気付きました。その2つのパーツとは、以下の2つです。 STLファイル編集ソフトを使って、印刷可能領域からはみ出した2つのパーツを2つに分割します。こうすることで、86Duino Enjoyの印刷可能領域内に収まります。必要な場合は、こちらからソフトウェアをダウンロードできます。 下の画像は、印刷したすべてのパーツです。印刷用に分割したパーツは、瞬間接着剤で接着されています: プリントしたパーツに加えて、プリントボットクラブを組み立てるには他のパーツも用意する必要があります。ここで使用するパーツは、プリントボットクラブプロジェクトで使用したパーツと全く同じではありません。 — ネジ — ここでは既存のネジとナットを使用しているため、仕様は原作者のものと異なります。原作者のネジの仕様は、GUIA_Printbot_Cangrejo のアセンブリファイルに記載されています。 —Servo— サーボにはEMAX ES08MAIIが使用されており、4.8V~6Vの電圧で動作します。 […]