Haberler

Raspberry Pi Pico’ya Ethernet Ekleme – Düşündüğünüzden Daha Kolay!

2021 yılının Ocak ayının sonlarında piyasaya sürülen Raspberry Pi Pico, Raspberry Pi RP2040 mikrodenetleyici çipine dayanan esnek bir mikrodenetleyici kartıdır. Birçok benzersiz ve çekici özelliğe sahiptir, ancak ağ bağlantısı bunlardan biri değildir. Ancak, bu sadece geçici bir sorundu çünkü Ethernet desteği Pi Günü hafta sonu yayınlandı.

Bu makalede, Raspberry Pi Pico’nuzu ethernet’e bağlamak için nasıl kuracağınızı inceleyeceğiz. Pico’nuzu internete bağlayarak projeleriniz için daha çok yönlü hale getireceksiniz ve bunu çok uygun bir maliyetle yapacaksınız! 

Nasıl çalışır?

Gerçek kurulum işlemine geçmeden önce, nasıl çalıştığını konuşalım. Ethernet desteği, tanınmış bir yazılım mühendisi olan Sandeep Mistry tarafından hazırlandı. Sandeep Mistry, Bluetooth Düşük Enerji (BLE) çevre birimlerini uygulamak için noble ve bleno Node.js modüllerini yazmasıyla tanınır ve ayrıca Arduino LoRa kütüphanesinin de yazarıdır. 

Hem USB Ethernet hem de Ethernet PHY desteği bulunmaktadır. lwIP yığınına dayanmaktadır ve RP2040’ın PIO, DMA ve çift çekirdek yeteneklerinden yararlanarak yazılımda bir Ethernet MAC yığını oluşturur. Bir eksiklik, yalnızca RMII tabanlı Ethernet PHY cihazlarının, örneğin Microchip LAN8720’nin, şu anda proje tarafından desteklenmesidir.

Şans eseri, 2 dolardan daha az bir fiyata LAN8720 için breakout kartları alabilirsiniz. Bu, 4 dolarlık mikrodenetleyicinizi 2 dolardan daha az bir maliyetle bir ethernet breakout kartı aracılığıyla internete bağlayabileceğiniz anlamına geliyor. Hadi başlayalım!

Gerekenler:

  1. Raspberry Pi Pico
  2. RMII tabanlı Ethernet PHY cihazı (bu eğitim için LAN8720 kullanacağız)
  3. Breadboard
  4. 11 Jumper Kablolar

Aşamalar:

Kütüphaneleri Oluşturma

Başlamadan önce, araç zincirini kurmanız gerekecek. Araç zinciri, RP2040 için kod oluşturmak için kullanılacaktır. Bunu nasıl yapacağınızı buradan öğrenebilirsiniz.

1. Bu kılavuzu takip ederek Pi Pico’nuzda C/C++ SDK’sını kurun.

2. pico-sdk kontrolünüzün ve alt modüllerinin güncel olduğundan emin olun.

3. pico-rmii-ethernet projesini buradan ve lwIP yığınını buradan indirin.

4. PICO_SDK_PATH değerinin ayarlandığından emin olun.

$ export PICO_SDK_PATH = /home/pi/pico/pico-sdk

5. Hem kütüphaneyi hem de örnek uygulamayı oluşturun.

$ mkdir build
$ cd build
$ cmake ..
$ make

Bundan sonra, build/examples/httpd içinde pico_rmii_ethernet_httpd.uf2 adında bir UF2 dosyanız olmalıdır.

6. Raspberry Pi Pico’nuzu bilgisayarınıza veya Raspberry Pi’nize bağlayın ve UF2 dosyasını içine sürükleyip bırakın.

LAN8720’yi Raspberry Pi Pico’nuzla Bağlama

LAN8720 maalesef breadboard dostu değildir. Raspberry Pi Pico’ya bağlamak için 11 jumper kabloya ihtiyacınız olacak.

1. Raspberry Pi Pico’nuzu breadboard’a bağlayın.

2. LAN8720 breakout kartını Raspberry Pi Pico’nuzla bağlayın – Aşağıdaki eşleştirmeyi takip edin. 

LAN8720 Breakout Pico RP2040
RX0 Pin 9 GP6
RX1 (RX0 + 1 ) Pin 10 GP7
CRS (RX0 + 2) Pin 11 GP8
TX0 Pin 14 GP10
TX1 (TX0 + 1) Pin 15 GP11
TX-EN (TX0 + 2) Pin 16 GP12
MDIO Pin 19 GP14
MDC Pin 20 GP15
nINT / RETCLK Pin 26 GP20
VCC 3V3 (OUT)
GND Pin 38 GND

