半年前に投稿した「半日で作る倒立振子」の別バージョン(改良版)です。主な変更点は次の4点です。
(1)部品入手の容易化(付随して、工作と倒立手順の簡略化)
(2)部品点数の削減
(3)プログラムの簡素化
(4)ロボットの安定性改善
最初の2点は、英語版へのコメントを受けたものです。これら4点の具体的な内容については、紹介動画の下に整理したのでご覧ください。
紹介動画
(1)ジャイロ・モジュールの変更
オリジナル版は、アナログ出力のジャイロ・センサ(村田製作所製)を使っていました(*1)。 しかし、このセンサを載せたモジュール(もしくはその代替製品)は日本以外では入手が難しいようです(*2)。 このため本バーションでは、国内外を問わず広く入手できるデジタル出力Használjon egy érzékelővel töltött modult (az ST Microelectronics készítette)。
(*1)このセンサは静止状態の出力値が一定でないため、倒立動作の度に事前計測が必要でした。今回のデジタル出力センサはこの手順が不要です
(* 2) Ez a modul a szögsebességet a HPF-en keresztül a kimeneti értékre keveri. Emiatt szükség volt a HPF nullifikálás finom munkájára (forrasztására). Másrészt ez a digitális kimeneti érzékelő nem igényli ezt a munkát
(2) A motorvezérlő IC módosítása
Az eredeti változatban a Toshiba által gyártott illesztőprogram IC-k készültek a két használt motorhoz. Másrészt, ebben a változatban1 ICKét motor vezérlése (az ST Microelectronics által gyártott)します
(3)タイマ・ライブラリを使った割込みの廃止
オリジナル版では、タイマ・ライブラリA megszakítás vezérlését a (Ms Timer2) (* 1) végezte. Másrészt ebben a javított változatban:外部のライブラリを使った割込み操作を無くしました(*2)。
(*1)これはオリジナル版の企画が、パソコン上のシミュレーションから出発したためです
(*2)下記参照
(4)センサのノイズ対策
上記のプログラム変更に合わせて、ジャイロ・センサのノイズを低減を目的とした変更も加えました(*2)
(*2)オリジナル版にも、これらの変更を施したプログラムを追加しています
以下では、この改良版に基づく倒立振子の作成手順を紹介します。 なお、本バージョン単独で完結した内容にするため、オリジナル版と重複があることをご了解ください。
* Ennek az instructable-nak az angol nyelvű változata elérhető.
** Kérjük, frissítse az oldalt a "? Lang = ja" törlésével az URL végén a címsorban, hogy megjelenjen a pdf fájl ikonja. Ha még mindig nem működik, az eredeti verzió 12. lépésében hozzáadtam egy linket ezekhez a fájlokhoz, ezért kérjük, olvassa el.
*** これらの倒立ロボットの動作を解析し、その改良を試みた「倒立振子の研究」をアップしました(2014年9月)。
kellékek:
1. lépés: Igazítsa az összetevőket
(1)躯体
タミヤの「楽しい工作シリーズ」を使用します。
- ユニバーサルプレートセット(2枚組、プッシュ・リベット付)
- ユニバーサルアームセット(4 L-es szög tartozik hozzá)
- ダブルギヤボックス(左右独立4速タイプ、モータが2個付属)
- スリムタイヤセット
(2)電装
- arduino UNO
- ブレッドボード(小)
- ジャンパ・ケーブル(20本ほど)
- Motorvezérlő IC(ST Micro L298N)を1個 ← オリジナル版から変更
- ジャイロ・モジュール(Akizuki Denshi AE-L3GD20) 変 更 Változás az eredeti változatról
- 単3電池を4本
- 9V akkumulátor (006P típus)
- 電池ホルダ(単3×4本用)
- 電池スナップを2個
- 輪ゴム(数本)
材料紹介の動画(ステップ1)
【注意】 ジャイロ・モジュールについて
オリジナル版ではアナログ出力のジャイロ・モジュールを使いました。ここではデジタル出力のモジュール(秋月電子製)を用います。ただ、このモジュールを使って倒立振子を作ったところ、幾つか問題点が見つかりました。具体的には以下の通りです。実際に作る際には、上手くいかない時の原因解明のためにも、2~3個買っておいた方が良いと思います。
■ジャイロ・モジュールの問題点(1)
Annak érdekében, hogy a használt giroszkóp egyéniségét láthassuk, két azonos modellszámú modult (AE-L3GD20) készítettünk, és összehasonlítottuk a műveletet. Ennek következtében meglepetésemre a három tengely közül kettőben megfordult a kimeneti érték jele. Ezért a használt modultól függően szükség lehet az "R + ry" megváltoztatására a program DL29 sorának jobb oldalán az 5. lépésben a "R-ry" -re.
■ジャイロ・モジュールの問題点(2)
A használt gyro-modul (AE-L3GD20) valamilyen ütemben (* 1) rendellenességet okozhat a kimenetben. Ilyen esetben próbálja meg helyreállítani az áramellátást az arduino-ról a modulra vagy maga az arduino-ra. Ha ez nem így van, töltsön fel egy egyszerűbb programot ezzel a modullal az arduino-hoz (* 2), majd töltse fel újra az eredeti programot.
(*1)静止時の出力がゼロと異なる、もしくはモジュールを動かしても出力値に変化が生じない等
(*2)ステップ5の本来のプログラムの下に「dgtlGYRO_L3GD20_SPI_recover.pdfMint csatolt. Az arduino-hoz való feltöltés módja megegyezik a■サンプル・スケッチ(プログラム)」を参照してください
■代替的なジャイロ・モジュール
日本以外では秋月電子製品の入手は難しいようです。一方、同じデジタル・センサを載せたPololu modulRendelkezésre áll otthon és külföldön. Szerencsére a digitális kimeneti modulokkal ellentétben a kimeneti formátumnak azonosnak kell lennie, ha az érzékelők azonosak. Ezért úgy vélem, hogy az 5. lépés programja szinte ugyanúgy alkalmazható, mintha Pololu által készített modult használnánk (* 1). A csapok száma, nevei és elrendezése kissé eltér a modultól (* 2). Egyébként az Akizuki elektron és a Pololu modul moduljának megfelelősége a következő (Akizuki, Pololu, arduino csapjai balról).
- VIN ・ ・ ・ # 1, VIN, 3.3V
- GND ··· # 8, GND, GND
- SPC ・ ・ ・ # 2, SCL, D13
- SDI … # 3, SDA, D11
- SDO ・ ・ ・ # 4, SDO, D12
- CS ··· # 5, CS, D10
(* 1) Valójában nem próbáltam meg a Pololu modult.モジュール上でのセンサの取り付け方向によっては、利用する回転軸が秋月電子のものと異なる可能性があります。この場合、プログラムの一部変更が必要です
(* 2) Ne csatlakoztasson semmit a VDD tüskéhez, amikor a VIN tüskét Pololu modullal táplálja
2. lépés: Az elektromos berendezések előkészítése
電装部品にピンとワイヤを取りつけます。
- モータにリード線を取り付ける(はんだ付け)
- ブレッドボード用のジャンパ・ケーブル(4本)を2つに切る
- モータと電池スナップのリード線(全部で8本)に、この切断したケーブルをはんだ付けする
- はんだ付けした箇所をテープで覆う(絶縁処理)
- 秋月電子製のジャイロ・モジュールにピン(2列)をはんだ付けする
作業の解説動画(ステップ2)
3. lépés: A keret összeszerelése
タミヤの「楽しい工作シリーズ」を使って車体部分を組み立てます。
- V-alakú hornyot készítsen az univerzális lemezen (2 hely)
- Szerelje fel az univerzális kar L-alakú szögét (4 db) az univerzális lemezre
- ダブルギヤボックスを組み立てる(ギア比は114.7:1)
- ダブルギヤボックスに付属モータ(2個)を取り付ける
- ダブルギヤボックスをユニバーサルプレートに取り付ける
- スリムタイヤセットの大径ホイールを組み立てる
- スリムタイヤをダブルギアボックスに取り付ける
作業の解説動画(ステップ3)
4. lépés: Szerelje össze az elektromos alkatrészeket
電装部品を組み立てて、躯体に取り付けます。
- 下記の「解説(1)A motorvezérlő IC (L298N) kétsoros pin-illesztésének javítása.
- Az ábrán látható módon csatlakoztassa a motorvezérlő IC és gyro modult a kenyérvágólaphoz
- Csavarja be a gumiszalagot a kenyérvágólapra, és csatlakoztassa a keret L-alakú szögéhez (alsó oldalához)
- 上の配線図を見ながらブレッドボードにジャンパ・ケーブルを刺していく
- 配線図を見ながらブレッドボードに電池スナップ(単3ホルダに接続する方)のピン(2本)を刺す
- Tekerj egy gumiszalagot az arduino-ra, és csatlakoztassa a keret L-alakú szögéhez (felső oldalához)
- Csatlakoztasson egy áthidaló kábelt az arduino-ba, miközben nézzük a bekötési rajzot, és csatlakoztassuk azt a kenyérlemezhez
- 電池ホルダーに電池(4本)を入れる
- 躯体に輪ゴムを巻き、電池ホルダを取り付ける
作業の解説動画(ステップ4)
■解説(1)
Az erre a célra használt motorvezérlő IC (L298N) a kenyérvágódeszka középső horonyba kerül. Ennek az IC-nek a csomópontja azonban kissé megváltozott, ezért nehéz telepíteni, ahogy van. Ezért az IC minden egyes pinját ki kell javítani.
(1) Rövid tűs sor: a teljes IC hátoldalára való elmozdulás (→ szélesebb szélesség)
(2) Hosszú tűs sor: A teljes átmenet kissé az IC jobb oldali irányában
■解説(2)
Az L298N-nek két csapja van az áramméréshez (# 1 és # 15). Ezek a csapok viszonylag könnyen mérhetik az egyes motorokon áramló áramot. Csatlakoztassa a csapokat a GND-hez, mivel ezúttal nem mérjük az áramot.
■解説(3)
Az itt létrehozott fordított robotnak nincs kapcsolója. Kapcsolja be / ki az akkumulátort az akkumulátor csatlakoztatásával / eltávolításával.
5. lépés: Programírás
Írjon egy vázlatot (programot) az arduino-ra az IDE segítségével.
- Csatlakoztassa az arduino-t a számítógéphez USB-kábellel
- 電池ホルダに接続した電池スナップを外しておく
- 躯体を寝かせて静止状態にする
- 本ステップの下段にある「■サンプル・スケッチ(プログラム)」以下の内容を読む
- サンプル・スケッチPdf fájl "invertedRobot_v20d_noTimer.pdf」をMentse el a számítógépre (*) és másolja az összes tartalmatÍrjon az IDE-be az arduino-nak (* Ha böngészőben megnyitja és másolja, a vázlat helytelen, és nem működik megfelelően.Ha a pdf fájl ikonja nem jelenik meg、冒頭イントロ末尾の注記を参照してください)
■解説(4)
倒立振子の制御は、モータの回転力の調整で行います。この調整は、振子の状態を表す4つの変数を使った簡単な数式で表されます。
Motor nyomaték = k1 × a test dőlésszöge
+ K2 × a rúd dőlésszögének sebessége (szögsebesség)
+ K3 × Keréktengely mozgási sebessége
+ K4 × A kerék tengelyének távolsága
Itt k1 - k4 azok a konstansok, amelyek a négy változó fókuszának mértékét jelzik. A végén a pdf fájlprogramban a 72-es sorban a hosszú kifejezés megfelel ennek a beállítási kifejezésnek. Egy invertált inga létrehozásához szükséges a négy változó megfelelő értékelése, és a négy együttható értékeinek megfelelő meghatározása.
A gyro-szenzor méri az egyenlet második változóját (az esés lejtésének változásának sebessége) és 16-bites egész számként adja ki. Ezután az arduino integrálja ezt a kimeneti értéket az első változó értékelésére (a keret lejtése).
一方、3つ目の変数と4つ目の変数の評価は、モータもしくは車輪の回転速度を計測して行うのが標準的です。このため、ジャイロ・センサとは別のセンサ(回転計)か物理的なメータ(電流計やステッピング・モータ)を用います。
Mivel azonban az itt létrehozott robot csak gyro-érzékelőt használ, a harmadik és a negyedik változó értékelése problémává válik. A végén a pdf fájl programjában a 76. sor és a 77. sor kifejezése értékeli ezeket a két változót, de egyelőre üresen maradnak.
■解説(5)
Itt használatos digitális gyro-érzékelőAz L3GD20 három szögsebesség-mérési tartományt tartalmaz.
- ±250度/秒
- ±500度/秒
- ±2000度/秒
このセンサは計測した角速度を16ビットの整数で出力します(*)。したがってレンジが広くなると、分解能がそれに応じて低下します。ここでは、倒立振子ロボットのバランスをできるだけタイトに保つことを前提にして、最も狭いレンジを採用します。このレンジの分解能は、0.00875度/秒なので、センサの出力値にこの数値を乗じることで、直近の角速度を知ることができます。
(*)負の角速度は2の補数表現で出力されます
■解説(6)
Az érzékelő és az arduino közötti kapcsolat SPI interfészt használ (* 1). Az arduino-val kapcsolatos közvetlen információért az alábbi három kommentár cikk (magyarázat: a, b, c) hasznos volt (* 2). Nem magyarázom meg a lépés vázlatos rajzolását, de ha érdekel, látogasson el ezekre a webhelyekre. Ha az itt említett Akizuki elektronikus gyro modul helyett Pololu modult használ,【注意】の「代替的なジャイロ・モジュール」をご覧ください(*3)。
(* 1) Kiválaszthatom az I2C interfészt, de nem fordultam jól. Bár az ok ismeretlen (**), lehet, hogy az időzítő megszakítását használja a kommunikációhoz (** kiegészítő megjegyzés: nem húztam fel, ezért úgy gondolom, hogy ez az oka. Azonban mind a kommunikációs sebesség, mind az alkatrészek száma) Az SPI jobb, mint az Arduino Uno, ezért az I2C-t csak akkor választom, ha 6 PWM-es csapot vagy a lehető legtöbb digitális I / O-érintkezőt akarom használni.)
(* 2) Egy általános beszélgetésről az SPI felületről, azt hiszem, jobb lenne egy másik oldalra nézni
(*3)秋月電子製のモジュールをステップ4の通りに取り付けると、倒立振子の姿勢変化がY-tengely körülの角速度として出力されます。Ha Pololu modult használ, ez azX tengely körülの角速度になるかもしれません. Ezért, ha Pololu modult használsz, akkor előfordulhat, hogy meg kell találnod a megfelelő forgástengelyt és annak irányát, és módosítanod kell a jelet és a két argumentumot a minta vázlat DL28 sorának jobb oldalán. Például, ha az inga irányváltozását az X tengely körül mérjük, és a kimeneti érték jele invertálva van, az egyenlet jobb oldala „- ((L3GD20_read (0x29) << 8) | L3GD20_read (0x28))”. Lesz
■解説(7)
使用するジャイロ・センサをアナログ出力からデジタル出力に代えると(*1)、プログラムの一部を省略できます(*2)。その一方で、いくつかの変更と追加も必要になります(*3)。
○削除(11行)
・出力レベルの初期確認(キャリブレーション)・・・8行
・その他・・・3行
○追加(25行)
・ SPI könyvtár hívja a ・ ・ ・ 1 sort
・ A modul és az arduino du ・ ・ 16 vonal közötti kommunikáció beállítása
・モジュールの出力モードの各種設定・・・8行
○変更(6行→7行)
・角速度の計測
(*1)ここで取り上げたのは、ジャイロ・センサの変更に伴うプログラム変更Ez az. Ezért az összehasonlítási cél az eredeti változathoz hozzáadott módosított vázlatot (ver. 2.0) használja. Ez a módosított vázlat kiküszöböli az időzítő megszakítását és csökkenti a giroszkóp kimenetének zaját, miközben ugyanazt az analóg kimeneti gyro-t használja, mint az eredeti vázlatot. A javításokhoz lásd az eredeti verzió 5. lépését.
(*2)使用するデジタル・センサには、温度センサが付いているため、初期の出力レベル確認のプロセスが不要です。したがって、倒立動作に入る前の準備(机上で数秒静止)も省略できます
(* 3) A programhoz hozzáadott sorszám (példa: "// 10") megegyezik az "invertedRobot.pdf" eredeti vázlat sorszámával. Továbbá a szövegben található leírás megfelel ennek a sorszámnak. Ezért kérjük, vegye figyelembe, hogy a kezdeti vázlatok kivételével különbözik az aktuális sorszámtól (például az "invertedRobot_v20d_noTimer.pdf" érvényes sorainak száma 96).
■サンプル・スケッチ(プログラム)
まず下の「invertedRobot_v20d_noTimer.pdf(*1-5)」をMentés a számítógépre,Ez az Adobe Reader stbアプリで開いてください。次にその中身(全部で3ページ)を全てコピーIllessze be az IDE-be, mint az alábbi megjegyzésbenミスプリを修正Kérjük, írjon az arduino-nak.
(*1)ファイルをブラウザで開いてコピーすると、スケッチの体裁が乱れます。必ずダウンロードしてからコピーしてください
(*2)72行目が切れている場合、次に置き換えてください(オリジナル版とは一部異なります)
powerScale = (kAngle * thetaI / 100) + (kOmega * omega I / 100) + (kSpeed * vE5 / 1000) + (kDistance * xE5 / 1000);
(* 3) IDE-re vagy szerkesztőre történő másoláskor egy szóköz lehet a "//" ("/ /") között.修正してください
(*4)プログラム中にコメントとして付記した行番号は、オリジナル版の当初スケッチに合わせています(解説(7)参照)
(* 5) Copyright (C) 2014 Arduino DeXXX Minden jog fenntartva.
■ジャイロ・モジュールのリカバリ用スケッチ
ジャイロ・モジュールの出力値に異常が生じた場合、ステップ1の【注意】の「■ジャイロ・モジュールの問題点(2)」に従ってリカバリを試みてください。この内2番目の方法を試す場合、下記のスケッチ「dgtlGYRO_L3GD20_SPI_recover.pdfKérjük, használja Íme, hogyan töltheti fel ezt a vázlatot az arduino-ra■サンプル・スケッチ(プログラム)」に準じます。
6. lépés: A művelet megerősítése
振子(倒立ロボット)の動作を確認します。
- プログラムの書き込みが終わったら、躯体を起こして電池スナップを接続する(写真②)
- 車輪が回転を始めるので、両手でその回転を止める
- 車輪を床に接地させ、躯体重心が車輪軸上に乗るあたりで、躯体が動かないように静止させる(写真③)
- ロボットが静止を確認すると、モーターの回転が緩み、「ミー」という小さなノイズがモータから出る
- そっと手を離し(写真④)、ロボットの上端を指で軽く押さえる
- この指を前後させ、ロボットが追従して動くことを確認する
- 押さえていた指を離すと、ロボットが少しバランスを取ろうとした後、転倒するのを確認する
作業の解説動画(ステップ5~6)
■解説(8)
本ステップの1段目の操作では、角度の変化をロボットが感知することで車輪が回転し始めます。そこでロボットに、倒立時の標準的な姿勢(角度)を覚えさせる必要があります。このロボットは、躯体が0.05秒間静止していたら、その時の角度を標準とするようプログラムされています。
したがって、躯体を起こして車輪が回り始めたら、両手でロボットの下部を持って車輪の回転を強制的に止め、ステップ6の4段目以降の操作を実行してください。
なお、しばらく静止させてもモーターの回転が緩まない場合、ジャイロ・モジュールの出力に一時的な異常が生じている可能性があります。この場合、ステップ1の【注意】の「ジャイロ・モジュールの問題点(2)」を参照して、モジュールのリカバリを試してください。
■トラブルシューティング(1)
躯体を起こしても車輪が回転しない場合、もっとも疑われるのは配線の誤りです。ステップ4に戻って慎重に確認して下さい。あと考えられるのはジャイロ・モジュールの不良です。この点については、ステップ1の【注意】を参照してください。
Továbbá, ha a kerekek elfordulnak, de nem követik az ujjak mozgását, akkor a leggyakrabban előforduló eset az, ha a motorvezetékek vagy a gyro-modulok megfordulnak. Ezenkívül az az eset, amikor hiba van a motorvezérlő IC kábelezésében és az arduino digitális pólusában, ezt követi. Először lépjen vissza a 4. lépésre, és gondosan ellenőrizze.
なお、配線に誤りがないにもかかわらず、車輪が逆回転して指の動きに追従しない場合、ジャイロ・モジュールの出力値の符号が逆転している可能性があります。ステップ1の【注意】の「ジャイロ・モジュールの問題点(1)」を参照して、プログラムを修正してください。
■参考:追従振子の動作確認の動画
7. lépés: A puzzle megoldása
転倒振子から倒立振子になるための壁をスケッチ(プログラム)の修正でクリアします。
- ロボットが転倒する理由を考える
- ステップ5のプログラムに修正を加えて、転倒が防げるかどうか試す
- 試行錯誤が上手くいけば、転倒振子から倒立振子に脱皮して完成! (おめでとうございます)
- 完成したらステップ8を覗いた後、ステップ9のロボット操作を試してみる
- 試行錯誤が上手くいかなかったら、「1.」に戻るかステップ8(解答案)を見るかどうか悩む
8. lépés: Javaslat egy puzzle-megoldásra
プログラムを修正して、振子を倒立させます。
- ステップ5のプログラムの76行目と77行目を次の3行に書き換える(上書きする)
vE5 = sumPower; // 76a
xE5 = sumSumP / 1000; // 77a
// Copyright (C) 2014 Arduino DeXXX Minden jog fenntartva.
- ステップ6を実行する(6行目以降の指による追従確認は不要)
- 手で静止させた状態で躯体の重心が車輪の軸上に近いところにあれば、ロボット(振子)は前後に少し往復した後で倒立状態に移行する
- 振子がバランスをとりながら倒れないことを確認する
- Ha az inga a kiegyensúlyozás során fokozatosan mozog, próbálja meg hozzáadni / kivonni egy megfelelő számot (kb. 1-től 5-ig terjedő egész számot) a 74. sor „teljesítménye” után
作業の解説動画(ステップ8)
■トラブルシューティング(2)
ステップ6をクリアしたにもかかわらず、振子が倒立せずに倒れてしまう場合、まず電池(単3×4本)を新しいものに換えてみてください。それで解決しない場合、ステップ5のプログラムの10行目から13行目の数値を変えてみてください。この内、最も効果があるのはたぶん12行目の数値だと思います。
9. lépés: Az inga kezelése soros monitor használatával
シリアル・モニタを使って、振子の向きと前進/後退の操縦を行います。
- ステップ8で修正したプログラムに後述の修正(4か所)を追加する
- Írja be a módosított programot az IDE segítségével az arduino-ba
- Indítsa el a soros monitort az IDE-ről, amikor az írás befejeződött
- Ellenőrizze a soros monitor jobb alsó sarkát, és változtassa meg "csak LF" és "115200 baud" -ra
- ステップ6を実行して振子を倒立させる(5行目以降の指による支持は不要)
- Írja be a 0–3 számokat a soros monitor tetején lévő beviteli ablakba, és nyomja meg a küldés gombot (vagy az Enter billentyűt)
- 振子の姿勢や動作が変わることを確認する
作業の解説動画(ステップ9)
■解説(9)
シリアルモニタを使って、振子を回転させたり前後に移動させたりします。例えば、「00」と入力すると、「0」を2回入力したことになり回転幅が大きくなります。
・右回転・・・「0」を入力
・左回転・・・「1」を入力
・前進・・・「2」を連続して入力すると前方向に加速します
・後退・・・「3」を連続して入力すると後方向に加速します
■スケッチ(プログラム)の追加修正(4か所)
(1) Adja hozzá (másolja) a következő öt sort a 17. lépés és a 18. lépés (*) között a 8. lépésben korrigált (*) A sorszám az egyes sorok jobb oldalán található az 5. lépés pdf fájljában. A sorszám (// xx) szerint
int drct = 0;
boolean right = false;
boolean left = false;
int fwdBck = 0;
// Copyright (C) 2014 Arduino DeXXX Minden jog fenntartva.
(2)次に元のプラグラムの32行目を削除し、代わりに次の26行を追加(コピー)する
ha (Serial.available ()) {
drct = Serial.read ();
Serial.println (drct);
}
ha (drct == 48) {right = true;}
egyébként ha (drct == 49) {left = true;}
egyébként ha (drct == 50) {fwdBck ++; drct = 0;}
egyébként ha (drct == 51) {fwdBck--; drct = 0;}
ha (jobb == igaz) {
analógírás (6, 140);
digitalWrite (4, HIGH);
digitalWrite (5, LOW);
analógírás (9, 140);
digitalWrite (7, LOW);
digitalWrite (8, HIGH);
késleltetés (40);
} más, ha (bal == igaz) {
analógírás (6, 140);
digitalWrite (4, LOW);
digitalWrite (5, HIGH);
analógírás (9, 140);
digitalWrite (7, HIGH);
digitalWrite (8, LOW);
késleltetés (40);
egyébként ha (teljesítmény> 0) {
// Copyright (C) 2014 Arduino DeXXX Minden jog fenntartva.
(3) Adja hozzá (másolja) a következő 4 sort az 55. sor és az eredeti program DL26 sora között
drct = 0;
jobb = false;
bal = hamis;
// Copyright (C) 2014 Arduino DeXXX Minden jog fenntartva.
(4)最後に元のプラグラムの74行目を削除し、代わりに次の2行を追加(コピー)する
sumPower = sumPower + teljesítmény + fwdBck * 4; // 74a
// Copyright (C) 2014 Arduino DeXXX Minden jog fenntartva.
10. lépés: Húzza ki az USB kábelt
Cserélje ki az arduino tápegységét egy akkumulátorral, és végezzen egy fordított inga.
- húzza ki az USB kábelt az arduino-ból
- Csatlakoztassa a 9V-os akkumulátort a második akkumulátorhoz
- この電池をロボットの背部に、電池ホルダと共に輪ゴムで取り付ける
- Ragaszkodjunk az akkumulátor pozitív oldalához, hogy a Vin-pin-hez csatlakozzon
- Rögzítse az akkumulátor negatív vezetékét az arduino GND tűjéhez
- 電池ホルダー(単3×4本)に1つ目の電池スナップが接続されていれば、車輪が回転し始める
- Végezze el a 6. lépést az inga visszafordításához (teljes függetlenség)
- 完成
作業の解説動画(ステップ10)
11. lépés: Fejlesztés
完成したロボット(倒立振子)を使って、発展的な課題に取り組んでみましょう。(これらの課題まで半日で行うのは、さすがに難しいと思います)
(1)無線で倒立ロボットを遠隔操作
部品点数を増やさないようにテレビの赤外線リモコンを使います。
操縦動画(ステップ11-1)
(2) Szimuláció Excelrel
Ha az inga három részre, a kerékre, a törzsre és a fejre gondolunk, akkor a középiskolai fizika tartományban a mozgás egyenletét írhatjuk. Ez is egy puzzle-érzés, de ha írja a mozgás egyenletét, akkor létrehozhat egy szimulátort az Excelben. Az 5. lépésben a két együttható (k1 és k2) nagyságát közelíthetjük meg.
(3)状態のキャプチャと分析
Megfogja az inga állapotát, és valós időben jeleníti meg a mozgást a számítógépen (virtuális 2D animáció). Emellett a rögzített adatok naplóit arra használják, hogy részletesen elemezzék a program működését. Szeretném bemutatni ezeket a témákat, mint egy másik Instructable-ot.
Valós idejű 2D-animáció az állami rögzítésen (11-3 lépés)