PythonサーボモーターはSG-90を使います。このSG-90を動かすにはPWM制御を使います。PWM制御といえばLEDの明るさを変化させるのにも使いましたがこれはソフトウェアで行うものでした。ソフトウェアでPWMのパルス幅を作っているので、それ以外の処理の負荷によってこのパルス幅が不規則に変動します。サーボモーターはPWMのパルス幅によって動かす角度を決定しているのでより高い精度で動かしたいものです。そのようなときにはハードウェアによるPWM制御を使うのが良いでしょう。ここではpigpioライブラリを使ったハードウェアPWM制御でSG-90を動かします。PDFデーターシートを参考にします。Signalが4.8V(〜5V)となっていて何が何やらです。Zero)のGPIOのVOH(Highレベルの出力電圧)の最小値は3Vですので、SG-90を5Vで使った場合のVIH(Highレベルの入力電圧)を知りたいのですが、わからなかったので回路図に示すように3.3Vから5Vへのレベル変換回路を挿入することにします。Zeroからではなくモバイルバッテリーから供給しています。レベル変換前後の波形をオシロスコープで観測した画像です。CH1(黄)がGPIO18、CH2(青)がSG-90のPWM入力波形です。ハードウェアPWMでサーボモーターの角度を制御ハードウェアでPWM波形を出力できるGPIOピンは以下の4つに限られています。90に移動させるプログラムです。ファイル名はtest9.pyです。Duty)のようにGPIOピン番号、PWMの周波数そしてデューティー比を指定します。デューティー比を5%とするには、1,000,000に0.05を乗じた50,000になります。GPIOライブラリのpigpioは使用する前にデーモンを起動させておく必要があります。Piを起動したら一度だけ、ターミナルからルート権限で実行します。ターミナルから以下のように実行します。WのPythonで10ビットADコンバータMCP3002を使ってアナログ電圧を読むプログラムです。WのPythonでブラシ付きDCモーターをMOSFETや専用ドライバーICのL293Dを使って、ON/OFF制御、PWM制御で回します。〜spi.xfer2関数とシリアルパラレル変換ICで7セグLEDを制御〜7セグメントLEDを8ビットのシリアルパラレル変換ICの74HC595とSPIインターフェースを使って点灯させます。WのPythonで超音波距離センサーのHC-SR04を使って対象物との距離を測定するプログラムを作成します。OSをセットアップします。〜4桁7セグメントLEDを74HC595を使ってダイナミック点灯〜Pythonで4桁7セグメントLEDをダイナミック点灯させたプログラムについての記事です。4桁7セグメントLEDはシリアルパラレル変換ICの74HC595でドライブしています。回路図やタイムチャートでわかりやすく説明しています。コメントをキャンセルメールアドレスが公開されることはありません。手書きの回路図において逆に結線されているので、参考にされる方はデータシートを参照のうえ確...ryusai2023/2/16ロームのDACチップBD34352EV搭載のラズパイDACそうですね、I2S信号のピン設定等ハードウェアのconfigrationがboticと互換があることを期待します、yseki1182023/2/15ロームのDACチップBD34352EV搭載のラズパイDACお返事ありがとうございます。「困った時のLINUXCOMさん頼み」で、よく調べもせずにお願いしてしまい、申し訳ありませんでした。現状ではi2s非対応だったのですね。コメントそして情報ありがとうございます。リンク先を見てみましたが、現在DACはUSBオーディオデバイスということでI2Sには今後改善される旨記載されていますね。I2Sに対応...yseki1182023/2/12ロームのDACチップBD34352EV搭載のラズパイDACご無沙汰しております。yseki118です。BBBのブリッジ基盤製作の際にはたいへんお世話になりました。