Neumann János Számítógép-tudományi Társaság Programozás, robotprogramozás szakkör Három félév 3 * 8 foglalkozás Első félév A modul időtartama: A modul célja: A modul tartalma: 8 foglalkozás, alkalmanként 60 perc Programozási, algoritmizálási és robotikai alapok megismertetése. Robotprogramozási ismeretek elsajátítása LEGO Mindstroms EV3 készlet segítségével 1. Programozási alapismeretek. Mi a program? Hol lakik a program? Alapfogalmak (adat, információ, változó, állandó, adattípus, állomány, stb.) Számítógépes adatábrázolás, azaz hogyan tároljunk egy kártyalapot a számítógépben? A programfejlesztés lépései Milyen nyelven programozzak? 2. Algoritmus alapismeretek Algoritmus fogalma. A telefonálás algoritmusa. Szekvencia, szelekció, iteráció fogalma. Algoritmus leíró eszközök: o hétköznapi nyelv o folyamatábra o stuktogram o pszeudokód A jó algoritmus jellemzői. 3. Algoritmus gyakorlatok Egy derékszögű háromszög befogójának hosszát kiszámító algoritmus. Három egész szám alapján szerkeszthető-e háromszög? feladat algoritmusa. Célba lövés céltáblára, találatszámlálóval feladat algoritmusa. 4. Robotika alapismeretek Mi a robot? Milyen robotok vannak a környezetünkben? Te milyen feladatra építenél robotot? Robotika történelem. o A robotika törvényei (Asimov, Tilden, kiegészítések). o Robotikai alapfogalmak (szervomotor, szenzor, kibernetika, mechatronika, szabadságfok, stb.). o Robot típusok és alkalmazások (ipari, hadászati, egészségügyi, viselhető, humanoid, együttműködő, stb.). 5. Robotprogramozás keretprogram, egyszerű mozgások A Lego Mindstorms alapkészlet bemutatása. (központi, egység, motorok, szenzorok). A szakkörön használt alaprobot megismerése. A robotok programozására használt keretprogram megismerése. A központi képernyő alapmenüje. Large és medium motor jellemzői. Egyszerű motormozgások
6. Robotprogramozás összetett mozgások Egyszerű motormozgások kanyarodás, elfordulás. Feladatok. 7. Robotprogramozás távolságérzékelő szenzor, nyomásérzékelő szenzor A távolságérzékelő szenzor paraméterei, visszaadott értékei. A távolságérzékelő szenzor használata Wait blokkban. Akadályérzékelés és akadálykerülés. A nyomásérzékelő szenzor paraméterei, visszaadott értékei. A nyomásérzékelő szenzor használata Wait blokkban. 8. Robotprogramozás ismétlés, színszenzor Az előző modulban tanultak átismétlése A színszenzor paraméterei, visszaadott értékei. Robot mozgatása az érzékelt szín alapján.
Második félév A modul időtartama: A modul célja: A modul tartalma: 8 foglalkozás, alkalmanként 60 perc Az első félévre építve a robotprogramozási ismeretek elsajátítása LEGO Mindstroms EV3 készlet segítségével 1. Robotprogramozás ismétlés Az előző félévben tanultak átismétlése Alapmozgások, távolság-, szín- és nyomásérzékelés ismétlő feladatok 2. Robotprogramozás távolságérzékelő és szín szenzor együttes használata Komplex feladatok programozása a távolságérzékelő és a színszenzor együttes használatával. 3. Robotprogramozás ciklusok és elágazások I. Elágazások és ciklusok megvalósítás NXT-G nyelven. Előző feladatok megvalósítás ciklusok és elágazások használatával: o szabályos négyzet alakú mozgás o nyolcas alakú mozgás o kígyózó mozgás 4. Robotprogramozás ciklusok, elágazások II. Egyszerű vonalkövetés elve. Egyszerű vonalkövetés gyakorlati megvalósítása: o egy színszenzorral. o két színszenzorral. 5. Robotprogramozás képernyő-kezelés A központi egység képernyőjének felépítése Szövegek és alakzatok megjelenítése a képernyőn o szöveg o kör o vonal o pont o négyzet 6. Robotprogramozás komplett feladatok A robot által érzékel szín nevének kijelzése a képernyőn Egyszerű kézkövetés
7. Robotprogramozás változók A változók típusai (egyszerű és összetett), definiálása, használata az NXT-G nyelvben Véletlen kép megjelenítés Véletlen akadálykerülés 8. Robotprogramozás paraméter átadás, szabályozástechnikai alapok Távolsággal arányos lassulás Adaptív tempomat Fehér alapon fekete vonalak (vonalkód) kirajzolás Szabályozástechnikai alapfogalmak o PID szabályozás: a hibajellel (P: proportional) arányos szabályozás. a hibajel integráljával (I: integral) arányos szabályozás. a hibajel változási sebességével, deriváltjával (D: derivative) arányos szabályozás. Vonalkövetés P tag felhasználásával.
Harmadik félév A modul időtartama: A modul célja: 8 foglalkozás, alkalmanként 60 perc HTML és JavaScript programozási ismeretek elsajátítása, feladatok programozása. A modul tartalma: 1. Programozás gyakorlat HTML alapok Mi a HTML? Elemek, tag-ek, attributumok, DTD. A HTML dokumentum alap szerkezete <html>, <head>, <body> tag-ek. Megjegyzés a html dokumentumban (<!-- -->). Szöveg megjelenítése alap <h> tag. Bekezdés (<b>), sortörés (<br>). Felsorolás, számozás (<ul>, <ol>, <li>). Linkek elhelyezése html lapon (<a>). Képek elhelyezése html lapon (<img>). Egy egyszerű html dokumentum elkészítése. 2. Programozás gyakorlat további HTML elemek: Szöveg formázása HTML dokumentumban (<b>, <i>, <em>, stb.). Színek használata HTML dokumentumban (háttér, szöveg, keret). Táblázatok létrehozás és tulajdonságaik (<table>, <td>, <tr>, <th>, stb.). CSS alapok. Nyomógomb és beviteli mezők HTML dokumentumban (<button>, <form>). 3. Programozás gyakorlat JavaScript alapok <script> tag, szintaktika. HTML dokumentum tartalmának megváltoztatása JavaScript-tel getelementbyid(). Adatok megjelenítése JavaScript-tel innerhtml, document.write(), window.alert(). Alap programok elkészítése az eddig megismert elemek használatával. Egyszerű változók (var) és változó típusok a szám, szöveg. Példaprogramok egyszerű változók használatára operátorok (+,-, *, /, %, ++, --, =, +=, -=, stb.). Példaprogramok operátorok használatára. 4. Programozás gyakorlat JavaScript utasítások Összetett változók: tömb és jellemzői. Példaprogramok tömb használatára. JavaScript függvény (function() ) és használata. Példaprogram függvény használatára. Vezérlési szerkezetek megvalósítása JavaScriptben. Példaprogramok vezérlési szerkezetek felhasználásával. 5. Programozás gyakorlat JavaScript objektumok JavaScript objektumok. Objektumok definiálása és jellemzőik. Példaprogramok objektumok használatára. A játék alapgondolata, szerkezete, algoritmusa. <canvas> elem, létrehozás, paraméterei.
6. Programozás JavaScript játék 1. Játékterület és játékelem létrehozása. Játékelem mozgatása automatikusan. Játékelem mozgatása nyomógombbal illetve billentyűzettel. Egy álló akadály elem létrehozása. 7. Programozás JavaScript játék 2. Több, álló akadály létrehozása. A mozgó játékelem és az álló akadály ütközése esetén játék vége. Egy akadály mozgatása. Több, azonos jellemzővel rendelkező akadály mozgatása. 8. Programozás JavaScript játék 4. A mozgó játékelem és mozgó akadály ütközése esetén játék vége. A játék továbbfejlesztési lehetőségei: o Véletlenszerű méretű és szerkezetű akadály definiálása. o Véletlenszerű méretű és szerkezetű akadály és a játékelem ütközésének lekezelése. o Teljesítménymérés (pontozás) elvi és gyakorlati megvalósítása.