Haberler

Wio Terminal & Grove – TF Mini LiDAR ile nasıl oynanır – “Heykeller” oyunu

“Heykeller” oyunu

Hepimiz “Heykeller” oyununu biliyoruz. Bu video, popüler ürünümüz Wio Terminal ve Grove – TF Mini LiDAR kullanarak oyunu nasıl oynadığımızı gösteriyor.

Grove – TF mini LiDAR’ın yüksek doğruluk ve hassasiyeti sayesinde, hiçbir hareket tespitinden kaçamaz, bu da oyunu daha zorlu hale getiriyor!

10 saniye boyunca hareketsiz durabilir misin? Şu ana kadar hiç kimse oyunu kazanamadı…

Oyunu ilginç buluyorsanız, gelin projeyi inşa edin ve ailenizle ve arkadaşlarınızla oynayın, bakalım kim “Heykel” olabilecek!

Donanım Bileşenleri

· Wio Terminal

Arduino ve MicroPython ile uyumlu olan Wio Terminal, ATSAMD51 tabanlı bir mikrodenetleyicidir ve Realtek RTL8720DN ile desteklenen kablosuz bağlantıya sahiptir. CPU hızı 120MHz (200MHz’ye kadar artırılabilir) olarak çalışmaktadır. Realtek RTL8720DN çipi, IoT projeleri için temel sağlayarak hem Bluetooth hem de Wi-Fi desteği sunar. Wio Terminal, ayrıca bir 2.4” LCD Ekran, yerleşik IMU (LIS3DHTR), Mikrofon, Buzzer, microSD kart yuvası, Işık sensörü ve Kızılötesi Verici (IR 940nm) ile donatılmıştır.

· Grove – TF Mini LiDAR ToF Mesafe Sensörü

Grove – TF Mini LiDAR, ToF (Uçuş Süresi) prensibine dayanmaktadır ve benzersiz optik ve elektrik tasarımları ile entegre edilmiştir, böylece kararlı, hassas, yüksek hassasiyetli ve yüksek hızlı mesafe tespiti sağlanmaktadır.

ToF, Uçuş Süresi teknolojisinin kısaltmasıdır ve çalışma prensibi şöyledir: sensörden modüle edilmiş yakın kızılötesi ışık gönderilir ve bir nesne tarafından yansıtılır; nesneye olan mesafe, ışığın gönderimi ve yansıması arasındaki zaman farkını veya faz farkını hesaplayarak sensör tarafından dönüştürülebilir, böylece derinlik bilgisi üretilir.

Grove – TF Mini LiDAR

Donanım Bağlantısı

Pin Çıkışları

Not: Wio Terminal’ı jumperlar ile bağlamaya başlamadan önce yukarıdaki pin çıkışları talimatına bakın.

Adım 1 Grove-TF-Mini-LiDAR’ı jumperlar aracılığıyla Wio Terminal’a takın ve ayrıca Wio Terminal’ı bir USB kablosu ile PC’ye bağlayın.

Adım 2 Demo kodunu indirin ve tüm Seeed_Arduino_Linechart dosyasını kopyalayıp Arduino IDE kütüphane dosyanıza yapıştırın.

Adım 3 Demo kodunu Arduino IDE’nize kopyalayın.

#include"seeed_line_chart.h" //kütüphaneyi dahil et
#include "TFLidar.h"
#define LINE_DIS 0X00
#define STRING_DIS 0X01
TFMini SeeedTFMini;
TFLidar SeeedTFLidar(&SeeedTFMini);
#define uart  Serial1
 
TFT_eSPI tft;
 
#define max_size 10 //veri için maksimum boyut
doubles data; //Veri depolamak için bir doubles türü başlatma
TFT_eSprite spr = TFT_eSprite(&tft);  // Sprite 
 
void setup() {
    Serial.begin(115200);
    pinMode(WIO_KEY_C, INPUT_PULLUP);
    tft.begin();
    tft.setRotation(3);
    spr.createSprite(TFT_HEIGHT,TFT_WIDTH);
    SeeedTFLidar.begin(&uart,115200);
}
uint8_t mode = LINE_DIS;
void loop() {
 
    if (digitalRead(WIO_KEY_C) == LOW) {
        mode ++;
        if(mode > STRING_DIS ) mode = LINE_DIS;
        while(!digitalRead(WIO_KEY_C));
    }
    display(get_Lidar_data(),mode);
    delay(50);
}
 
uint16_t get_Lidar_data()
{
    while(!SeeedTFLidar.get_frame_data()){
        delay(1); 
    }
    return SeeedTFLidar.get_distance();
}
 
void display(uint16_t lidar_data,uint8_t mode){
 
    spr.fillSprite(TFT_WHITE);
    //Çizgi grafiği başlığı için ayarlar
    auto header =  text(0, 0)
                .value("Lidar Terminal")
                .align(center)
                .valign(vcenter)
                .width(tft.width())
                .color(green)
                .thickness(3);
    header.height(header.font_height() * 2);
    header.draw(); //Başlık yüksekliği, fontun yüksekliğinin iki katıdır
    if (LINE_DIS == mode){
        if (data.size() == max_size) {
            data.pop();//ilk okunan değişkeni kaldırmak için kullanılır
        }
        data.push(lidar_data); //değişkenleri oku ve veride sakla
    //Çizgi grafiği için ayarlar
        auto content = line_chart(10, header.height()); //(x,y) çizgi grafiğinin başladığı yer
            content
                    .height(tft.height() - header.height() * 1.5) //çizgi grafiğinin gerçek yüksekliği
                    .width(tft.width() - content.x() * 2) //çizgi grafiğinin gerçek genişliği
                    .based_on(0.0) //y-ekseni başlangıç noktası, float olmalıdır
                    .show_circle(false) //her noktada bir daire çizme, varsayılan açıktır.
                    .value(data) //verileri çizgi grafiğine geçirme
                    .color(TFT_RED) //çizgi için rengi ayarlama
                    .draw();
    }
    else if (STRING_DIS == mode){
        for(int8_t line_index = 0;line_index < 5 ; line_index++)
        {
            spr.drawLine(0, 50 + line_index, tft.width(), 50 + line_index, TFT_GREEN);
        }        
        auto header =  text(0, 0)
                    .thickness(1);
        spr.setFreeFont(&FreeSansBoldOblique24pt7b); 
        spr.setTextColor(TFT_BLUE);
        spr.drawFloat(lidar_data / 100.00,2,80,110);
        spr.drawString(" M",80 + 90,110,1);
 
    }
    spr.pushSprite(0, 0);
 
}

Her şey yolunda giderse, Wio terminalin ekranında aşağıdaki gibi bir görüntü belirecektir.

Şimdi gidip oyunu oynayalım!

Daha Fazla Kaynak

Wiki ile Başlarken

Ürün hakkında daha fazla bilgi ve kaynaklar Wiki’de bulunmaktadır, lütfen aşağıdaki bağlantılara bakın:

http://wiki.seeedstudio.com/Wio-Terminal-Getting-Started/

http://wiki.seeedstudio.com/Grove-TF_Mini_LiDAR/

Teknik destek ihtiyacınız varsa, lütfen forumumuza ziyaret edin.

Leave a Reply

Your email address will not be published. Required fields are marked *