Mikrodenetleyici programlaması: Arduino ve Pico 2 için hepsi bir arada başlangıç kiti

semaver

New member


  1. Mikrodenetleyici programlaması: Arduino ve Pico 2 için hepsi bir arada başlangıç kiti

Incorporated sistemlerini yönetmeye başlayan herkes, özellikle Arduino, Raspberry Pico 2 veya ESP32 gibi mikrodenetleyici olanlar, önce kendisini uygun öğrenme içeriğine aşina olmalıdır. Bu özellikle ilgilenen ve elektronik yeni başlayanlar için geçerlidir. En zor yol, internette yeterli projeler ve içerik öğrenmek için bir kaynakçı, çeşitli bileşenler ve bileşenlerin yanı sıra bir mikrodenetleyici bulmaktır. Mikrodenetle uğraşan herkes, bir molada kablo ve bileşenleri kaynaklamak veya atma arzusunu hissetmez. Neyse ki, “kaynak olmadan” başlangıç kiti yardımıyla kolay yol da var.






Michael Stale




Dr. Michael Stal, 1991 yılından bu yana Siemens teknolojisi üzerinde çalışmaktadır. Yazılım mimarisi sorunları hakkında iş alanları önermektedir ve Siemens'in kıdemli yazılım mimarlarının mimari oluşumundan sorumludur.







Fikir ve karşılık gelen ürünler uzun süre var, ancak iki seçkin kit, pratik bir formatta ve tam entegre bileşenleri ılımlı bir fiyata gelir (aşağıya bakınız). Arduino ve Pico2 için kitler, yeni başlayanları elektronik ve programlama tabanlarına yaklaştırmak için özel olarak tasarlanmış çeşitli dersler sunar. Aşağıda, makale öğrenme içeriğini ve pratik uygulamaları göstermek için kitler tarafından bir dizi ayrıntılı örnek tartışılmaktadır.



Arduino için hepsi bir arada başlangıç kiti






Arduino kiti



Kitte Arduino yeni başlayanlar için çok sayıda deney var


(Resim: (c) Seçim)



Arduino kiti, basit tabanlardan daha karmaşık projelere kadar 21 ders içeriyor. Projelerinizde kullanılabilecek on beş entegre modül sağlar. İki örnek:

Ders 1: LED göz kırpıcı



Bu ders, Arduino programlamasına aşina olan ilk ve en basit egzersizlerden biridir. Amaç bir LED -Eye göz kırpmaktır.

Öğrenme Hedefleri:

  • Arduino fikrine giriş.
  • Temel işlevleri anlayın setup() VE loop().
  • Dijital çıkışın kontrolü.
İşlem:

Bir LED'in yanıp sönen ışığı, mikrodenetleyicideki temel “merhaba” meslektaşlarından biridir.

  1. Entegre LED (pim 13) Arduino kartına bağlanmıştır.
  2. LED'i açmak ve kapatmak için basit bir program yazın.
C'deki kod örneği:



int ledPin = 13; // LED an Pin 13

void setup() {
pinMode(ledPin, OUTPUT); // Pin als Ausgang definieren
}

void loop() {
digitalWrite(ledPin, HIGH); // LED einschalten
delay(1000); // 1 Sekunde warten
digitalWrite(ledPin, LOW); // LED ausschalten
delay(1000); // 1 Sekunde warten
}


Sonuçlar:

LED her saniyede yanıp söner, bu da ilk gerçekleşme hissini iletir ve onları devam etmeye motive eder.

Ders 2: Sıcaklık ölçümü

Bu derste, kullanıcılar oda sıcaklığını ölçmek ve seri monitörde görüntülemek için entegre sıcaklık sensörünü nasıl kullanacaklarını öğrenirler.

Öğrenme Hedefleri:

  • Analog girişlere giriş.
  • Verileri vermek için seri monitör kullanımı.
  • Sıcaklık değerlerinde analog değerlerin dönüşümünün anlaşılması.
İşlem:

  1. Sıcaklık sensörünü Arduino kartına bağlayın E
  2. Bu yüzden sensörün analog seviyelerini okuyan ve santigrat derecelere dönüştüren bir program yazın.
C'deki kod örneği:



int sensorPin = A0; // Temperatursensor an Pin A0
float voltage, temperature;

void setup() {
Serial.begin(9600); // Serielle Kommunikation starten
}

void loop() {
int sensorValue = analogRead(sensorPin); // Sensorwert lesen
voltage = sensorValue * (5.0 / 1023.0); // Spannung berechnen
temperature = (voltage - 0.5) * 100; // Temperatur berechnen
Serial.print("Temperatur: ");
Serial.print(temperature);
Serial.println(" °C");
delay(1000); // 1 Sekunde warten
}


