Kérdés:
Aszinkron vezérlő keretrendszer
Cerin
2014-10-28 03:15:02 UTC
view on stackexchange narkive permalink

Tud valaki ajánlani egy Arduino-alapú aszinkron ütemezési könyvtárat egy kis mobil robot vezérléséhez?

Egy kis 2 kerekes Arduino-Uno alapú robot vezérlőkódját írom. Néhány lökhárító érzékelővel, IR érzékelőkkel és ultrahangos érzékelőkkel rendelkezik. A kezdetektől a nulláról írtam, a loop () használatával leolvastam az érzékelőket, és megfelelően beállítottam a motor értékeit, majd megvártam, amíg a motor hatással van, de ezt a hibát találom. Néhány érzékelő, például az ultrahangos távolságmérők, kis késleltetést igényelnek, a motorok pedig késleltetést igényelnek a hatásukhoz. A loop () blokkolása a legegyszerűbb módszer ennek elérésére, de pazarolja a ciklusokat, és nehéz lehet minden műveletet megfelelően időzíteni anélkül, hogy eldobná más viselkedéseket. Az aszinkron ütemező írása hatékonyabb lenne, de sokkal bonyolultabb, és remélem, hogy újra feltalálnám a kereket.

Megtaláltam ezt a listát, a meglévő ütemező könyvtárakból, de Nem vagyok biztos benne, hogy melyik lenne megfelelő.

Érdemes megnézni a github cosa könyvtárát is.
@jfpoilpret, Érdekes. Nem vagyok biztos benne, hogy ki akarom dobni az alapértelmezett Arduino könyvtárat, csak néhány ütemező alkotóelem használatához. Kár, hogy Cosa dokumentációja ilyen rossz. Miért gondolja olyan sok fejlesztő, hogy egy osztályindex kevés megjegyzéssel és példa nélkül áll rendelkezésre a dokumentumokhoz? Ezt áttekintve nem világos, mit használjak. Van egy Időzítő, Riasztás és Periódusos osztály, valamint néhány más osztály, amelyek ütemezéssel is kapcsolatosak lehetnek.
kissé igazságtalan vagy a dokumentációval kapcsolatban, ez egyáltalán nem rossz (legalábbis a szokásos arduino lib-hez képest). Ami a példákat illeti, több mint 100 van belőlük, sőt nagyon jó módszer a Cosa megtanulására.
@jfpoilpret, Egyetértek azzal, hogy a szokásos Arduino dokumentumok sem remekek, de a példákat jobban meg lehet bontani a beállított funkciók szerint. Láttam a Cosa [példák] (https://github.com/mikaelpatel/Cosa/tree/master/examples) könyvtárat, de a CosaAlarm példán kívül nem látok mást, amely az ütemezési osztályokat használja.
Helló, jelenleg tesztelem a leOS / leOS2-t (lásd: https://github.com/leomil72/), ami nagyon jó ütemező libnek tűnik az Arduino számára
Kettő válaszokat:
cgarner
2015-09-24 17:50:00 UTC
view on stackexchange narkive permalink

Azt javaslom, hogy írja be sajátját C ++ nyelven. Az Arduino jól működik a C ++ - val, ahogy C-ben van írva. Az illesztőprogramok írása helyett arra összpontosíthat, hogy az aszinkron viselkedés megtegye, amire szüksége van. Nem hiszem, hogy tovább tartana a C ++ megtanulása ahhoz, hogy ez működjön, mint egy könyvtár használatának és esetleg javításának megtanulása. A C ++ tudásod sokkal általánosabb lesz, mint egy adott könyvtár ismerete.

Igor rámutat a valós idejű operációs rendszer használatának előnyeire. Egyetértek és úgy gondolom, hogy ha hosszú távon robotokkal akarsz dolgozni, akkor menj RTOS-szal és menekülj el Arduinótól. Az indulás egyik módja a C ++ és az Arduino használata.

Igor Stoppa
2015-08-30 13:32:32 UTC
view on stackexchange narkive permalink

Javasolnám a ChibiOS alkalmazást: bár most támogatott az Arduino, és hiányzik belőle néhány illesztőprogram (írok egyet az INTx és a PCINT számára), alapvetően egészséges kialakítású, egy közösség és maga a szerző is nagyon reagál.

Lehet, hogy meg kell írnia vagy portolnia kell a külső pajzsok illesztőprogramjait, azonban az előnye, hogy megszabaduljon az Arduino könyvtárak nagy részét sújtó hullámoktól.

Akár 2 RTOS közül is választhat:

  • ChibiOS RT, teljes értékű RTOS.
  • A ChibiOS NIL, egy minimalista operációs rendszer, valójában szinte ütemező, amely több helyet és végrehajtási időt hagy a saját kódjának. -De ha megnézi az alapértelmezett Arduino könyvtárakkal felépített tipikus bináris fájl által felvett FLASH mennyiségét, akkor látni fogja, hogy nagy mennyiségű, jellemzően fel nem használt anyagot von be magával, így a teljes értékű RT használatáért cserélhetné .

Jogi nyilatkozat: Én csak nagyon boldogan használom az operációs rendszert, nincs más kapcsolatom vele, különös tekintettel a kereskedelmi részre.



Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...