semaver
New member
Bilgisayara Uzaktan Kumanda: İsviçre Pocket Bıçağı Olarak Breakout Glio Kartları

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.
Bir bilgisayardan elektronik bileşenlere erişmenin çeşitli yolları vardır. Bir yandan, mikrodenetleyici, örneğin kartlarda çalışan bir yazılım kullanarak Arduino veya Raspberry Cards PI'deki elektronikleri kontrol etmek için USB aracılığıyla birbirine bağlanabilir. Arduino ile uyumlu kartlar için, yönetim kurulunun kapılarına az çok doğrudan erişim sağlayan bir şirket kurmak mümkündür.
Başka bir seçenek, bu sapma yoluyla elektroniklere erişmek için bir bilgisayardan kendi kendine bir mikrodenetleyici sekmesine hızlı iletişim. Konsey hakkındaki program, bilgisayarlar ve elektronikler arasında bir aracı görevi görür.
Üçüncü yol, söz konusu bilgisayara SO -Called Breakout Glio kartını USB aracılığıyla bağlamaktır. Bu durumda, uygulamalar Breakout sekmesinde bulunan GAPI kapılarına erişebilir. Buna ek olarak, bir GIPIO koparma kartı genellikle SPI veya I2C gibi protokollere destek uygular. Bu aynı zamanda donanımı bir şekilde daha karmaşık olarak kontrol etmenizi sağlar, örneğin ekran ve sensörler.
Adofrruit FT232H GPIO Breakout Board
Bu koparma GPIOT kartı, örneğin Berrybase'de yaklaşık 15-18 Euro trafik fiyatlarında bulunan Adofrruit FT232H koparma tahtası Blinka'dır. Açıkçası başka GPIO kartları var, ancak sınav yeterli sayıda GAPI kapısına sahip ve ayrıca Oart, I2C, SPI, Bit-Bang ve JTAG'yi destekliyor. Geliştiriciler bunu Python üzerinden bilgisayardan kontrol edebilir. Ayrıca, FT232H kartı için birçok bilgi kaynağı mevcuttur.
Deneylerim için, bir USB-C bağlantı noktası ve karşılık gelen bileşenlerin bir amblem/qt veya QWIIC arayüzü ile bağlantısına izin veren bir QT konnektörü olan kartın son varyantını aldım.

Breakout panosunun en son sürümü bir USB-C bağlantısı ve QT Quiic/Ceket bağlantı sunar.
(Resim: Adafruit)

Kartın önceki sürümü yalnızca bir mikro USB bağlantısı sunmaz.
(Resim: Adafruit)
Ayrıntılı olarak
Kart, adını USB protokolünü de uygulayan bir FTDI FT232H olan entegre çipten alıyor. Sonuç olarak, geliştiriciler sistemle ilgili USB işleviyle karşılaşmazlar. Birçok durumda, bilgisayarda bir USB sürücüsünün kurulumu yoktur. FT232H, mevcut olan tam hız modunda 480 mbit/s'ye kadar iletim oranlarını garanti eden USB 2.0 Hi-Speed'i destekler. Kartın yeni sürümünde bir USB-C bağlantı noktası var. Uygun bir kablo dahil değildir. Bu nedenle, zaten mevcut olmadığı sürece ilgili bir kablo sipariş etmeniz tavsiye edilir.
Çip çekirdeği 1.8 V ile çalışır, 3.3 V ile girişler/çıkışlar. İkincisi 5V'ye toleranslıdır. Chip üreticisinin ürününde daha fazla ayrıntı mevcuttur.
Pinout diyagramında görülebileceği gibi (yukarıdaki çizimlere bakın), Adafruit çözeltisi GPIO D4-D7 ve C0-C7 kapılarını sağlar.
D0-D3 kapıları SPI veya I2C protokolünü uygular. “Veya” I2C veya SPI'nin kontrol için kullanılabilir olduğu anlamına gelir, ancak her ikisi de aynı anda değildir.
Karttaki bir anahtarla, geliştiriciler I2C kullanıp kullanmadıklarını ancak SPI (I2C Anahtar) kullanmadıklarını veya SPI kullanmak istediklerini ancak I2C'yi (I2C'yi değiştirme konumu) kullanmadıklarını belirler. İkinci durumda: D0 -> SCLK, D1 -> MSI, D2 -> MISO, D3 -> CS0. İlk durumda, aşağıdaki atama vardır: D0 -> SCL, D1 veya D2 -> SDA. İki D1 ve D2 bağlantı noktalarından biri, I2C'den SDA sinyalini iletmek için kullanılabilir. Kartın eski sürümünde, I2C kullanıcıları hala D1 bağlantı noktasını D2 bağlantı noktasına bağlamak ve ardından D2'yi gerçek devreye bağlamak zorunda kaldı.
kurulum
Adafruit, kartı yüklemek için kendi talimatları web sitesini sunar. Windows, Mac veya Linux bilgisayarında programlamanın Python 3 ve PIP3 kurulumunu gerektirmesi önemlidir.
Windows sürücü olmadan USB cihazlarını desteklemediğinden, kullanıcıların önce bir Zadig USB sürücüsü yüklemesi gerekir. MacOS ve Linux ile bu çoğu durumda gerekli değildir.
Bunu Libusb Kitapçısı'ndan kurulumlar izler ve özel Python Pyftdi ve Adofrule-Branka-Branka kitapçıları da CircuitPython aracılığıyla erişim için tüm işletim sistemlerindeki koparma kartının adıdır. Son olarak, kural Udev (sadece Linux) tanımlanmalı ve çevresel bir değişken tanımlanmalıdır (tüm işletim sistemleri). Bu değişken Blink_FT232H olarak adlandırılır ve bir yanıp sönme kartının varlığını 1 değerine bildirmeyi amaçlamaktadır.
Daha önce de belirtildiği gibi, her zaman bilgisayarda Python3 ve Pip3 kurulumu olduğu varsayılır.
Bu arada, tavsiye “önceden belirlenmiş” başlıklar olmadan teslim edilir. Her şeyden önce, bazı kaynak çalışmalarına ihtiyaç vardır.
İşte farklı talimatlar:
Devreleri Blinka Breakout panosu aracılığıyla kontrol etmek için, bu açıkça bilgisayarınıza bağlanmalıdır. Yazılım açısından, devre devre programları kart için bir arayüzdür. Windows, Linux, macOS altındaki standart bilgisayarlar Python 3'ü içerir, ancak geliştiriciler CircuitPython'u nasıl kullanabilir? Bir yandan, Python (Adofru-Blinka) için Blinka Kütüphanesi ve ilgili devre bodrum kitaplıkları, sensörler, ekranlar ve benzerleri gibi “uzaktan kumandalı” donanım için gereklidir.

