Donanım

Raspberry Pi Scratch Kodlama: Kontrol Sensörleri ve Motorlar

Çocuklar için tasarlanmış blok tabanlı bir dil olan Scratch, kodlamayı tanıtmanın harika bir yoludur. Bununla birlikte, Raspberry Pi’nin GPIO’su aracılığıyla oyunların nasıl oluşturulacağını ve elektroniklerin nasıl kontrol edileceğini öğrenebiliriz. Scratch 3 kadar iyi, GPIO ile yapabileceğimiz çok şey var ve GPIO, Raspberry Pi’nin en iyi özelliği. Peki Scratch GPIO projelerimizi nasıl daha ileriye taşıyabiliriz? Bunun için S3GPIO’ya ihtiyacımız var.

S3GPIO, Scratch 3 GPIO’dur ve çocukların Scratch ile kodlama ve elektronik öğrenmeleri için kampanya yürüten bir Raspberry Pi topluluğu üyesi olan Simon Walters tarafından oluşturulmuştur. Walters’ın Scratch için GPIO’ya ilk girişi, Scratch 1.4’e dayanan ScratchGPIO idi. Bu eski sürüm hala mevcuttur, ancak dilin daha eski bir sürümüne dayanmaktadır.

Bu nasıl yapılır’da, S3GPIO’yu kuracağız ve bir ultrasonik sensörün bir DC motor için kontrolör olarak nasıl kullanılacağını öğreneceğiz, sensöre olan mesafemize göre hızı etkin bir şekilde ayarlayacağız. Ayrıca motor için bir acil durdurmanın nasıl oluşturulacağını ve motor kontrolünün bir dizi koda nasıl dahil edileceğini öğreneceğiz.

Eğitimdeki tüm adımlar birden fazla motorla kullanılabilir, motorları bağımsız olarak kontrol etmek için L9110S’ye iki GPIO pini daha bağlamamız yeterlidir.

Bu proje için ihtiyacınız olacak 

  • Ahududu Pi 3 / 4 / 400
  • En son Raspberry Pi işletim sistemi
  • HCSR04-P Ultrasonik sensör (HCSR04’ün 3V modeli)
  • L9110S Motor Kontrolörü
  • DC motoru
  • Motor için harici mikro USB koparma güç kaynağı
  • 7 x Dişi – dişi teller
  • 2 x Erkek – dişi teller
  • İnternet bağlantısı

Bileşenleri Bağlama

Elektronik bileşenleri bağlamak nispeten basittir, ancak çok sayıda kablo kafa karıştırıcı görünebilir. Onu bölümlere ayıracağız. S3GPIO, Raspberry Pi Foundation tarafından belirlenen BCM numaralandırma standardını değil, fiziksel pin numaralandırmasını kullanır. Bu, 20 pinlik iki sütunumuz olduğu anlamına gelir. Pi’yi USB bağlantı noktaları zemine bakacak şekilde tutarak, iki sütun sol üstte pin 1 ve sağ üstte pin 2 ile başlar. Sol sütun “tek” sütundur ve pinler bir tek sayı düzenini takip eder; 1,3,5,7,9 vb. Sağdaki sütun “çift” sütundur ve sayıları 2,4,6,8 vb. ilerler.

1. Dişiden dişiye aktarma kabloları kullanarak HC-SR04P ultrasonik sensörü Raspberry Pi’ye aşağıdaki gibi bağlayın:

  • Raspberry Pi’deki herhangi bir GND pinine GND
  • Vcc – 3V (Pin 1)
  • 11 numaralı pimi tetikleyin
  • 13 numaralı pime yankı.

2. Motorun terminallerini L9110S’nin MOTORA terminallerine (hangi yol olduğu önemli değildir) bağlayın. Sıkıca takılmaları için bunları yerine vidalayın.

3. L9110S üzerindeki GND’yi Raspberry Pi üzerindeki herhangi bir GND pinine bağlayın. Bu, projenin çalışması için gerekli olan ortak bir zemin referansı oluşturur.

4. Harici bir 5V mikro USB güç kaynağının + bağlantısını L9110S motor kontrol ünitesinin VCC’sine bağlayın .

5. Güç kaynağının – (GND) pinini Raspberry Pi üzerindeki herhangi bir GND pinine bağlayın.Reklamcılık

6. L9110S’nin A1-A ve A1-B terminallerini Raspberry Pi’deki 8 ve 10 pinlerine bağlayan iki dişi – dişi jumper kablosunu bağlayın. Bu, L9110S’yi kontrol etmek için GPIO’yu kullanabileceğimiz ve motorun dönmesine neden olabileceğimiz anlamına gelir. 

Artık Raspberry Pi’ye bağlı, S3GPIO’dan kontrol etmemizi sağlayan harici olarak çalışan bir motorumuz var. Ayrıca bir HCSR04-P ultrasonik sensörün bağlı ve hız kontrolörü olarak kullanıma hazır olması gerekir. Bağlantılarınızın doğru olduğundan emin olmak için lütfen bu projenin şemasına bakın.

S3GPIO’yu Yükleme

1. Raspberry Pi’nizi çalıştırın ve bir terminal açın. Bir kurulumu indirmek için aşağıdaki komutu girin. Bu komutun, genellikle üretim makineleri için büyük bir güvenlik riski olan yükleyiciyi indireceğini unutmayın, ancak bu durumda güvenlidir.

wget https://git.io/vMS6T -O isgh8.sh

2. S3GPIO’yu kurmak için komutu çalıştırın.

sudo bash isgh8.sh

3. Değişikliklerin etkili olması için Raspberry Pi’nizi yeniden başlatın .

4. S3GPIO simgesine çift sol tıklayın ve üç uygulamayı başlatmak için “Terminalde Yürüt” ü seçin . Özel bir S3GPIO uzantısına sahip bir web sunucusu, ScratchGPIO ve Chromium tarayıcı başlatılacak ve S3GPIO’yu görmeniz birkaç dakika sürebilir.

5. Çevrimiçi S3GPIO düzenleyicisini açmak için “İçine Bak” seçeneğine tıklayın . 

Proje Oluşturma

S3GPIO, Scratch 3 ile aynı arayüze sahiptir, ancak “Bloklarım” içinde kullanacağımız bir dizi S3GPIO bloğu da vardır.

1. Etkinlikler bölümünden “Yeşil Bayrak Tıklandığında” kodlama alanına sürükleyin. Bu, kodumuzun başlangıcıdır ve HCSR04-P ultrasonik sensörü test edecektir.

Reklamcılık

Benim Blokları, 2. sürükle S3GPIO komuta ve önceki bloğa bağlayın. Beyaz kutuya ultra11,13 yazın. Bunlar sensör üzerindeki tetik ve yankı için pinlerdir .

3. Control’den bir Forever döngüsüne sürükleyin ve onu önceki bloklara bağlayın.

4. My Blocks’tan S3GPIO read’i sürükleyin ve bunu sonsuza kadar döngünün içine yerleştirin. Beyaz kutuya ultra13 yazın , bu ultrasonik sensörün yankı pimini okuyacak ve perde arkasında santimetre cinsinden bir ölçüme dönüştürülecektir.

Reklamcılık

5. Görünümler’den bir Merhaba Deyin! engelleyin ve öncekinin altına yerleştirin. Değişkenlerden sensörü sürükleyin ve “Merhaba!”nın üzerine yerleştirin. bu, ultrasonik sensör mesafe okumasını söyleyecektir.

Benim Blokları 6., sürükle S3GPIO için _ için _ ayarlamak ve önceki bloğun altında yer onu. İlk boş alana Power8 yazın ve ikinci sırada Değişkenlerden başka bir sensör bloğu yazın. Bu, pim 8’e bağlı motor pimini sensör tarafından döndürülen değere ayarlayacaktır.

Reklamcılık

7. Kontrol’den 1 saniye bekle bloğunu sürükleyin, önceki bloğa bağlayın ve 0,1 saniye bekleyecek şekilde bloğu düzenleyin. Kodunuz şimdi şöyle görünmelidir.

Kod yapıldıktan sonra başlamak için Yeşil Bayrağa tıklayalım. Motor canlanmalı. Şimdi elinizi sensörün iki “gözüne” yaklaştırın, motor yavaşlayacaktır. Durdur düğmesine tıklayın (sahnenin sağ üst köşesinde), ancak motor durmayacak! Bir fren yapmamız gerekiyor. 

Koda Daha Fazlasını Eklemek: Bir Fren Oluşturmak

1. Kodun yeni bir bölümüne, Olaylar’da bulunan Boşluk Tuşuna Basıldığında bir blok yerleştirin .

Reklamcılık

2. Bloklarım’dan, iki S3GPIO kümesini _ – _ bloğu arasında sürükleyin ve bunları bir öncekine bağlayın. İlk S3GPIO ayarını Power8’e 0’a ve ikincisini Power10’a 0’a değiştirin.

Kontrol Yönetimi 3. sürükle Dur bütün ve önceki bloğun altında yer onu. Kodunuz şimdi şöyle görünmelidir.

Yeşil Bayrağa tıklayın ve sensörün elinize tepki verdiğini test edin. Elinizin nerede olduğuna bağlı olarak motor hızlı veya yavaş gitmelidir. Hazır olduğunuzda motoru durdurmak için boşluk tuşuna basın.
 

Koda Daha Fazlasını Eklemek: Bir Sıra Oluşturma

Sensörü kullanmanın yanı sıra, bir dizi talimat, bir dizi kullanarak motoru kontrol edebiliriz. Bu sıra, motoru bir yönde döndürecek, ardından motorları son olarak durdurmadan önce tersine çevirecektir. Dizi, bitmeden 10 kez yinelenir (döngü) ve kullanıcının diziyi yeniden tetiklemesini bekler.

1. Etkinlikler’den, Boşluk tuşuna basıldığında öğesini sürükleyin ve yeni bir kod dizisi başlatın. Açılır menüyü kullanarak boşluk tuşunu bir r olarak değiştirin .

Kontrol, 2. sürükleme tekrarı 10 ve önceki bloğun altında bir yerde bunu.

3. Bloklarım’dan iki S3GPIO komut bloğunu sürükleyin ve bunları döngünün içine yerleştirin. İlkini Pin 8 On ve ikincisini Pin 10 Off olarak değiştirin.

Kontrol 4., sürükle 1 Saniye bekleyin ve önceki bloklar altına koyun döngü içinde.

5. Üst S3GPIO blokta sağ tıklayın ve seçin kopya. Az önce oluşturduğumuz üç bloğu çoğaltacaktır. Bu üç yeni bloğu döngünün içine, öncekinin altına yerleştirin. Bu bloklarda, Pin 8 Açık’ı Kapalı olarak ve Pin 10 Kapalı’yı Açık olarak değiştirin.

6. Bu üç bloklar için yinelenen tekrarlayın ve koyun yeni, altlarından üç çoğaltılamaz döngü içinde hala Her ikisi de kapalı olacak şekilde S3GPIO komutlarını ayarlayın .

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu