Rasperry Pi Pico (Pico4ML): Pin ile Şematik Farklı Fakat Çalışıyor?

Başlatan Firzen, 22 Mart 2024, 23:43:28

Firzen

Elimde RP2040 Tabanlı Pico4ML var. Amacım üzerindeki kamerayı kullanmak olduğu için kamera önce Pico4ML ile kamera test TensorFlow Image Segmentation vs yaptım. Herşey mükemmel çalışıyor. Ardından ben bunu Generic herkesin ulaştığı Raspberry Pi Pico ile neden yapamayım ki deyip aynı sistemi onunla da kurmayı denedim. Ardından aşağıdaki linkini verdiğim bağlantıyı denedim ve çalıştı.

https://docs.arducam.com/Arduino-SPI-camera/Legacy-SPI-camera/Pico/Camera-Module/Arducam-HM01B0-QVGA-Camera-Module/

Tam bu noktadan sonra problemim başladı: kütüphanesinde verilen Pin Numaraları ile şematikteki pin numaraları farklı? Bunun nasıl olduğu konusunda kullanan veya deneyimi olan birisi açıklayabilir mi acaba?

arducampico.c Library

int PIN_CAM_SIOD        = 4;  // I2C0 SDA
int PIN_CAM_SIOC        = 5;  // I2C0 SCL
int PIN_CAM_RESETB      = 2;
int PIN_CAM_XCLK        = 3;
int PIN_CAM_VSYNC       = 16;  // GP15 hsync  GP14 pixel clock
int PIN_CAM_Y2_PIO_BASE = 6;   // data GPIO6


Hatta o kadar ilginç ki isimlendirme de yanlış:


Kütüphanedeki İsmi <-> Şematikteki İsmi

PIN_CAM_SIOD        <-> PIN_CAM_SIOD        
PIN_CAM_SIOC        <-> PIN_CAM_SIOD
PIN_CAM_RESETB      <-> VSYNC
PIN_CAM_XCLK        <-> HREF
PIN_CAM_VSYNC       <-> PCLK  
PIN_CAM_Y2_PIO_BASE <-> DO

Bu durumu gerçekten hiç anlamadım.

Teşekkürler.
Kararsız...

Firzen

Sorumun cevabını yabancı forumda da sorduğum yerde buldum (Resmi Raspberry Pi Forumunda yöneticilerden birisi yazdı.)

Pinlerin bacakları farklı gözüksede aslında VSYNC ve MCLK nın bağlı olduğu bacak PIO kütüphanesi sayesinde belirleniyor. Bu kütüphane ise asm ye çok benzeyen bir dille oluşturuluyormuş. Peki pin numaraları ne alaka ise. PIO pinler GP07 -> Pin 0 olarak kabul edip sırasıyla gidiyor. Bu durumda ise GP14 ve GP15 in 7 ve 8 numaralı pin olması çok normal.

Sonuç: Kamera çalışıyor ve pin numaralarını kafama göre değiştirebiliyorum. Pico4ML ye bağımlı kalmaksızın başka RP2040lar ile de çalışıyor (Pico4ML kartını tanımlayarak).

Sıradaki Problem: NinaWifi Module. Her ne kadar kamera ve IMU gayet düzgün çalışsada projemin temelinde ninawifi yi kullanmak yatıyor. Pico4ml kullanarak herhangi bir wifi nina wifi module desteği bulamadım.

p.s. esp32 * 8266 veya pico-w kullanabilirsin diyebilirsiniz. Kendi kart tasarımımı yapacağımdan büyüklük ve ağırlık (Evet ağırlık dedim yanlış duymadınız) benim için önemli.
Kararsız...

fide

Esp32 için şu tavsiyede bulunabilirim. Maker makoe isimli bir YouTuber esp32 çipi doğrudan pcb çizerek kullanmıştı. Yeni nesil esp32 çiplerde ekstra flash çipine ihtiyaç yok. Flash esp32 içinde. Bu haliyle hem wifi/BT hem de mcu ihtiyacınızı karşılayacaktır. Tek sıkıntı anten tasarım ve empedans olayı. O da eef tasarımlarla çözülür.
Esp32-s3, esp32 mini1,  esp32-c3-mini gibi modül/çip datasheetlerine bakmanızı öneririm.

