İçindekiler:
- Adım 1: Olay Odaklı Programlama Nedir?
- 2. Adım: Olaya Dayalı Programlamanın Mantıksal Akışı
- 3. Adım: Etkinlik Oluşturucu
- Adım 4: Olay İşlemcisi
Video: FTC'de Olaya Dayalı Programlama: 4 Adım
2024 Yazar: John Day | [email protected]. Son düzenleme: 2024-01-30 13:18
Bu yıl ekibimiz, robotumuz için olay odaklı yazılım geliştirme konusunda çok fazla çalışma yaptı. Bu programlar, ekibin otonom programlar ve hatta tekrarlanabilir tele-op olayları doğru bir şekilde geliştirmesine izin verdi. Gerektirdiği yazılım çalışması karmaşık olduğundan, FTC robotları için olaya dayalı kod geliştirme konusunda edindiğimiz bilgileri paylaşmaya karar verdik.
Adım 1: Olay Odaklı Programlama Nedir?
Genel olarak Techopedia'ya göre olay güdümlü programlama, kullanıcı girdisine yanıt veren programların geliştirilmesidir. Bu anlamda, herhangi bir eylemi gerçekleştirmek için insan tarafından çalıştırılan bir denetleyiciden gelen girdilere dayanan bir ekibin tele-op programı da dahil olmak üzere birçok program olay odaklı olarak kabul edilir. Ancak, ekibimizin yaptığı iş açısından olaya dayalı programlama, çeşitli girdilerden yazılım oluşturmakla ilgilidir; diğer bir deyişle, kontrolörlerin ve sensörlerin girişlerine dayalı olarak olayları belgeliyoruz, ardından bu olayları sıraya alabilir ve kaydedilen olayı yeniden çalıştırmak için dosyayı kullanabiliriz.
Robotumuz için bu program geliştirme yönteminin çeşitli avantajları vardır:
- Doğru otonom programlar oluşturmamızı sağlar. Yazılımı olay sırasında gerçek zamanlı olarak oluşturduğumuz için toplanan ve kullanılan sensör değerleri, doğrudan orijinal olaydan geldiği için çok doğru olacaktır.
- Hızlı bir şekilde otonom programlar oluşturmamızı sağlar. Otonom programlar yapmak, bir dizi olayı kaydetmek ve olayı gerektiği gibi ayarlamak kadar basittir.
- Tele-op için otomatik süreçler oluşturmamızı sağlar. Tele-op'ta tekrarlanan eylemler için, olaya dayalı programlama, bu eylemleri kaydetmemize ve sürücü kontrollü maç dönemlerinde olayı bir düğmeye atamamıza olanak tanır. Bu otomatik olaylar, doğru şekilde yürütülmesine izin vermek için sensörlerden etkilenebilir.
2. Adım: Olaya Dayalı Programlamanın Mantıksal Akışı
Aşağıdaki, olaya dayalı bir programın mantıksal akışını gösterir: kırmızı, bir olayın oluşturulmasını ve mavi, olayın çağrısını gösterir. Bir olay oluşturmak için, robot eylemi aracılığıyla bir dizi girdi alınır ve olaylar olarak kaydedilir; bu olaylar bir dosyaya yazılır. Bir olayı çağırmak için bu dosya okunur ve girdiler, dosya kodunu robot eylemine dönüştürmek için bir olay işlemcisine gönderilir.
3. Adım: Etkinlik Oluşturucu
Etkinlik oluşturucular, çeşitli sensörlere ve düğmelere dayalı olarak eylemleri veya "olayları" belgelemek için kullanılır. Robot sahada eylemler gerçekleştirirken, bir olay yaratıcısı sınıfı, bir olay sınıfında sınıflandırılan olaya atıfta bulunarak, bu eylemlerin her biri için paralel olarak olaylar yaratır. Olay oluşturulduktan sonra, olaylar sınıfında bir olaylar sırasına konur: ilk olay en üst sırada yer alır, ardından ikinci olay en üst sırada yer alır ve altındaki tüm olayları aşağı iter ve bu, program durana kadar devam eder. Program durdurulduğunda, olaylar JSON dosyası gibi insan tarafından okunabilen bir format dosyasına gider. Bu dosya, otonom rutinleri daha iyi geliştirmek için kullanılabilir.
Yukarıdaki örnek kod, bu durumda bir IMU sensörü kullanan bir dönüş olan olay için parametreleri ayarlar. Daha sonra olayı olay kuyruğuna sıralarız. Son olarak, olayı, gelecekteki olayları sıraya koymak için kullanabilmemiz için esas olarak sıfırlayan olayı keseriz.
Adım 4: Olay İşlemcisi
Olay sınıfları, olay oluşturucu sınıfında üretilen insan tarafından okunabilir dosyayı alır ve bir olay işlemcisi sınıfında özetlenen yöntemleri çağırarak kuyruğa alınan her olay kendisine ne derse onu yapar. Olay işlemci sınıfı daha sonra robota hangi olayın tekrar oynatılacağını söyler. Basit bir "ileri sürüş" olayı veya mesafeler, dönüşler ve çarpışmalarla dolu karmaşık bir olay olsun, işlemci kendisine verilen herhangi bir olayı tekrar oynatacaktır. Bir takım maç öncesi sensörleri ve Tele-Op eylemlerini kaydedebildiğinden, ardından olayları otonom olarak tekrar oynatabildiğinden, bu süreç otonom sırasında çok kullanışlıdır. Bu işleme Hafıza Tekrarı denir. Bu, özerk bir programın tek bir dosya üzerinden %100 yapılandırılabilir olmasını sağlar. Olay yaratıcısı ve işlemcisi oluşturulduktan sonra, bir ekip insan tarafından okunabilir dosya aracılığıyla otonom rutinleri kolayca değiştirebilir.
Yukarıdaki örnek önce bir olay için JSON dosyasını kontrol ederek ve ardından ne tür bir olay olduğunu görmek için bir vaka ifadesi kullanarak o olayı kontrol ederek başlar, bu durumda bir IMU sensörü kullanarak bir dönüş. IMU olayını kullanarak bir sıra olduğunu anladıktan sonra, daha sonra olayın işlenmesiyle ilgilenir; bu, genellikle olayın, olaydan gelen değişkenleri kullanarak geldiği kodu çalıştırmayı içerir, daha önce yapılmış olayı çoğaltmak için geçirilir.
Önerilen:
Ubidots + ESP32- Tahmine Dayalı Makine İzleme: 10 Adım
Ubidots + ESP32- Tahmine Dayalı Makine İzleme: Ubidots kullanarak google sayfasında posta olayları ve titreşim kaydı oluşturarak makine titreşiminin ve sıcaklığının tahmine dayalı analizi. Öngörücü Bakım ve Makine Sağlığı İzleme Yeni teknolojinin yükselişi, yani Nesnelerin İnterneti, ağır endüstriyel
Ikea Socker'a Dayalı Otomatik Kapalı Sera: 5 Adım
Ikea Socker'a Dayalı Otomatik Kapalı Sera: Merhaba, bu benim ilk talimatım. Bu topluluktan çok şey öğrendim ve sanırım mütevazı fikirlerimi geri vermenin zamanı geldi. İngilizcem için üzgünüm, zayıf, ama elimden geleni yapacağım. Fikir, tohum yetiştirmeme izin veren bir masa üstü sera yapmaktı ve
DIY Chewie Monsta Looper (Ed Sheeran'a Dayalı): 7 Adım
DIY Chewie Monsta Looper (Ed Sheeran'a dayanarak): Ed Sheeran'ı birkaç yıldır duymuştum ve ona hiç fazla ilgi göstermedim. Radyodaki bu şarkılardan bazılarını beğendim ama ona "Shape of You" icra ettiğini söyleyene kadar onun sıradan bir pop sanatçısı olduğunu düşündüm. 2017 Grammy'lerinde. ben
ESP8266'ya Dayalı Apple HomeKit Wi-Fi Nem Alma Cihazı ?: 6 Adım (Resimlerle)
ESP8266'ya Dayalı Apple HomeKit Wi-Fi Nem Alma Cihazı ?: Ne yazık ki Apple HomeKit'i destekleyen yalnızca bir veya iki Nem Alıcı var, ancak bunların fiyatları gerçekten yüksek (300$+). Bu yüzden, zaten sahip olduğum ucuza dayanarak kendi Wi-Fi özellikli Apple HomeKit Nem Alma Cihazımı yapmaya karar verdim? BEN
434mhz Rf Modülüne Dayalı Rc Araba: 5 Adım
Rc Araba 434mhz Rf Modülüne Dayalı.: 1) mükemmel kart (kukla pcb)2) teller3) kodlayıcı ht12e ve kod çözücü ht12d ic'ler ve l293d motor sürücüsü veya bir lipo veya başka herhangi bir yüksek akım pil kullanıyorsanız L298N kullanabilirsiniz. 4) rf modülleri 5) 1M ve 51K dirençleri 6) led'ler 7) ic7805 voltaj re