まるまたもや、大陸から格安部品が届いた。SG90というサーボモータこのサーボモータ届いてから、調べて分かったんだけど、偽造品が大量に出ていて見分け方も掲載されている。こんなん、事前にはわからないよねw。pro」の商標が、ケース上部にエンボス(浮き出し)で記載されています。・・・調べてみると・・・ありませーーーん!!w偽造品です。今度から気を付けて買います。このまま終わってもつまらないので偽造品の検証を進めます。パクリ品だけど一応正規品のデータシートを見てみる(抜粋)PWM信号は5Vなのね。ラズパイは3.3Vだからロジックレベルコンバータをかまそう。VCCにも5V、PWMはロジックレベルコンバータをかませてGPIOにつなげる。今回はGPIO12につなぐとりあえず、検索して一番多かった、LチカでおなじみRPi.GPIOを使った方法でPWM制御してみた。SG90はラズパイ上のGPIOポートを用いて制御しますが,ラズパイマウスではそのポートは覆い隠されてしまいます。,...というか、いつものことで手抜きだが・・・上のサイト様が作ってくれたSG90servoのクラスを使わせてもらった。time.sleep(3)やはり、ピクピクしたり動作が不安定。うーん、パクリ品だから?w。ここでPWMについて。PWMにはソフトPWMとハードPWMがあって、RPi.GPIOはソフトPWMらしいんだけど、どうもパルスの精度がラズパイの負荷によって若干変化するらしい。これによりサーボモータの異常動作が起こることが多いようだ。対照的にハードウエアPWMってのもあってこれはハードウエアが生成するパルスを用いるので精度はとても良い。いうわけで、検証には再度ハードウエアPWMで制御する必要がありそう。2つの方法があってWiringPiとpigpioのどちらかを使うらしい。Qiitahttps://qiita.com/s417-lama/items/0ef64a7af3fcf6a56cc5pigpioでのハードウェアPWMはあまりまとまった情報がなかったので簡単にまとめようと思います。version...今回は、pigpioを使ってハードウエアPWMで制御しようと思う(理由はただ単に文献が多かっただけw)。ハードウエアPWMを使うにあたって、上のサイトにもあるように、ピンが決まっている。GPIO12を利用したのは、そういう理由からです。RPi.GPIOではGPIO12でも、ソフトPWMとなってしまう模様。pigpioを使ってSG90サーボを動かすhttps://hakengineer.xyz/2018/02/03/post-993/初めにSG90サーボ用2軸カメラマウントを組み立てて、いざ動かすかなと思ったら、そもそもSG90サーボをまともに動かしたことがありません。そこでタイトルの通りSG90サーボをpigpioで動かそうと思います。pigpiodを叩くだけ)すれば準備完了。参考サイトのサンプルコードを実行してみたけど、微妙に角度がズレるためキャリブレーションをして数値を補正しました。これは、まがい品が原因なのか、個体差なのかはわかりませんw。使う前に調整したほうがよさそう・・・。time.sleep(3)動作内容はRPi.GPIOのソフトPWMの内容と一緒。したり、振動する挙動がなくなった。このことからソフトウエアPWMが原因で動作が不安定になってたと考えられるね。一応、ロジックレベルに関してはPWM信号を5Vにしているので問題ないとは思う。6022BE)のセットアップをするブログ作者「まる」とりあえず、興味を持ったことを疲れない程度でやってみるブログ。FameThemes。