SwitchDoc Labs’ta, mühendislik projeleri için prototipler oluşturuyoruz. Bazen bunlar bir ürüne dönüşüyor, bazen de dönüşmüyor. Parçaların değiştirilebildiği ve iyi bir mekanik arayüze sahip olan iyi bir takılabilir prototipleme sistemi arayışındaydık. Yıllar içinde çeşitli sistemleri inceledik. Ne istedik? Birçok üretici tarafından desteklenen, lisans ücreti olmayan, başlangıç seviyesindeki kullanıcılar ve gençler için kolay kullanımlı, sorun yaşamadan devreler inşa edebileceğimiz kadar basit ve Raspberry Pi, Arduino ve ESP8266 ile kullanılabilecek kadar esnek bir şey istedik. Şimdi, endüstride önemli bir desteğe sahip böyle bir sistemi bulduk.

Bu öğreticideki tüm parçalar www.seeedstudio.com veya www.robotmesh.com adresinden temin edilebilir.
Bu serinin 2. Bölümü. 1. Bölüm, tüm Grove konektör sistemini tanımlıyor.
3. Bölüm, yeni Dual Grove/Pin Headers I2C 4 Kanal Mux kullanarak daha karmaşık bir Grove uygulamasını tanımlayacak.
Grove Sistemi Nedir?

Grove, modüler, standartlaştırılmış bir konektör prototipleme sistemidir. Grove, elektronik bileşenleri bir araya getirmek için bir yapı taşı yaklaşımını benimser. Jumper veya lehim tabanlı sistemlere kıyasla, bağlantı kurmayı, denemeyi ve inşa etmeyi kolaylaştırır ve öğrenme sistemini basitleştirir, ancak bu basitleştirme, sistemin işlevselliğini azaltmaz. Diğer bazı prototip sistemleri, düz yapı taşları seviyesine kadar indirgenmiştir. Bu şekilde öğrenilecek iyi şeyler vardır, ancak Grove sistemi, gerçek sistemler inşa etmenizi sağlar. Bağlantı kurmak için biraz öğrenme ve uzmanlık gerektirir.
Grove sistemi, bir ana ünite ve standartlaştırılmış konektörlere sahip çeşitli modüllerden oluşur.
Ana ünite, genellikle bir mikroişlemci, Grove modüllerinden herhangi bir giriş veya çıkışın kolayca bağlanmasını sağlar ve her Grove modülü genellikle basit bir düğme veya daha karmaşık bir kalp atış hızı sensörü gibi tek bir işlevi hedefler.
Grove modüllerine bağlanmak için bir ana üniteye ihtiyacınız yoktur. Raspberry Pi veya Arduino üzerindeki pinlerden Grove konektörlerine bağlanmak için bir kablo (Grove to Pin Header Converter) kullanabilirsiniz. Bunu SunRover projesinde ve aşağıdaki örneklerde yapıyoruz.
Peki, Grove Konektörü Nedir?

