İçindekiler:

Cadılar Bayramı için Korkunç Kabak Şekeri Makinesi: 5 Adım
Cadılar Bayramı için Korkunç Kabak Şekeri Makinesi: 5 Adım

Video: Cadılar Bayramı için Korkunç Kabak Şekeri Makinesi: 5 Adım

Video: Cadılar Bayramı için Korkunç Kabak Şekeri Makinesi: 5 Adım
Video: VALAK İLHAMLI MAKYAJ/ DEHŞETİN YÜZÜ 2024, Kasım
Anonim
Image
Image

Herkese merhaba! Mutlu Cadılar Bayramı!! Müzik çalacak ve biri yanına geldiğinde şeker tükürecek bir balkabağı feneri yaptık.

Adım 1: Bu Projede Kullanılanlar

Bu Projede Kullanılanlar
Bu Projede Kullanılanlar
Bu Projede Kullanılanlar
Bu Projede Kullanılanlar

Donanım bileşenleri

  • Arduino UNO / Seeeduino V4.2
  • Temel Kalkan V2
  • Grove - PIR Hareket Sensörü
  • Koru - MP3 v2.0
  • Grove - WS2813 RGB LED Şerit Su Geçirmez - 60 LED/m - 1m
  • EMax 12g ES08MD yüksek Hassas servo

Yazılım uygulamaları ve çevrimiçi hizmetler

Arduino IDE'si

2. Adım: Öykü

Hikaye
Hikaye
Hikaye
Hikaye
Hikaye
Hikaye

Cadılar Bayramı geliyor, balkabağı fenerleri şart. Seeeduino kullanıyoruz ve PIR Motion Senser balkabağı feneri yaptı, biri geldiğinde müzik çalacak ve şeker tükürecek.

mekanik yapı

**Adım 1: **Biraz şeker ve balkabağı alın, balkabağının arkasına bir delik açın, böylece Seeeduino'yu koyabiliriz.

**Adım 2: **Böyle bir kutu kesin ve balkabağının ağzına sabitleyin.

**Setp 3: **Servo motora bir kol monte edin. Balkabağının içine bir servo motoru sabitlemek için tutucu olarak bir kutu kullanıyoruz.

**Adım 4: **Servo motor kolu döndüğünde kutudaki şekerlerin balkabağının ağzından tükürüleceğinden emin olun.

Adım 3: Donanım Bağlantısı

**Adım 1: **Bir SD kartta MP3 adında bir klasör oluşturun, ona bir mp3 dosyası kopyalayın, 0001.mp3 olarak adlandırın. 3.5mm bağlantı noktası aracılığıyla MP3 Grove'a bir hoparlör bağlayın ve MP3 Grove'u Base Shield üzerindeki D2 bağlantı noktasına bağlayın.

**Adım 2: **PIR Hareket Sensörü Korusu'nu Base Shield'in D4 portuna bağlayın ve NeoPixel şeridi Base Shield'in D5 portuna bağlayın.

**Adım 3: **Servo Grove'u Base Shield'in dijital pimi 9'a bağlayın, bu nedenle DuPont hatlarını kullanmamız gerekebilir.

**Adım 4: **Base Shield'i Seeeduino'ya takın.

**Adım 5: **Programı Seeeduino'ya indirmek için bilgisayara bağlanmak için bir USB kablosu kullanıyoruz. İndirdikten sonra sadece balkabağının içinde bir güç kablosu kullanabiliriz.

Adım 4: Yazılım Programlama

**Adım 1: **Kitaplıkları Yükleyin

Daha iyi etki için FreeRTOS adlı bir işletim sistemi kullanıyoruz, buradan indirilebilir.

Ayrıca, bu projenin aşağıdaki kütüphanelere ihtiyacı var, bunları indirin ve kurun:

  • Koru - MP3 v2.0
  • Adafruit NeoPixel
  • Adafruit TicoServo

Veya MP3 Grove'u kullanmak için proje klasörüne MP3.h'yi dahil edebilirsiniz.

**Adım 2: **Programı oluşturun ve yükleyin

*DİKKAT: Marco MAX_BRIGHTNESS, NeoPixel'in maksimum parlaklığını kontrol eder, güç tüketimini azaltmak için parlaklığını azaltır.*

Daha önce Seeeduino'da işletim sistemi kullanmadıysanız programı anlamak zor olabilir, aşağıdaki makale bunu basitleştirecektir.

setup() metodunda Serial, MP3 Grove ve Servo Motor'u normal olarak başlattık ve semafor dediğimiz bir değişken oluşturduk, birisinin gelip gelmediğini belirtmek için kullanılan bir flag değişkeni olarak düşünebilirsiniz.

vSemaphoreCreateBinary(xPIRBinarySemaphore);

Sonra 3 görev oluşturduk, birlikte çalışabilirler. Ancak o zamanın öncelikleri aynı olmayabilir.

s1 = xTaskCreate(vFadingLEDsTask, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL);

s2 = xTaskCreate(vScaningPIRTask, NULL, configMINIMAL_STACK_SIZE, NULL, 1, NULL); s3 = xTaskCreate(vHandlePIRTask, NULL, configMINIMAL_STACK_SIZE, NULL, 2, NULL);

Semafor ve görevlerin doğru şekilde başlatılıp başlatılmadığını kontrol ettikten sonra, vTaskSetartScheduler() yöntemi tüm FreeRTOS'u başlatır.

if (xPIRBinarySemaphore == NULL || s1 != pdPASS || s2 != pdPASS || s3 != pdPASS)

{ için (;;); } vTaskStartScheduler();

FreeRTOS'ta kullanılan loop() yöntemi siniri. Şimdi gerisi basit, vFadingLEDsTask görev solması Değişken Renkli LED ve vScanPIRTask görev taraması her zaman PIR Motion Sensor' pini. PIR Hareket Sensörü birinin geldiğini algıladığında, bayrağı ayarlar ve ardından vHandlePIRTask görevi çalışmaya başlar. vHandlePIRTask görevinin önceliği 2 olduğundan, çalışırken diğer iki görev askıya alınacaktır.

Bir bayrağı ayarlamak veya sıfırlamak için aşağıdaki aramalar kullanılır.

xSemaphoreGive(xPIRBinarySemaphore);

xSemaphoreTake(xPIRBinarySemaphore, portMAX_DELAY);

Adım 5: Çalıştırma

Hoparlörü, Seeeduino ve Groves'u balkabağı fenerinin içine koyun ve açın. Şimdi birisinin gelmesini bekleyebilirsiniz, Şeker mi Şaka mı:-).

Halloween balkabağı ışığına tıklayarak videoyu kontrol edin. (https://www.youtube.com/embed/CFjuWXOIUN4)

Önerilen: