R­a­s­p­b­e­r­r­y­ ­P­i­ ­P­i­c­o­ ­W­ ­v­e­ ­C­i­r­c­u­i­t­P­y­t­h­o­n­ ­İ­l­e­ ­N­a­s­ı­l­ ­H­a­b­e­r­ ­A­l­ı­n­ı­r­

R­a­s­p­b­e­r­r­y­ ­P­i­ ­P­i­c­o­ ­W­ ­v­e­ ­C­i­r­c­u­i­t­P­y­t­h­o­n­ ­İ­l­e­ ­N­a­s­ı­l­ ­H­a­b­e­r­ ­A­l­ı­n­ı­r­

Raspberry Pi Pico, 2021’de kediyi kesinlikle güvercinlerin arasına soktu, ancak bir önemli özelliği, Wi-Fi’yi kaçırdı. Elbette kendi çözümümüzü hackleyebiliriz ancak resmi destek alabilmek için Raspberry Pi’nin Raspberry Pi Pico W’yi duyurması için 2022 ortalarına kadar beklememiz gerekti.

Raspberry Pi Pico W, sağlam bir MicroPython bellenimi ile piyasaya sürüldü, ancak DevrePython, en sevdiğimiz mikrodenetleyici Python sürümü ne yazık ki destekten yoksundu. Birkaç ay sürmüş olabilir, ancak sıkı çalışmasına @jeffepler Artık Pico W için Wi-Fi desteği sunan ve aynı zamanda tanıdık CircuitPython ekosistemini koruyan CircuitPython 8 Beta 2’ye sahibiz.

Bu dönüm noktasını kutlamak için Raspberry Pi Pico W üzerinde CircuitPython’u vurgulayacak bir proje hazırladık. Bir RSS haber akışından alınan, JSON’a dönüştürülen ve ardından küçük bir OLED ekranda görüntülenen canlı verilerle çalışacağız.

Bu proje için ihtiyacınız olacak

Devre aslında sadece bir I2C bağlantısı aracılığıyla Raspberry Pi Pico’ya bağlı OLED ekrandır. Devreye eklenen tek şey, Pico’nun + rayına ve SDA ve SCL pinlerine bağlanan iki adet 4.7K Ohm dirençtir. Bu ray 3.3V’a bağlıdır ve dirençler pinleri yükseğe çekmek için kullanılır, veri göndermeye ve almaya hazırdır.

Bağlantılar aşağıdaki gibidir

1. Raspberry Pi Pico W için resmi CircuitPython sayfasına gidin ve en son sürüm UF2 üretici yazılımı görüntüsünü indirin. Yazma sırasında bu CircuitPython 8 Beta 2 idi.

2. BOOTSEL düğmesini basılı tutarken Raspberry Pi Pico W’yi bilgisayarınıza bağlayın. Yeni bir sürücü, RPI-RP2 görünecek

3. İndirilen CircuitPython UF2 dosyasını RPI-RP2’ye kopyalayın. Bu, CircuitPython’u Pico W’nin dahili flaş belleğine yazacaktır. Yeni bir sürücü, CIRCUTPY görünecektir.

Devam edebilmemiz için birkaç CircuitPython kitaplığına ihtiyacımız var. Bu önceden yazılmış kod kitaplıkları, bir projeye ekstra özellikler ekler.

1. İndirmek kitaplık paketi Pico W’da kurulu olan CircuitPython’un aynı sürümü için. CircuitPython 8’i kurduk, böylece sürüm 8.x paketini indirdik.

2. Paketi masaüstünüze çıkarın ve sonra lib klasörünü açın içinde yer alır.

3. Aşağıdaki dosyaları / klasörleri bu lib klasöründen CIRCUTPY sürücüsündeki lib klasörüne kopyalayın.

adafruit_bitmap_font

adafruit_display_text

adafruit_displayio_ssd1306.mpy

adafruit_requests.mpy

1. Thonny’yi indirin ve yükleyin zaten sahip değilsen. Thonny, Python 3, MicroPython ve CircuitPython’u kapsayan bir Python editörüdür.

2. Thonny’yi açın ve Araçlar >> Seçenekler’e gidin.

3. Yorumlayıcı’yı seçin, ardından yorumlayıcıyı CircuitPython, bağlantı noktası otomatik olarak ayarlayın ve Tamam’a tıklayın. Thonny şimdi CircuitPython çalıştıran Pico W’ye bağlanacak.

Proje kodumuz secrets.py ve code.py olmak üzere iki dosyadan oluşmaktadır. secrets.py dosyası esasen Wi-Fi erişim noktamızın SSID’sini ve şifreyi içeren iki değişkenli bir Python modülüdür. Wi-Fi ayrıntılarınızı secrets.py adlı ayrı bir dosyaya kaydetmek en iyi yöntemdir; bu, kimlik bilgilerinizi yanlışlıkla paylaşma riskini azaltır. Bu işlem CircuitPython ve MicroPython için çalışır.