Şekil 2A Grove konektörü, ana üniteler ve Grove modüllerine takmak için kullanılan dört pinli standart boyutlu bir konektördür. Şekil 1, erkek Grove Konektörünü göstermektedir. Erkek konektörler, Şekil 2’deki gibi düz 90 derece versiyonlar ve dik versiyonlar olarak gelir. Seeedstudio, bu spesifikasyonda tam boyutları sağlamaktadır [ http://www.seeedstudio.com/wiki/images/6/69/3470130P1.pdf]. Bu standartlaştırılmış konektörler (tüm Grove Konektör türlerinde ortak olan) bu sistemin çalışmasını sağlamak için anahtardır. Yanlış takılmalarını önlemek için anahtarlıdırlar ve dört tür konektör (aşağıda görüldüğü gibi) tasarlanmıştır, böylece yanlış türde bir cihazı yanlış türde bir ana üniteye takarsanız, sorun olmaz. Sadece çalışmazlar. Bu iyi bir şeydir.
Tek istisna, 5V toleranslı olmayan bir 3.3V I2C Grove modülünü 5V I2C Grove konektörüne takarsanız, cihazı bozabilirsiniz.
Bu yazıda dört basit grove projesini tartışıyoruz.
Proje 1: Raspberry Pi’ye Grove Fan Bağlama
Üç basit ama görsel olarak ilginç Grove projesi seçtik. İlk modül Grove Fan modülüdür. Bu, Dijital Grove modülüdür. Bağlantı basitti. GPIO17’yi D0 ve 5V ile GND’ye bağladım. Şekil 6’da Grove To Pin Header Converter konektör kablosunu kullanarak bir jumper ile bağladım (her zaman bunları elinizin altında bulundurun!). Yazılım çok basitti.

#
#
# Grove Fan’ı Test Et
#
# Dijital Grove Konektörü
#
# Gnd, 5V, GPIO4, GPIO17
# Grove
# Gnd VCC D1 D0
#
import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
try:
while (1):
GPIO.output(17, GPIO.HIGH)
time.sleep(2.0)
GPIO.output(17, GPIO.LOW)
time.sleep(2.0)
except KeyboardInterrupt:
# burada programdan çıkmadan önce çalıştırmak istediğiniz kodu yazın
# CTRL+C tuşuna bastığınızda çıkış yapar
print “klavye kesintisi”
except:
print “diğer hata”
finally:
GPIO.cleanup() # bu, temiz bir çıkış sağlar
<a href=”http://www.switchdoc.com/wp-content/uploads/2016/02/Figure-11.jpg” rel=”attachment wp-att-3352″><img class=”aligncenter size-large wp-image-3352″ src=”http://www.switchdoc.com/wp-content/uploads/2016/02/Figure-11-1024×768.jpg” alt=”Şekil 11″ width=”930″ height=”698″ /></a>
Tek zor kısım, GPIO’ların programımız çıkarken kapalı (aslında yüzer) olduğundan emin olmak için Try / Except bloğunu kullanmamızdır. Aksi takdirde, kodunuzdaki bir hata fanın çalışmaya devam etmesine neden olabilir.
Tabii ki, işte video:
Proje 2: Raspberry Pi’ye Grove Elektrolüminesans Kablo Bağlama

İkinci örnek, Grove Dijital EL Kontrolü kullanarak bir EL (Elektrolüminesans) kablosunu beslemektir. Bu, Dijital Grove Modülüdür. Raspberry Pi hakkında bir noktayı vurgulamak için yazılım PWM (Darbe Genişlik Modülasyonu) kullanmak istedik. Raspberry Pi, karmaşık bir çoklu görev işletim sistemi (Linux olarak adlandırılır) çalıştırıyor ve bu nedenle her bir darbenin yazılım zamanlaması, işletim sisteminin içindeki diğer önemli olaylar tarafından geciktirilebilir. Bu nedenle, her seferinde biraz titreme göreceksiniz. Bir Arduino veya Donanım PWM kullanmak çok daha düzgün bir sinyal üretecektir. Yazılım PWM ile servo motorları çalıştırdığınızda, servo motorun titremesi, neredeyse bir jitter gibi aynı şeyi göreceksiniz.
#
#
# Grove EL Arayüzünü Test Et
# Dijital Grove Konektörü
#
# Gnd, 5V, GPIO4, GPIO17
# Grove
# Gnd VCC A4 A5
#
import time
import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
try:
while (1):
# şimdi hat boyunca PWM yapın
p = GPIO.PWM(17, 50) # 50 Hz
p.start(0.0);
for dc in range(0, 101, 5):
p.ChangeDutyCycle(dc)
time.sleep(0.1)
for dc in range(100, -1, -5):
p.ChangeDutyCycle(dc)
time.sleep(0.1)
p.stop()
except KeyboardInterrupt:
# burada programdan çıkmadan önce çalıştırmak istediğiniz kodu yazın
# CTRL+C tuşuna bastığınızda çıkış yapar
print “klavye kesintisi”
except:
print “diğer hata”
finally:
GPIO.cleanup() # bu, temiz bir çıkış sağlar
Ve bir video:
Proje 3: Arduino Mega2560’a Grove O2 Sensörü Bağlama

Üçüncü örnek projemiz için, Grove O2 Sensörünü Arduino Mega2560’a bağlamaya karar verdik. Bu, Analog Grove modülüdür. Diğer Arduino ürünleriyle de çalışacaktır, ancak elimizdeki masa üzerinde bulunan Arduino Mega2560 ile çalışıyoruz. Bağlantı? Grove to Pin Header Converter üzerindeki dişi konektörleri erkek başlıklara dönüştürmek için erkek-erkek breadboard jumper’ları kullandık. A0 (Grove Konektör Makalesine bakın) A0’a, Arduino’ya değil, bağlandı. Kırmızı 5V’a, siyah hat ise Grove konektöründeki GND’ye bağlandı.
Yazılım basittir.
// Grove – Gaz Sensörü(O2) test et
//
// Analog Grove Konektörü
// Sarı A0’a bağlı
// Kırmızı 3.3V veya 5V’a bağlı
// Siyah GND’ye bağlı
//
#include
#define Version 11 // versiyon, 1.0 veya 1.1, kullandığınız karta bağlıdır
const int pinO2 = A0; // Grove – Gaz Sensörü(O2)’yi A0’a bağlayın
#if Version==11
const int AMP = 121;
#elif Version==10
const int AMP = 201;
#endif
const float K_O2 = 7.43;
void setup()
{
Serial.begin(115200); // Seri bağlantıyı başlat
}
void loop()
{
float sensorValue;
float sensorVoltage;
float Value_O2;
sensorValue = analogRead(A0);
sensorVoltage =(sensorValue/1024.0)*3.3;
sensorVoltage = sensorVoltage/(float)AMP*10000.0;
Value_O2 = sensorVoltage/K_O2;
Serial.print(“O2 konsantrasyonu “);
Serial.print(Value_O2,1);
Serial.println(“%”);
delay(1000);
}

Sonuçlar (sadece açtıktan sonra). Sensörün doğru çalışabilmesi için 48 saatlik bir ısınma süresi gerektiğini unutmayın. Sensörün çalıştığını görmek için üzerine nefes aldığımız yeri görebilirsiniz.
O2 konsantrasyonu 19.0%
O2 konsantrasyonu 19.0%
O2 konsantrasyonu 19.0%
O2 konsantrasyonu 19.0%
O2 konsantrasyonu 18.8%
O2 konsantrasyonu 18.8%
O2 konsantrasyonu 18.9%
O2 konsantrasyonu 19.0%
O2 konsantrasyonu 19.0%
Sonraki? Bir I2C Grove Örneği
Bu yazı orijinal olarak switchdoc‘dan alınmıştır.
Eğitim kısmı 1:Arduino/Raspberry Pi projeleri için Grove konektörlerine giriş
Raspberry Pi 2 Model B %9 indirimli, ürün sayfası için banner’a tıklayın