15mm x 15mm gibi bir alanda hem USB type C hem esp32 hem buton hem de konnektör var. Çift yüzlü ama derli toplu bir tasarım ile hem wifi/BT hem de mcu tek çip ile çözülür.

https://www.mouser.com.tr/ProductDetail/Espressif-Systems/ESP32-C3-MINI-1U-N4?qs=pBJMDPsKWf2g3BjnfZfPbA%3D%3D
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

Firzen

Alıntı yapılan: fide - 04 Nisan 2024, 21:38:27Esp32 için şu tavsiyede bulunabilirim. Maker makoe isimli bir YouTuber esp32 çipi doğrudan pcb çizerek kullanmıştı. Yeni nesil esp32 çiplerde ekstra flash çipine ihtiyaç yok. Flash esp32 içinde. Bu haliyle hem wifi/BT hem de mcu ihtiyacınızı karşılayacaktır. Tek sıkıntı anten tasarım ve empedans olayı. O da eef tasarımlarla çözülür.
Esp32-s3, esp32 mini1,  esp32-c3-mini gibi modül/çip datasheetlerine bakmanızı öneririm.

15mm x 15mm gibi bir alanda hem USB type C hem esp32 hem buton hem de konnektör var. Çift yüzlü ama derli toplu bir tasarım ile hem wifi/BT hem de mcu tek çip ile çözülür.

https://www.mouser.com.tr/ProductDetail/Espressif-Systems/ESP32-C3-MINI-1U-N4?qs=pBJMDPsKWf2g3BjnfZfPbA%3D%3D


Cevap icin tesekkurler. Bu modulu daha once gormustum sikinti ise guc tuketimi. Elimde 250mAh 3.7V bir LiPo var. Beslemeyi bununla yapmayi planliyorum (Calisma suresi benim icin onemli). Bu yuzden HM01B0 camera, ICM20948 IMU ve VL53L1x gibi cok cok ax guc tuketen sistemler ile kurmayi planliyorum. ESP benim bu isteklerimi karsilamiyor maalesef.
Kararsız...

Firzen

Github'ta bir kac kutuphane ve duzenlemesi hakkinda bilgi aldim.

Sorum: Arducam HM01B0 Pico4ML ile calisiyor neden RP2040 Nano Connect ile calismiyordu. Cozuldu.
Siradaki sorum ise "Pico4ML kutuphanesinde neden Nina Wifi Generic kutuphanesi calismiyor ve surekli communication failed " uyarisi veriyordu.

Github'ta bu tartismayi yaptik.

https://github.com/earlephilhower/arduino-pico/discussions/2091

Aldigim bilgierin sahipleri: Earle F. Philhower, III ,  Juraj Andrássy

Fakat pin numaralari degistirdigim halde neden calismiyor? Kavrayamadim.

Daha once aranizda hic boards.local.txt ile islem yapan oldu mu acaba?
Kararsız...

Firzen

Ilerleme Hakkinda:

Sizinle de son ilerleme durumunu paylasiyorum ki basiniza ayni teknik sorunlar gelirse en azindan bir cozum yolu bulunur diye dusunuyorum.

Normalde Arduino Nano RP2040 Connect karti almistim. Bunun uzerine, HM01B0 camera, IMU, ve ToF sensorleri bagladim. Bunlarin hep beraber calismasi icinse Arduino'da RP2040 Connect yerine Arducam Pico4ML olarak secmistim. Problemse su Wifi Connection?

Yani WiFi baglantisi calismiyordu. Sirf uzerinde dahili Wifi modulu var diye zaten Nano RP2040 Connect modulunu secmistim. Bu durumda tabi RP2040 Connect kullanmak anlamsiz oldu. Fakat hala NinaWifi kullanma konusunda israrci olmamdan kaynakli bir breakout tasarimi yaptim. (Aslinda birileri yapmis ben biraz modifiye yaptim, bircok sey degistirmem gerekti)



Tasarimin resmini ekledim. Lehimleme islemi vs calisirsa da sizinle diger dosya eklerini de paylasirim, suanlik devre daha yeni geldi.
Kararsız...