1. Yeni bir dosya oluşturun ve orada ssid ve password olmak üzere iki nesne oluşturun.

2. ssid nesnesi için, ona Wi-Fi erişim noktanızın / yönlendiricinizin adını atayın.

3. Şifre için Wi-Fi şifresini atayın.

4. Dosyayı CIRCUTPY sürücüsüne secrets.py olarak kaydedin.

Bu projenin kodu, code.py adlı bir dosyada bulunur. Bu dosya Pico W açıldığında otomatik olarak çalışacaktır, bu CircuitPython’un bir özelliğidir. MicroPython’da aynı sonucu elde etmek için main.py dosyasını adlandırırdık. Şimdi projemizi oluşturacak kodu yazma işlemine başlıyoruz.

1. Dosya >> Aç’a tıklayın ve CircuitPython cihazını seçin. CIRCUTPY sürücüsünde code.py’yi açın. Dosyadaki herhangi bir kodu silin.

2. Önceden yazılmış kodun modüllerini içe aktarın kodumuzu duraklatmak (zaman) için bir IP adresi belirlemek, Pico W’nin Wi-Fi çipini kullanmak ve web soketleri oluşturmak için.

3. Dört modül daha içe aktarın güvenli bağlantılar, web istekleri yapmak için, Wi-Fi oturum açma bilgilerimizi içeren bir modül ve GPIO ile etkileşime geçmek için bir modül.

4. Son modül grubunu içe aktarın hızlandırılmış veri yolu erişimi için bir ekran kitaplığı, bir terminal stili metin modülü, kayan metin ve OLED ekran için bir sürücü.

5. CircuitPython için ekranı serbest bırakın kullanmak için ve sonra I2C için kullanılan GPIO pinlerini belirtin.

6. OLED ekranı için I2C arayüzünü ve I2C adresini belirtin ekran veriyolunda ve ardından bunu bir görüntüleme nesnesi oluşturmak için kullanın. Genişliği ve yüksekliği OLED ekranınıza göre ayarlamayı unutmayın. OLED ekranın I2C adresini bulmak için veri sayfasına bakın veya aramak için bir I2C tarayıcı kullanın.

7. Wi-Fi’ye bağlanın secrets modülünde saklanan ssid ve şifreyi kullanarak.

8. Bir yuva havuzu oluşturun bağlantılar için kullanabileceğimiz ve ardından yeni bir HTTP oturumu oluşturun Web istekleri yaparken kullanılacak.

9. Bir while True döngüsü oluşturun ana proje kodunu çalıştırmak için. Bu döngü, Pico W açık olduğu sürece devam edecektir.

10. Bir başlık oluşturun ve onu toms nesnesine kaydedin.Banner bir * dizisidir, ardından “Tom’s Hardware News” ve ardından 10 tane daha *.

11. Metni kaydırmak için bir nesne oluşturun toms nesnesinde saklanır. Animasyon süresi kaydırma hızını yönetir, ölçek, 128×32 ekranımız için mevcut en büyük 3 olmak üzere metin boyutunu artırmak için kullanılır.

12. Metnin konumunu ayarlayın (yatay, x ve dikey, y).

13. Metni OLED ekranında gösterin.

14. Başlığı kaydırmak için bir for döngüsü kullanın ekran boyunca. Hoş bir kaydırma oluşturmak için toms nesnesinde saklanan metnin uzunluğunu eksi altı olarak kullanıyoruz. Bunun, banner metninize uyacak şekilde ayarlanması gerekecektir.

15. Bir nesne oluşturun, besleyin ile haber başlıklarını içeren JSON beslemesinin URL’sini saklayın. Kullandığımız rss2json.com Tom’s Hardware RSS beslemesini CircuitPython’da kolayca çalışılabilen JSON’a dönüştürmek için.

16. İlk beş hikayeyi almak için bir for döngüsü kullanın beslemeden.

17. Hikayenin başlığını yazdırın Python kabuğuna.

18. Başlığı kaydırmak için kayan metni güncelleyinmetinden önce 20 boşlukluk bir arabellek ve 2’lik bir ölçek (metin boyutu) ile.

19. Metnin konumunu ayarlayın (yatay, x ve dikey, y).

20. Metni OLED ekranında gösterin.

21. Başlık metnini kaydırmak için başka bir for döngüsü kullanın. Döngüdeki yinelemeler, başlığın uzunluğuna ve bir arabellek oluşturmak için 21 karaktere göre ayarlanır.

22. Son olarak 30 dakikalık bir uyku ekleyin, (1800 saniye) Pico W’yi her yarım saatte bir yeni manşetleri kontrol edecek şekilde ayarlamak için.

23. Projeyi code.py olarak kaydedin DEVREYE girin ve kodu başlatmak için Çalıştır’a tıklayın.

OLED ekranın canlandığını ve bir banner’ı, ardından haber manşetlerini kaydırdığını görmelisiniz. Projeyi code.py dosyasına kaydettiğimiz için, Pico W açıldığında bu kod otomatik olarak çalışacaktır.

Popular Articles

Latest Articles