STM32 NESNE TAKİBİ YAPAN ROBOT hk.

Katılım
19 May 2022
Mesajlar
4
Puanları
1
Yaş
25
Merhabalar
stm32 de kendimi geliştirmek için bir süredir nesne tabi yapan robot yapmak için uğraşıyorum. Yön tayini için hcsr04 ve ır sensörler kullandım. İşlemcim 16mhz olarak çalışıyor. 2 adet seri bağlı 18650 pilden l298n ye güç veriyorum kodumda ise 2 adet timer kullandım, biri rc servo için 1 tanesi de entegredeki enable a ve b için timer 3te 2 kanala pwm çıkışı verdim. Psc 159 Arr 99 olarak ayarladım 1 khz pwm için ancak scr04 bir kere çalışıp duruyor ve motorlar çalışmadan sürekli titriyor. 4 motoru aynı anda kontrol etmek için kabloları ters bağladım ve pili ayrı olarak bağladığım zaman aynı yönde dönüyor. Motorlara güç gitmemesinin sebebi ne olabilir

kod ve şema https://drive.google.com/drive/folders/1j1IMXckXbmTHdS4XKT7qwcq4xiiQEmFI?usp=sharing
 
Son düzenleme:
yasaklı bir durum yok tam tersi kodu paylaşırsan insanlar yardımcı olmak isteyecektir.
 
Merhaba,
Öncelikle ultrasonik sensörler doğrudan işlemcinin gpio pinlerinden okunan değerin zamanını ölçerek kullanılamaz. Çünkü kullanılan komutların gerçekleşmesi için birden fazla clock cycle işlemcinin kendisi tarafından harcanır. Mikrosaniye cinsinden bir değer ölçerken kaçırdığın minicik bölümler sana yüksek seviyede hassasiyet kaybı oluşturur. Bu tür işlemler için timerların input capture özelliği vardır yani yansımayı donanım seviyesinde dinler ve registere yazar sen registeri okuduğun için herhangi bir zaman kaybı yaşatmaz. Şu örneği incele

https://controllerstech.com/hcsr04-ultrasonic-sensor-and-stm32/

Diğer bir sorun ise ana while döngüsünün sonunda return mesafe2; komutu var derleyici return komutunu gördüğü an tüm döngüleri kırarak fonksiyonu sonlandırır. Bu yüzden döngün sadece bir kere çalışıp kapanıyor. Bu satırı sil.

Başka bir sorun göremedim.
 
Son düzenleme:
Merhaba,
Öncelikle ultrasonik sensörler doğrudan işlemcinin gpio pinlerinden okunan değerin zamanını ölçerek kullanılamaz. Çünkü kullanılan komutların gerçekleşmesi için birden fazla clock cycle işlemcinin kendisi tarafından harcanır. Mikrosaniye cinsinden bir değer ölçerken kaçırdığın minicik bölümler sana yüksek seviyede hassasiyet kaybı oluşturur. Bu tür işlemler için timerların input capture özelliği vardır yani yansımayı donanım seviyesinde dinler ve registere yazar sen registeri okuduğun için herhangi bir zaman kaybı yaşatmaz. Şu örneği incele

https://controllerstech.com/hcsr04-ultrasonic-sensor-and-stm32/

Diğer bir sorun ise ana while döngüsünün sonunda return mesafe2; komutu var derleyici return komutunu gördüğü an tüm döngüleri kırarak fonksiyonu sonlandırır. Bu yüzden döngün sadece bir kere çalışıp kapanıyor. Bu satırı sil.

Başka bir sorun göremedim.
Öncelikle zaman ayırdığınız için çok teşekkür ederim.

Stm32'yi aldığımdan beri cubemx ve keil ile programlıyorum. Başka bir proje için arduino ide kullanmaya karar verdim. Normalde kullanırken st link v2 ile programlıyordum.

Birkaç soru sorarak yardımlarınızı bekliyorum.

STLİNK V2 kullanırken Arduino ide için herhangi bi bootloader yüklemem gerekiyor mu?

USB-TTL dönüştürücü kullansam bir daha keil ile programlama yapabilir miyim?

USB-TTL daha mı mantıklı?

İlginiz ve alakanız için şimdiden teşekkür ederim.
 
Son düzenleme:
Öncelikle zaman ayırdığınız için çok teşekkür ederim.

Stm32'yi aldığımdan beri cubemx ve keil ile programlıyorum. Başka bir proje için arduino ide kullanmaya karar verdim. Normalde kullanırken st link v2 ile programlıyordum.

Birkaç soru sorarak yardımlarınızı bekliyorum.

STLİNK V2 kullanırken Arduino ide için herhangi bi bootloader yüklemem gerekiyor mu?

USB-TTL dönüştürücü kullansam bir daha keil ile programlama yapabilir miyim?

USB-TTL daha mı mantıklı?

İlginiz ve alakanız için şimdiden teşekkür ederim.
Üç farklı şekilde programlanabiliyor. Üzerindeki jumperları doğru ayarlamak yeterli. Usb ttl eğer seri terminal kullanacaksan mantıklı ama her programlamadan önce jumper ayarlayıp resetlemen gerekecek. St link kullanırsan böyle bir derdin olmayacak. Eğer arduino yu vs code üzerinden platformio kullanarak programlayacaksan herhangi bir işlem yapmana gerek yok platformio paketleri kendisi indirip kuruyor eğer normal arduino ide kullanacaksan belki programlayıcı paketlerini indirmen gerekebilir internette nasıl yapacağını anlatan tonlarca video var
 

Forum istatistikleri

Konular
130,110
Mesajlar
933,233
Kullanıcılar
453,167
Son üye
Kibooo

Yeni konular

Geri
Üst