Bilgisayarın devreleri veya bileşenleri kontrol etmek için bir Python3 kurulumuna ve çeşitli kitapçılara ihtiyacı var.
(Resim: Adafruit)
Göz kırpma kartını test etmek için bir MAC bilgisayarı kullandığım için, MACO için gereken kurulum aşamaları artık ayrıntılı olarak takip ediliyor:
Homebrew Paket Yöneticisi'nin kurulumu yoksa, şu şekilde yükliyoruz:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Bu nedenle Libusb kurulumu Homebrew yardımıyla talep edilir:
brew install libusb
Yani Pyftdi's:
pip3 install pyftdi
Ve son adımda gerçek kart kütüphanesinin kurulumu:
pip3 install adafruit-blinka
Şimdi kullanıcı çevresel değişken olmalı BLINKA_FT232H 1 istihdamla:
export BLINKA_FT232H=1
Son olarak, Python 3 tekrarını başlatmak ve yavaş yavaş aşağıdaki iki talimatı eklemek hala önemlidir:
import board
dir(board)
Her şey kusursuz hale gelirse, bu son talimatlar terminalde bulunan pimler listesini yayar.
Kurulum hazır!
Kurulumun çalışıp çalışmadığını kontrol etmek için aşağıdaki testler var:
Önce sistemin FT232H kartını tanıdığından emin olmak için bir test:
from pyftdi.ftdi import Ftdi
Ftdi().open_from_url('ftdi:///?')
Genellikle sadece bir FTDI denetleyicisi vardır, bu nedenle çıktı aşağıdaki gibi görünebilir:
>>> from pyftdi.ftdi import Ftdi
>>> Ftdi().open_from_url('ftdi:///?')[Link auf https://learn.adafruit.com/circuitpython-on-any-computer-with-ft232h/setup]
Available interfaces:
ftdi://ftdi:232h:1/1 ()
Please specify the USB device
Bu nedenle, çevre değişkeninin mevcut olup olmadığını kontrol edin ve doğru ayarlayın:
import os
os.environ["BLINKA_FT232H"]
Çıktı basitçe şu olmalıdır:
´1´
Dediğim gibi, bu açıklama sadece yüzeyi çiziyor. Kesin talimatlar Adofruit talimat web sitesinde görüntülenebilir.
Sorunlarda, Adafruit web sitesi Adafruit web sitesinde mevcuttur.
programlama
Beni zorunlu yanıp sönen LED'e veya bir düğmenin durumunu tanımlamaya örnekler hariç. Bunun yerine, bir duyarlılık SHT40 bağlantısı örnek olmalıdır.
Bu sensörün maliyeti sadece birkaç Euro'ya mal olur ve sıcaklığı ve nemi nispeten kesin olarak ölçer. Bağıl nemin tipik doğruluğu RH sıcaklığındadır ve 0.2 ° C%1.8'dir. Bu bağlamda, I2C bağlantısı ile bir adafruit kartı kullanılır. Ölçüm ısıtma ile veya ısıtmadan ölçülebilir (->sht.mode) gerçekleşir. Program için programı ısıtmadım. I2C'ye dayanan bir sensör olduğundan, APT232H'nin I2C anahtarı yerleştirilmelidir.

Breakout kartı, bir QWIIC/Arm-QT kablosu ile Sensivion SHT40'a bağlanır.
Her ölçümden sonra, sensör yaklaşık dört saniyeye ihtiyaç duyar – sıcaklık ölçümü sırasında iki saniye ve nem ölçümünde dört saniye. Bu nedenle, WIRE döngüsü bir tane içerir sleep(4).
Programın başlamasından önce, geliştiriciler Adofruit Kütüphanesi isteğini yüklemelidir:
pip3 install adafruit-circuitpython-sht4x
Orijinal program Adafruit'ten geliyor.
import time # zum Verzögern der Ausgaben
import board # zur Ausgabe über FT232H
import adafruit_sht4x # Einbinden der Bibliothek für den Sensor
i2c = board.I2C() # Am I2C-Anschluss (SDA/SCL des FT232H) hängt ein Adafruit SHT40-Breakout-Board
sht = adafruit_sht4x.SHT4x(i2c)
print("SHT4X mit folgender Seriennummer entdeckt: ", hex(sht.serial_number))
sht.mode = adafruit_sht4x.Mode.NOHEAT_HIGHPRECISION # ohne Heizen!
# alternativ mit: sht.mode = adafruit_sht4x.Mode.LOWHEAT_100MS
print("Augenblicklicher Modus: ", adafruit_sht4x.Mode.string[sht.mode])
while True:
temperature, relative_humidity = sht.measurements
print("Temperatur: %0.1f C" % temperature)
print("Feuchtigkeit: %0.1f %%" % relative_humidity)
print("")
time.sleep(4) # 4 Sekunden Verzögerung
Ekran çıkışı aşağıdaki gibi çok heyecan verici değil:

SESIION SHT40'ın ölçülen değerleriyle ekran çıkışı.
Dikkat
Bir uyarı dikkate alınmalıdır. Bileşenleri Breakout sekmesine bağlarken, ilgili devrenin USB bağlantı noktası için bir tehlikeyi temsil etmediğinden emin olmak gerekir. Aksi takdirde, bilgisayarın USB bağlantı noktasındaki aşırı yük onu etkileyebilir. Adafruit, kartın USB bağlantı noktasından maksimum 400-500mA elde edebileceğini vurgular. Testler, diyotlar kullanarak endüktif yüklerin korunması, direnç yoluyla elektriğe karşı direnci sınırlayan çeşitli savunma önlemleri vardır. Unutursanız, bağlı bilgisayara zarar verebilirsiniz. Atasözünün dediği gibi: Dikkat porselen bronzluğun annesidir.
Çözüm
Adofrude FT232H gibi koparma glio kartları, bir mikrodenetleyici sekmesi müdahale etmek zorunda kalmadan elektroniklere doğrudan bilgisayarlardan erişmek için mükemmel bir yol sunar. Tabii ki, bunun olası uygulamalarla ilgili sınırları da vardır. Örneğin, mikrodenetleyici tabanlı çözümler, PC'nin karşı taraflarına kıyasla gerçek zaman gereksinimlerine izin verir ve çeşitli protokollerin kullanımı açısından çok daha esnektir. Öte yandan, bilgisayar tarafından desteklenen bir çözümün de avantajları vardır. FTDI çip üreticisi, diğer şeylerin yanı sıra, kamera arayüzlerinin kontrolünden, barkodun okuyucularından, yerleşim kutularından, flash kartların flaşlarından, MP3 cihazlarından ve endüstriyel uygulamalardan bahsediyor.
CircuitPyThon desteğine ek olarak, kartı karşılık gelen uygulamalarda kullanmak için C ++ kitapçıları sağlamak güzel olurdu. Ancak, bu yüksek seviyede şikayet etmektir. Python, bir FT232H için olası uygulama türleri için yeterlidir. Python'un özellikle deneylerinin hızlı prototiplenmesi için bazı avantajları vardır.
(harita)