3. Bir Ethernet kablosunu ve ayrıca Raspberry Pi Pico’yu Raspberry Pi veya bilgisayarınıza bağlayın – USB Serial üzerinden bazı hata ayıklama bilgilerini göreceksiniz.

4. Minicom’u başlatın
$ minicom -D /dev/ttyACM0

Router’ınız Pico’nuz için IP adresleri veriyorsa, minicom’da şöyle bir şey görmelisiniz:

pico rmii ethernet - httpd                              
netif durumu değişti 0.0.0.0                            
netif bağlantı durumu değişti yukarı                            
netif durumu değişti 192.168.1.110

5. Pico’nuzun IP adresini tarayıcınıza yazın ve varsayılan lwIP indeks sayfasını görüp görmediğinizi kontrol edin:

Kaynak: RaspberryPi

Bunu görüyorsanız, tebrikler, Raspberry Pi Pico’nuzu bir web sunucusuna başarıyla bağladınız!

Yüklenen web sayfasını nasıl değiştirebilirim?

Endişelenmeyin, bu basit bir ayar!

1. lwIP git alt modülünde, HTTP uygulama klasörü içindeki varsayılan lwIP sayfalarıyla birlikte “dosya sistemi”ni bulun.

$ cd pico-rmii-ethernet/lib/lwip/src/apps/http/fs
$ ls 
404.html   img/        index.html
$ 

2. index.html dosyasını tercih ettiğiniz editörle düzenleyin.

3. Dosya sistemi dizinini yerine taşıyın, ardından makefsdata betiğini kullanarak yeniden paketleyin.

$ cd ..
$ mv fs makefsdata 
$ cd makefsdata
$ perl makefsdata

4. Ardından dizinde bir fsdata.c dosyası oluşturmuş olacaksınız. fsdata.c dosyasını üst dizine taşımanız ve UF2 dosyasını yeniden oluşturmanız gerekecek.

$ mv fsdata.c ..
$ cd ../../../../../..
$ rm -rf build
$ mkdir build
$ cd build
$ cmake ..
$ make

5. Her şey plana göre giderse, build/examples/httpd içinde pico_rmii_ethernet_httpd.uf2 adında yeni bir UF2 dosyanız olacak. Bu UF2 dosyasını daha önce olduğu gibi Pico’nuz üzerine yükleyin.

6. Pico’yu yeniden başlatın ve Pico’nun IP adresini tekrar alması için bir süre bekleyin. IP adresini tarayıcıya yazın ve güncellenmiş bir web sayfası görmelisiniz:

Kaynak: RaspberryPi

UF2’nizi geri yüklemeden önce, fsdata.c dosyasını yeniden oluşturmanız gerektiğini unutmayın.

Mevcut Sınırlamalar

Bu oldukça yeni bir uygulama olduğu için birkaç sınırlama bulunmaktadır.

  • RP2040 çipi, RMII modüllerinin referans saatini kullanarak yalnızca 50MHz hızında çalıştırılacaktır.
  • Ne Netcon API ne de Socket API etkinleştirilmiştir çünkü lwIP yığını NO_SYS ile derlenmiştir.
  • Bağlantı hızı 100 Mbps’te TX ile ilgili bir sorun olduğundan 10 Mbps olarak ayarlanacaktır.

Raspberry Pi Pico’ya ethernet ekleme yöntemi çalışsa da, hala sınırlamalar vardır. Endişelenmeyin, çünkü bu durum Wio RP2040 ile değişecek! Wio RP2040 Ailesi, yerleşik WiFi yeteneklerine sahip Wio RP2040 Modülü etrafında şekillenmiştir ve bu sayede sürekli ve güvenilir kablosuz iletişim sağlar. Modül, MicroPython ve Raspberry Pi Pico için Thonny Python kod editörü dahil olmak üzere tüm RP2040 geliştirme araçlarıyla çalışır. Daha fazla ayrıntı için Introducing Seeed’s Wio RP2040 Family – Mini Dev Board & Module! adresine göz atabilirsiniz. Ayrıca Wio RP2040 modülünü Seeed’in çevrimiçi mağazasında bulabilirsiniz!

Özet

Özetle, Raspberry Pi Pico’nuza bir Ethernet bağlantısı eklemenin yolu budur! Bu ek özellik ile olanaklar sonsuzdur. 

lwIP, bir TCP/IP yığınıdır, bu nedenle TCP üzerinden yapabileceğiniz her şeyi artık Pico’nuzda yapabilirsiniz! Bu kılavuzu faydalı bulmanızı umuyoruz ve işte kontrol etmeniz için bazı önerilen makaleler:

Leave a Reply

Your email address will not be published. Required fields are marked *