Raspberry Pi Pico’nun 2021’de büyük bir etki yarattığı inkar edilemez. 4 dolarlık mikrodenetleyici, birçok üretici topluluğu ve grubu tarafından hızla benimsendi ve bunlardan biri CircuitPython’du. Mikrodenetleyiciler için Python 3’ün bir versiyonu olan MicroPython’un bir çatalı olan CircuitPython, kendi RP2040 kart serisini piyasaya süren ortaklardan biri olan Adafruit tarafından desteklenmektedir. 2018’de kuruluşundan bu yana CircuitPython, birçok proje ve kütüphanenin dile taşınmasıyla topluluktan büyük bir yatırım gördü.
CircuitPython, Python’u mikrodenetleyicilere tanıtmanın en iyi yoludur, çünkü ana işletim sisteminde USB flash sürücüler olarak görünen cihazlarla kullanımı kolaydır. içine kodumuzu yazıyoruz. kod.py dosya ve göz kamaştırıcı bir dizi kitaplık aracılığıyla harici sensörleri, ekranları ve girişleri etkinleştirebiliriz.
Peki Raspberry Pi Pico ve CircuitPython ile nasıl çalışabiliriz? Tipik olarak Pico’muzu bir PC’ye bağlarız ve kod yazmaya başlarız, ancak bir Chromebook veya başka bir Chrome OS cihazıyla da projeler oluşturabiliriz. Kullanımı kolay bir programlama dili, ucuz mikro denetleyici ve kullanımı kolay bir işletim sistemi ile yaşımız veya yeteneğimiz ne olursa olsun yaratıcılık için mükemmel bir platforma sahibiz.
Bu nasıl yapılır, Raspberry Pi Pico’nuzu CircuitPython için nasıl kuracağınızı, kod yazmak için yazılımı nasıl kuracağınızı ve Pico’nuzla nasıl iletişim kuracağınızı göstereceğiz ve son olarak bir sıcaklık sensörü projesi oluşturacağız.
Bu proje için ihtiyacınız olacak
CircuitPython’u Raspberry Pico’ya kurun
Ahududu Pi Pico birçok çalıştırabilir farklı dillerhatta bir versiyonu 50+ yıllık dil. Odak noktamız CircuitPython ve CircuitPython’u bir Pico’ya kurmak çok kolay.
1. En son sürümünü indirin Raspberry Pi Pico için CircuitPython. En son sürüm yazıldığı sırada 7.3.0 idi.
2. Raspberry Pi Pico’daki BOOTSEL düğmesini basılı tutun, ardından Pico’nuzu bir USB kablosuyla Chromebook’a bağlayın.
3. İndirilen UF2 dosyasını İndirilenler’den dosyalarda RPI-RP2 sürücüsüne kopyalayın. İşlem bir dakikadan kısa sürecek ve tamamlandığında Dosyalar tarayıcısında yeni bir sürücü CIRCUITPY görünecektir.
İdeal olarak, her şeyi yapabilen tek bir uygulamamız olurdu, ama şimdilik ne yazık ki iki tane yüklememiz gerekiyor. Birincisi, CircuitPython kodunu doğrudan CIRCUTPY sürücüsüne yazmak için kullanabileceğimiz Caret adlı bir metin düzenleyicidir. İkincisi, Chrome OS için bir seri terminal öykünücüsü olan Beagle Term’dir.
1. Caret Metni Düzenleyicisini yükleyin Chrome Web Mağazası aracılığıyla.
2. Beagle Terim’i yükleyin Chrome Web Mağazası aracılığıyla.
Test CircuitPython Kodumuzu Chromebook’ta Yazma
Herhangi bir elektroniğe başlamadan önce, Raspberry Pi Pico’yu kontrol edip iletişim kurabildiğimizi kontrol edelim. Demo kodumuz, her saniye Python kabuğuna yazdıran basit bir Hello World’dür.
1. Caret metin düzenleyicisini açın Arama tuşunu (büyük harf kilidinin normalde bulunduğu dürbün) kullanarak ve Caret yazın. Açmak için Enter’a basın.
2. Dosya >> Aç’a tıklayın ve code.py’yi seçin CIRCUTPY sürücünüzde bulunur. Bu sürücü, CircuitPython çalıştıran Raspberry Pi Pico’nuzdur.
3. Dosyadaki herhangi bir kodu silin.
4. Zaman modülünü içe aktarın. Bunu, kodumuzun döngü hızını kontrol etmek için kullanacağız.
import time
5. Bir süre True döngüsü oluşturun içindeki kodu sürekli çalıştırmak için.
while True:
6. “Merhaba Dünya”yı yazdırmak için bir yazdırma işlevi kullanın. Kodun bir SEKME tuşuna basıldığında veya dört boşlukla girintili olduğunu unutmayın. Python hata vereceği için sekmeleri ve boşlukları karıştırmayın. Bu, test kodunun klasik bir örneğidir. Bir cihaz üzerinde kontrole sahip olduğumuzu ve cihazla iletişim kurduğumuzu doğrulamak için kullanabileceğimiz basit bir araçtır.
print(“Hello World”)
7. Bir saniye duraklama ekleyin
Bu bize Merhaba Dünya mesajını okumamız için bir saniye verir.
time.sleep(1)
8. Kodunuzu code.py’ye kaydedin. CircuitPython, her kaydettiğimizde kodu otomatik olarak çalıştıracaktır.
Test Kodu Listeleme
import time
while True:
print(“Hello World”)
time.sleep(1)
Beagle Terim Seri Öykünücüsünü Kullanma
Kodumuzun çıktısını görmek için Beagle Term seri terminal öykünücüsünü çalıştırmamız gerekiyor. Bu uygulama, USB’den seri bağlantıya geçerek Python konsoluna bağlanacaktır. CircuitPython, kartla etkileşimli olarak çalışmak için kullanılabilen bir REPL (Read, Eval, Print, Loop) Python konsoluna sahiptir ve doğrudan konsola bilgi verebilir.
1. Beagle Terim uygulamasını açın Arama tuşunu (büyük harf kilidinin normalde bulunduğu dürbün) kullanarak ve Caret yazın. Açmak için Enter’a basın.
2. Portunuzu Raspberry Pi Pico’nuza ayarlayın. Limanın adını bilmediğimiz için bu biraz deneme yanılma yaklaşımıdır. Testlerimizde Raspberry Pi Pico’muz için /dev/ttyACM1 gördük.
3. Bit Hızını 9600 olarak ayarlayın. Bu, Chrome OS cihazımızın ve Raspberry Pi Pico’nun iletişim kuracağı hızdır.
4. Data Bit’i 8 bit, Parite yok, Stop Bit’i 1 bit olarak ayarlayın, ve son olarak Akış Kontrolünü hiçbiri olarak ayarlayın.
5. Bağlan’ı tıklayın Raspberry Pi Pico’nuza seri bağlantıyı başlatmak için. Merhaba Dünya, ekranı aşağı kaydırıyor olmalı. Değilse, kodun çalışmasını durdurmak için CTRL+C tuşlarına basın ve ardından kodu yeniden başlatmak için CTRL+D tuşlarına basın.
Sıcaklık Sensörü Projesi Oluşturma
DHT22’nin dört pimi vardır, ancak bunlardan yalnızca üçünü kullanmamız gerekecek. Sensörle çalışmak nispeten kolaydır. Güç vermek için 3V’a ihtiyaç duyar ve veri çıkış pimi 10K Ohm’luk bir direnç kullanılarak yükseğe çekilir. Pimi yukarı çekerek, pim her zaman “açık” olduğundan, sensörden gelen verilerin okunmasını sağlıyoruz.
1. Raspberry Pico’nuzu devre tahtasına yerleştirin böylece microUSB bağlantı noktası kartın sol tarafındadır.
2. 3V3 çıkışından (kırmızı kablo) devre tahtasının + rayına bir atlama kablosu çalıştırın. Bu, 3.3V pinin tüm + raya bağlanmasını sağlar. GND piminden – rayına başka bir tel geçirin.
3. DHT22’yi devre tahtasına yerleştirin.
4. 3.3V (kırmızı kablo) ve GND’yi (siyah kablo) DHT22’nin 1 ve 4 numaralı pinlerine bağlayın. Sensörün plastik “çerçevesine” baktığımızda, pin numaraları soldan sağa gider.
5. 10K Ohm direnç kullanarak 3.3V rayını DHT22’nin 2. pinine bağlayın. Bu, veri pini için çekme direncimizdir.
6. DHT22’nin veri pinini (pin 2) Raspberry Pi Pico’nun GP15’ine bağlayın. Breadboard’unuz böyle görünmelidir.
Projenin Kodlanması
1. CircuitPython Kitaplıkları paketini indirin CircuitPython sürümünüz için.
2. İndirilenler klasörünüze gidin. ZIP dosyasını sağ tıklayın ve çıkarın.
3. adafruit-circuitpython-bundle klasörünü açın ve şuraya git kitap alt klasör.
4. adfafruit_dht.mpy dosyasını CIRCUTPY sürücünüzün /lib/ klasörüne kopyalayın. Bu kütüphane Raspberry Pi Pico’muzun DHT11 ve DHT22 sensörleri ile çalışmasını sağlar.
5. Raspberry Pi Pico’nuzda code.py’yi açın Caret metin düzenleyicisini kullanarak. Test kodunu dosyadan silin.
6. Kodumuzun GPIO’ya (kart) erişmesini sağlamak, sıcaklık sensörünü (adafruit_dht) kullanmak ve döngü hızını (zaman) kontrol etmek için üç modülü içe aktarın.
import board
import adafruit_dht
import time
7. Bir nesne oluşturun, dht kodu Raspberry Pico’daki GP15’e bağlı DHT22 sensörüne bağlamak için.
dht = adafruit_dht.DHT22(board.GP15)
8. Kodu çalıştırmak için bir döngü oluşturun.
while True:
9. Mevcut sıcaklığı, adı verilen bir değişkende saklayın. sıcaklık Sıcaklık Santigrat cinsinden kaydedilir.
temp = dht.temperature
10. Bir nesne oluşturun, Metin ve orada “Sıcaklık Santigrattır” yazan bir dize saklayın. :>8 fark edeceksiniz, bu, cümlenin ortasında sekiz boşluk içerecek bir dize biçimidir. Bu bize sıcaklık verilerini yerleştirmek için açık bir alan sağlar.
text = "The temperature is :>8 Celsius."
11. Metin biçimiyle birlikte yazdırma işlevini kullanınt Boşluğa sıcaklık verilerini eklemek için.
print(text.format(temp))
12. Son olarak bir saniyelik bir duraklama ekleyin. Bu, döngünün yavaşça tekrarlanmasını sağlar.
time.sleep(1)
13. Projeyi code.py’ye kaydedin DEVRE sürücünüzde.
14. Açık Beagle Dönemi ve Raspberry Pi Pico’nuza bağlanın. Sıcaklık verilerinin ekran boyunca kaydırıldığını görmelisiniz. Değilse, kodu yeniden başlatmak için CTRL + C, ardından CTRL + D tuşlarına basın.
Komple Kod Listeleme
import board
import adafruit_dht
import time
dht = adafruit_dht.DHT22(board.GP15)
while True:
temp = dht.temperature
text = "The temperature is :>8 Celsius."
print(text.format(temp))
time.sleep(1)