Sonuçlar:

Ölçülen sıcaklık seri monitörde görülür. Bu ders sensörlerin gerçek uygulamalarda nasıl kullanılabileceğini gösterir.

Pico2 için hepsi bir arada başlangıç kiti






Piko kiti



Hepsi bir arada kit, Pico 2 için çeşitli deneyler içerir


(Resim: Electw)



Pico 2 kit ayrıca RP2350 mikrodenetleyicinin kullanımına ve dokunmatik ekranın entegrasyonuna odaklanan 21 ders sunar. Projelerinde kullanılmak üzere kalıcı olarak entegre 17 blok içerir.

İşte üç örnek:

Ders 1: RGB LED kontrolü

Bu ders, kit RGB LED'lerinin farklı renkleri görüntülemek için nasıl kontrol edilebileceğini gösterir.

Öğrenme Hedefleri:

  • PWM'ye giriş (dürtü genişliğinin modülasyonu).
  • RGB LED'lerinin kontrolü.
  • Farklı yoğunlukta renk karışımının anlaşılması.
İşlem:

  1. RGB LED'lerini farklı renkler sunmak için programlama e
  2. Renk kombinasyonlarınızı oluşturmak için farklı PWM değerleriyle deneysel.
Python'daki kod örneği:



from machine import Pin, PWM
import time

red = PWM(Pin(15))
green = PWM(Pin(14))
blue = PWM(Pin(13))

def set_color(r, g, b):
red.duty_u16(r)
green.duty_u16(g)
blue.duty_u16(b)

while True:
set_color(65535, 0, 0) # Rot
time.sleep(1)
set_color(0, 65535, 0) # Grün
time.sleep(1)
set_color(0, 0, 65535) # Blau
time.sleep(1)


Sonuçlar:

RGB LED'leri, renk ve PWM'nin karıştırılması hakkında bir anlayış ileten farklı renklerde parlar.

Ders 2: Dokunmatik Ekran Kullanıcı Arayüzü

Bu ders, basit bir kullanıcı arayüzü oluşturmak için dokunmatik ekranın kullanımını gösterir.

Öğrenme Hedefleri:

  • Dokunmatik ekran programlamasına giriş.
  • Etkileşimli kullanıcı arayüzlerinin oluşturulması.
  • Ekranda koordinat sistemlerinin anlaşılması.
İşlem:

  1. Öğrenciler dokunuşu tanımak için dokunmatik ekranı planlıyorlar.
  2. Farklı eylemleri etkinleştiren düğmelerle basit bir kullanıcı arayüzü oluşturun.
Python'daki kod örneği:



from machine import Pin, PWM
import time

red = PWM(Pin(15))
green = PWM(Pin(14))
blue = PWM(Pin(13))

def set_color(r, g, b):
red.duty_u16(r)
green.duty_u16(g)
blue.duty_u16(b)

while True:
set_color(65535, 0, 0) # Rot
time.sleep(1)
set_color(0, 65535, 0) # Grün
time.sleep(1)
set_color(0, 0, 65535) # Blau
time.sleep(1)


Sonuçlar:

Basit bir menü veya oyun gibi etkileşimli uygulamalar oluşturmak için dokunmatik ekranı kullanabilirsiniz.

Ders 3: Daha Karmaşık Program Örneği: Çevresel İzleme ve Akıllı Güvenlik Sistemi:

Örnek çok sayıda ders kullanıyor:

  • Havanın sıcaklığının/neminin gerçek zamanlı olarak ölçülmesi
  • Çevresel ışığın tanınması
  • Harekete dayalı güvenlik alarmları
  • LCD durum ekranı
  • LED matrisinin görünümü
  • Yaz Bildirimleri
  • Anahtarlar aracılığıyla kullanıcı etkileşimi
  • RGB LED durum ekranı
Bunun için kullanılan bileşenler:

  • DHT11 sıcaklık/hava nem sensörü
  • Fotoğraf direnci (ışık sensörü)
  • PIR hareket sensörü
  • 16×2 LCD ekran
  • Matris LED 8×8
  • Aktif yaz
  • Düğme
  • RGB LED
  • Modult RGB düğmesi
Deney için çok sayıda donanım bağlantısı gereklidir:

