mas sorry nih numpang tanya
saya kan ada project untuk buat smarthome,jadi fungsinya untuk controrl
listrik secara jarak jauh dan streaming cctv dengan penggeraknya 2 motor
servo sebagai kiri-kanan dan atas bawah
nah kendala yg saya alami adalah di bagian motor servonya,
jadi kalau dalam keadaan standby atau raspi baru on,si motor servonya itu
tidak bisa diam jadi gerak2 gitu mas,
nah untuk software nya saya menggunakan python bawaan raspinya,degan tampilan
html sebagai tampilan controlnya.
kalau boleh tanya itu kendalanya ada di bagian mana yah ?
kalau untuk settingan python.app sama htmlnya bisa saya kirimkan mas kalau
mas mau liat
sebelumnya terima kasih,semoga mas dapat membantu problem saya
untuk tampilan pythonnya (app.py)
untuk tampilan web interfacenya
Halo Mas Ginanjar,
Halo Mas Ginanjar,
Kalau motor servo tidak stabil, kemungkinan besar penyebabnya adalah di power mas. Mungkin powernya tidak bersih atau ada banyak noise, mungkin juga groundnya tidak dalam posisi benar, biasanya tidak di common ground dengan ground Raspi.
Tapi jika motor servonya hanya unstable ketika start up dan standby, tapi berjalan normal ketika dikontrol, bisa juga ada masalah dalam inisialisasi pwm di GPIO Raspinya.
Untuk bisa memberi solusi saya perlu informasi tambahan mengenai skematik rangkaiannya, trutama pengkabelan dan sumber power dari motor servonya diambil dari mana dan jenis servonya..
HTSL://HIGH THINKING SIMPLE LIVING . ME
motor servo unstablle
Grounding Bermasalah
Sepertinya itu mengarah ke masalah power dan grounding mas,
coba itu power servonya dipisah, ambil dari sumber lain misal adaptor 5V jangan dari Raspinya dan pastikan di-common ground dengan ground Raspi. Jadi lengkapnya pengkabelannya jadi begini:
Pin Data Servo ----> Pin GPIO Raspi
Pin Vcc Servo ----> +5V dari External Power Adapter
Pin GND Servo -----> GND dari External Power Adapter dan di common ground dengan GND pada Raspi.
Karena saya dulu pernah mengalami masalah serupa, dan solusinya saya bisa pastikan seperti diatas dapat menyelesaikan masalahnya.
HTSL://HIGH THINKING SIMPLE LIVING . ME
jadi untuk groundnya di
Koding PWM Servo Raspi
Untuk scriptnya sudah benar, saya juga pakai fungsi software PWM bawaan RPi.GPIO. Kalau menurut pengalaman saya yang bermasalah itu powernya tidak bersih dan tidak di common ground apabila mengambil dari sumber yang berbeda.
Kalau pin PWM ketika sedang bekerja tegangannya memang berubah2 mas. Saya kurang jelas kalau yang mas maksud itu ketika PWM tidak bekerja tapi tegangannya tidak stabil, atau ketika PWM sedang bekerja. Kalau ketika bekerja, itu berarti pertanda bagus karena PWMnya berjalan dengan semestinya.
Dan perlu dicatat juga kalau kernel Linux itu tidak realtime ketika melakukan render fungsi PWM, karena adanya fungsi priority task. Jika ada program lain yang berjalan disaat yang sama, bisa saja si kernel memprosesnya terlebih dahulu dan mendelay fungsi PWM. Sebenarnya ada banyak faktor yang menyebabkan itu terjadi. Mungkin juga versi Raspinya dan versi RPi.GPIO yang belum diupdate ke versi terbaru.
Saran saya coba diupdate dulu, dan coba powernya dipisah seperti yang saya jelaskan sebelumnya. Semoga membantu.
jadi untuk groundnya di paralel dengan ground dari pin gpionya mas ?
Iya, di-paralel dengan GND Rapsi. Dan contoh yang kemarin sempat saya coba di link ini. http://razzpisampler.oreilly.com/ch05.html
HTSL://HIGH THINKING SIMPLE LIVING . ME
problem servo
power supply tidak bersih
Sepertinya power supplynya tidak bersih mas. Solusinya coba tambahkan snubber/filter menggunakan kapasitor.
Jadi antara pin vcc dan pin gnd servonya tambahkan satu kapasitor 1uF 16V. Ingat polaritasnya kaki kapasitor yg panjang hubungkan ke VCC dan yg lg satu ke GND. Ini akan membantu menjernihkan powernya.
Dan perlu saya pastikan lg, servonya mulai getar2 sebelum ato sesudah script pythonnya dijalankan? Dan apabila ketika servonya masih getat getar trus pin data yg kuning mas cabut apakah servonya masih getar2?
HTSL://HIGH THINKING SIMPLE LIVING . ME
problem servo
Software/Library Problem
Oke, jadi sekarang harus di cek lagi disisi softwarenya.
Yang perlu diketahui, Pin PWM memang akan naik turun nilai VDCnya kalau sedang bekerja, karena dengan cara demikian dia dapat mengontrol arah gerak servonya. Tapi yang jadi masalah adalah, ketika timing/waktu dari software PWM itu tidak bersih atau tidak konsisten sehingga menyebabkan VDC yang seharusnya menggerakan servo dengan presisi malah jadi amburadul.
Pertama kita mesti tahu dulu kalau chanel PWM yang ada di pin yang mas pakai untuk mengontrol servo itu benar-benar bersih dari segala noise. Coba itu autorunnya di stop dulu, terus mas coba restart raspinya.. Cek apakah servonya masih gerak-gerak meskipun script yg mas buat tidak dijalankan.
Kalau servonya tidak bergerak berarti pin PWMnya aman, dan yang masalah adalah disisi software/program. Perlu dilakukan adjustmen untuk menyesuaikan dengan jenis servo yang mas pakai. Terutama parameter Duty Cycle dan Frequencynnya.
HTSL://HIGH THINKING SIMPLE LIVING . ME
dari data saya
RPi.GPIO Freq. & DutyCycle
Untuk frequency dan duty cycle itu bisa beda-beda berdasarkan jenis & tipe servo mas.
Frequency bisa dicoba di ganti-ganti dengan cara merubah baris:
Menjadi
Rumus untuk mendapatkan DutyCycle bisa menggunakan:
Jika sudah dicoba dan tetap tidap mau, sepertinya servo yang mas pakai tidak toleran dengan jitter yang diakibatkan oleh fungsi software PWM dari RPi.GPIO. Perlu diketahui kalau Raspi tidak punya hardware PWM seperti yang dimiliki oleh Arduino, Raspi hanya mengandalkan PWM buatan menggunakan teknik manipulasi software melalui DMA (Direct Memory Access) jadi akibatnya akan ada sedikit jitter/riak-riak pada nilai PWM yang dihasilkan sehingga mengakibatkan servo getar-getar sendiri.
HTSL://HIGH THINKING SIMPLE LIVING . ME