.. note:: こんにちは、SunFounderのRaspberry Pi & Arduino & ESP32愛好家コミュニティへようこそ!Facebook上でRaspberry Pi、Arduino、ESP32についてもっと深く掘り下げ、他の愛好家と交流しましょう。 **参加する理由は?** - **エキスパートサポート**:コミュニティやチームの助けを借りて、販売後の問題や技術的な課題を解決します。 - **学び&共有**:ヒントやチュートリアルを交換してスキルを向上させましょう。 - **独占的なプレビュー**:新製品の発表や先行プレビューに早期アクセスしましょう。 - **特別割引**:最新製品の独占割引をお楽しみください。 - **祭りのプロモーションとギフト**:ギフトや祝日のプロモーションに参加しましょう。 👉 私たちと一緒に探索し、創造する準備はできていますか?[|link_sf_facebook|]をクリックして今すぐ参加しましょう! .. _sh_pendulum: 2.10 振り子 ===================== このプロジェクトでは、矢印の振り子を作りながら、サーボが回転に従います。 .. image:: img/12_pun.png 学べること --------------------- - サーボの動作と角度の範囲 - スプライトを描き、中心点を尾に配置する。 必要な部品 --------------------- このプロジェクトには、以下の部品が必要です。 キット全体を購入するのは確かに便利です。リンクはこちら: .. list-table:: :widths: 20 20 20 :header-rows: 1 * - 名前 - このキットのアイテム - リンク * - 3 in 1 Starter Kit - 380+ - |link_3IN1_kit| 以下のリンクから個別に購入することもできます。 .. list-table:: :widths: 30 20 :header-rows: 1 * - コンポーネントの紹介 - 購入リンク * - :ref:`cpn_uno` - |link_Uno_R3_buy| * - :ref:`cpn_wires` - |link_wires_buy| * - :ref:`cpn_servo` - |link_servo_buy| 回路の作成 ----------------------- サーボは、180度しか回転できない歯車式のモーターです。回路板からの電気パルスで制御されます。これらのパルスは、サーボにどの位置に移動するべきかを指示します。 サーボには3本のワイヤーがあります。茶色のワイヤーはGND、赤はVCC(3.3Vに接続)、オレンジは信号ワイヤーです。角度の範囲は0-180度です。 以下の図に従って回路を組み立ててください。 .. image:: img/circuit/servo_circuit.png プログラミング ------------------ **1. スプライトの描画** デフォルトのスプライトを削除し、スプライトボタンを選択して **Paint** をクリックすると、空のスプライト **Sprite1** が表示されます。 .. image:: img/12_paint1.png 開かれた **Costumes** ページで、 **Line tool** を使用して矢印を描きます。 .. note:: * キャンバスの中心から外向きに矢印を描き始めることで、矢印が中心点を原点として円を描くように回転します。 * Shiftキーを押しながら、ラインの角度を直線または45度にします。 .. image:: img/12_paint2.png 描画後、 **arrow** スプライトがステージに表示されます。それを **arrow** と名付けます。その後、 **Direction** の後の数字をクリックすると、円形のダイヤルが表示されます。この矢印をドラッグして、ステージ上の **arrow** スプライトが尾を原点として回転するかどうかを確認します。 .. image:: img/12_paint3.png **arrow** スプライトを左から右に振るためには、角度の範囲は-90から-180、180から90です。 .. image:: img/12_paint4.png .. image:: img/12_paint5.png **2. 変数の作成** **servo** という名前の変数を作成します。これは角度の値を格納し、初期値を270に設定します。 .. image:: img/12_servo.png **3. 左から右に振る** **arrow** スプライトが左の-90度の位置から右の90度の位置まで振られるようにします。 [repeat]ブロックを使って、毎回変数に-10を加えると、18回で90度になります。それから[point in block]を使って、矢印スプライトがこれらの角度に向かうようにします。 スプライトの回転角度は-180 ~ 180であるため、この範囲外の角度は以下の条件で変換されます。 * 角度 > 180の場合、角度 -360。 .. image:: img/12_servo1.png **4. サーボを回転させる** 緑の旗をクリックすると、矢印がすぐに右に回転してから左に戻るのがわかります。そのため、ここで[wait seconds]ブロックを使用して、回転を遅くします。また、[set servo on to angle]ブロックを使用して、Arduinoボードに接続されたサーボを特定の角度に回転させます。 .. image:: img/12_servo2.png **5. 右から左への振り** 同じ方法で、サーボと **arrow** スプライトを右から左にゆっくりと回転させます。 * 角度 > 180の場合、角度 -360。 .. image:: img/12_servo3.png