Piko bileşeni Pin gpiio

  • DHT11
    ↔
    gp15
  • Fotoğraf Direnci
    ↔
    ADC0 (GP26)
  • Pir-sensör
    ↔
    gp16
  • LCD I2C
    ↔
    SDA GP0, SCL GP1
  • Matrix LED
    ↔
    DIN GP3, CS GP5, CLK GP2
  • Yaz
    ↔
    gp14
  • 1
    ↔
    GP17 düğmesi
  • Düğme 2
    ↔
    gp18
  • RGB-LED (R, G, B)
    ↔
    gp10, gp11, gp12
Python kodunun uygulanması:



import machine
import utime
from dht import DHT11
from lcd_api import LcdApi
from pico_i2c_lcd import I2cLcd
import max7219

# Komponenten initialisieren
# DHT11 Sensor
dht_pin = machine.Pin(15, machine.Pin.IN, machine.Pin.PULL_UP)
dht = DHT11(dht_pin)

# Lichtsensor
licht_sensor = machine.ADC(26)

# PIR-Sensor
pir = machine.Pin(16, machine.Pin.IN)

# LCD-Display
i2c = machine.I2C(0, sda=machine.Pin(0), scl=machine.Pin(1), freq=400000)
lcd = I2cLcd(i2c, 0x27, 2, 16)

# LED-Matrix
spi = machine.SPI(0, baudrate=10000000, polarity=1, phase=0, sck=machine.Pin(2), mosi=machine.Pin(3))
cs = machine.Pin(5, machine.Pin.OUT)
matrix = max7219.Matrix8x8(spi, cs, 4)

# Summer
summer = machine.PWM(machine.Pin(14))

# Taster
taster1 = machine.Pin(17, machine.Pin.IN, machine.Pin.PULL_UP)
taster2 = machine.Pin(18, machine.Pin.IN, machine.Pin.PULL_UP)

# RGB-LED
rot = machine.PWM(machine.Pin(10))
gruen = machine.PWM(machine.Pin(11))
blau = machine.PWM(machine.Pin(12))

# Systemvariablen
anzeige_modus = 0 # 0: Temperatur/Luftfeuchtigkeit, 1: Licht, 2: Status
alarm_aktiv = False
temp_grenzwert = 30
licht_grenzwert = 20000

def setze_rgb(r, g, b):
rot.duty_u16(r * 257)
gruen.duty_u16(g * 257)
blau.duty_u16(b * 257)

def zeige_alarm(nachricht):
lcd.clear()
lcd.move_to(0,0)
lcd.putstr("ALARM!")
lcd.move_to(0,1)
lcd.putstr(nachricht)

def aktiviere_alarm(frequenz=1000, dauer=0.5):
summer.freq(frequenz)
summer.duty_u16(32768)
utime.sleep(dauer)
summer.duty_u16(0)

def zeige_matrix_ikon(symbol):
matrix.fill(0)
for y, zeile in enumerate(symbol):
for x, wert in enumerate(zeile):
matrix.pixel(x, y, wert)
matrix.show()

# Icons für LED-Matrix
temp_icon = [
[0,1,1,1,1,1,0,0],
[1,1,1,1,1,1,1,0],
[1,1,1,0,1,1,1,1],
[1,1,0,0,0,1,1,1],
[1,1,0,0,0,1,1,1],
[1,1,1,0,1,1,1,1],
[0,1,1,1,1,1,1,0],
[0,0,1,1,1,1,0,0]
]

bewegungs_icon = [
[0,0,0,1,1,0,0,0],
[0,0,1,1,1,1,0,0],
[0,1,1,1,1,1,1,0],
[1,1,0,1,1,0,1,1],
[1,1,0,1,1,0,1,1],
[0,1,1,1,1,1,1,0],
[0,0,1,1,1,1,0,0],
[0,0,0,1,1,0,0,0]
]

while True:
# Sensoren auslesen
dht.measure()
temp = dht.temperature()
luftfeuchtigkeit = dht.humidity()
licht = licht_sensor.read_u16()
bewegung = pir.value()

# Anzeige aktualisieren
if anzeige_modus == 0:
lcd.clear()
lcd.putstr(f"Temp: {temp}°C")
lcd.move_to(0,1)
lcd.putstr(f"Feuchtigkeit: {luftfeuchtigkeit}%")
zeige_matrix_ikon(temp_icon)
elif anzeige_modus == 1:
lcd.clear()
lcd.putstr(f"Licht: {licht}")
zeige_matrix_ikon([[1 if licht > licht_grenzwert else 0 for _ in range(8)] for _ in range(8)])
else:
lcd.clear()
status = "Sicher" if bewegung == 0 else "BEWEGUNG!"
lcd.putstr(f"Status: {status}")
if bewegung:
zeige_matrix_ikon(bewegungs_icon)
else:
matrix.fill(0)
matrix.show()

