ステアリング ギア上のコプロセッサの操作 (マイクロ サーボ 9g ステアリング ギア)

ロボットの動きの制御、カメラやレーザーレーダーの方向制御、産業分野でのメカアームの動きなど、ステアリングギアの用途は多岐にわたります。このセクションでは、ステアリング ギアを使用して非同期書き込み命令を駆動し、ステアリング ギアを制御します。

SG90、マイクロサーボ9gステアリングから始めました

それから、初めて連絡を取る人のために、これが何であるかをすぐに理解したい場合は、BaiduのWenxiyiyan

ChatGPT4 と比べるとまだ大きなギャップがありますが、特にセマンティクスの理解はまだかなり遅れていますが、小さなアシスタントになるにはまだかなり良いです.その答えを見てみましょう:

Q: SG90 サーボのパラメータは何ですか?

回答: SG90 ステアリング ギアのパラメータは次のとおりです。
動作電圧: 4.8V-6V。
動作温度: -30~~+60℃。
デッドゾーン設定:7us(7MHZ)。
ストールトルク: 1.2-1.4 kg/cm (4.8V)
正パルス幅: 2ms.
PWM デューティ サイクル: 0.5 ~ 2.5ms の正のパルス幅。
サイズ: 21.5mmX11.8mmX22.7mm 重量: 9グラム (1kg=1kg=2kg)。
無負荷速度: 0.12 秒/60 度 (4.8V) 0.002 秒/度。
入力インピーダンス:50Ω。
コーナー直線性:2.5%

Q: SG90 ステアリング ギアの機能は何ですか?

回答: SG90 ステアリング ギアの機能には、主に次の点が含まれます。
さまざまな電子機器の角度と位置の制御を実現します。
基本的な出力アクチュエータとして、ワンチップマイコンシステムに使用し、簡単な制御と出力を実現します。
ロボット電気機械制御システムでは、関節のエンドエフェクタとして、メカアームなどの機械装置の精密な制御を実現します。
ハイエンドのリモコン玩具、飛行機、潜水艦モデル、リモコンロボットなどの分野で使用され、特定の角度の出力を実現します。
つまり、SG90 サーボはさまざまなアプリケーション シナリオで重要な役割を果たします。

これら 2 つの回答は非常に優れており、回答を検索して見つける必要がなく、この製品をすばやく理解できるため、効率が大幅に向上し、貴重な時間を節約できます。

一般に、精密な制御は、アナログ信号レベルをデジタル的にエンコードする方法である PWM (Pulse Width Modulation、Pulse Width Modulation、または Pulse Width Modulation)によって行われます. コンピュータはアナログ電圧を出力できないため、0 または5V デジタル電圧値の場合、方形波のデューティ サイクルで変調される高分解能カウンターを使用して、特定のアナログ信号のレベルをエンコードします。

対応する色を挿入するだけです:

PWM の 3 つの基本的なパラメータ: 1. パルス幅; 2. パルス周期 (1 秒以内のパルス周波数の数の逆数); 3. 電圧の高さ (例: 0V-5V)

ライトの明るさの調整、モーターのスピード調整、音作りなど用途は広いです。ここでは、回転角度を制御するステアリング ギアを使用しています。

ステアリング ギアもコプロセッサによって制御されるため、使用する必要があるパッケージをインポートし、インスタンスを作成して初期化します。

import smbus
import time
bus = smbus.SMBus(1)
Servo_ADD = 0x1B

次に、サーボの角度を制御します

#将舵机摆动至中央位置
bus.write_i2c_block_data(Servo_ADD,3,[1,90])
#将舵机摆动至45度位置
bus.write_i2c_block_data(Servo_ADD,3,[1,45])
#将舵机摆动至180度位置(舵机编号为2)
bus.write_i2c_block_data(Servo_ADD,3,[2,180])

通信プロトコルに従って IIC にデータを送信します。ここで、SMBus インスタンスによって呼び出されるメソッドは write_i2c_block_data です。

write_i2c_block_data(addr, cmd, [vals])、その中のパラメータ、addr: コプロセッサ アドレス、cmd: ステアリング ギア レジスタ アドレス、[vals]: [ステアリング ギア番号、ステアリング ギア角度]

其中协处理器地址和舵机寄存器地址是固定值,舵机编号1对应底板上的S1,2对应底板上的S2,舵机角度在0-180之间设置

从图中可以看到这块板子可以放两个舵机,S1,S2,可以分别独立控制。我们让它持续转动看下效果:

while True:
    i+=10
    bus.write_i2c_block_data(Servo_ADD,3,[1,i])
    time.sleep(0.2)
    bus.write_i2c_block_data(Servo_ADD,3,[1,i])
    time.sleep(0.2)

おすすめ

転載: blog.csdn.net/weixin_41896770/article/details/129725694