# Umgebungsbedingungen prüfen
if temp > temp_grenzwert:
setze_rgb(255, 0, 0) # Rot
zeige_alarm("Hohe Temperatur!")
aktiviere_alarm(2000, 0.2)
elif bewegung and licht < licht_grenzwert:
setze_rgb(0, 0, 255) # Blau
aktiviere_alarm(1500, 0.1)
else:
setze_rgb(0, 255, 0) # Grün

# Tastereingabe verarbeiten
if not taster1.value():
anzeige_modus = (anzeige_modus + 1) % 3
utime.sleep(0.3)
if not taster2.value():
alarm_aktiv = not alarm_aktiv
utime.sleep(0.3)

utime.sleep(0.5)


Sistem İşlemi:

Bu karmaşık örnekte, farklı konu türleri entegre edilmiştir.

Her şeyden önce, çevresel izleme gelir:

  • Gerçek Veri -LCD'de Zaman
  • Sınır değerini geçmek için otomatik uyarılar
Yani bir dizi güvenlik işlevi:

  • Karanlıkta Hareket Hareketi
  • LED matrisinde görsel uyarılar
  • Yaz için akustik sinyaller
  • RGB LED'in renk kodlaması (yeşil = normal, kırmızı = aşırı ısınma, mavi = hareket)
Ve son olarak, kullanıcı kontrolü:

  • Taster1: Reklamları Düzenle
  • Taster2: Alarm etkinleştirildi/devre dışı bırakıldı
  • LED matris uygun semboller gösterir
Örnek için çeşitli genişleme seçenekleri vardır:

  1. SD kartta verilerin kaydı
  2. Uzaktan izleme için IoT bağlantısı
  3. Anahtar kombinasyonları aracılığıyla yapılandırılabilir değerleri sınırlayın
  4. Zaman kontrol edilmiş güvenlik modeli
  5. Pil İzleme
Fiyatlar ve kurulum


Doğrudan Electa mağazasında sipariş verirseniz, Arduino kiti için 27.70 $ ve Pico 2 kiti için 37.99 $ ödersiniz. Dizüstü bilgisayarların kullanılması, bir Windows, Linux veya Mac bilgisayarına donanım bağlantısını gerektirir. Bir USB-C girişi içerirler. İlgili bir USB kablosu sağlamalısınız. Ana bilgisayarda, her iki kitin de 1.8.19 sürümü Arduino IDE'nin kurulumuna ihtiyacı var. Yazar, etkileşimin mevcut bir Arduino 2.x ile de çalışıp çalışmadığını doğrulamadı.

İngilizce kullanıcı kılavuzları Arduino sürümü için uygun bağlantılardan indirilebilir, buraya bakın ve PICO2 sürümü için buraya bakın.

Arduino kiti için kod, şemalar ve kitapçılar kod/şema/lib üzerindedir.

Pico 2 kiti için kod, desenler ve kitapçılar kod/şema/lib üzerindedir.

Çözüm


Arduino ve Pico 2 için hepsi bir arada seçici başlangıç kitlerinin dersleri uygulamaya yöneliktir ve elektronik ve programlama öğrenmek için mükemmel bir yol sunar. Arduino kiti sensörlerin ve aktüatörlerin temel projelerine odaklanırken, Pico 2 kiti dokunmatik ekran ve RGB LED'leri aracılığıyla yaratıcı ve etkileşimli uygulamalara izin verir. Her iki kit de yeni başlayanlar için idealdir ve eğlenceli ve motive edilmiş yapılandırılmış bir öğrenme ortamı sunar. Fiyattan şikayet edemezsiniz, ancak örnek projelerle ilgili kullanıcı kılavuzları biçim ve alan ile ilgili süslemeler ve uzantılar yaşayabilir. Dersler veya örnek projelerdeki bilgi ve içerik çok yakındır.

Bir uyarı: Yazar, Test için sürüm olmadan üretici tarafından sağlanan iki kiti aldı.



(RME)




Ne yazık ki, bu bağlantı artık geçerli değil.

Boşa harcanan eşyalara olan bağlantılar, 7 günlük daha büyükse veya çok sık çağrılmışsa gerçekleşmez.


Bu makaleyi okumak için bir Haberler+ paketine ihtiyacınız var. Şimdi yükümlülük olmadan bir hafta deneyin – yükümlülük olmadan!
 
Üst