Kurzusok, amelyeket azokról a területekről állítok össze, amelyekkel nap mint nap foglalkozom, a teljesen alapoktól a haladó szintig — beágyazott szoftverfejlesztés, hardvertervezés, irányítástechnika, robotika és PLC-automatizálás, úgy tanítva, ahogy annak idején én szerettem volna megtanulni.
A kártyákon a fő témák szerepelnek — a kurzusok ennél több területet érintenek.
Videókurzus
Témánként nagyjából 2 óra
Magyar és angol
Alapok
Mindegyik a szoftver telepítésével kezdődik. Előzetes tudás nem szükséges, kivéve ahol a kurzus mást jelez.
Hamarosan
Beágyazott rendszerek szoftverfejlesztésének alapjai Arduino platformon
Beágyazott szoftver az alapoktól, kézzel fogható hardveren — szenzorok olvasása, szervók és motorok meghajtása, időzítők, megszakítások és soros kommunikáció, úgy megírva, hogy a kód a projekt növekedésével is olvasható maradjon.
Az IDE telepítése, és az első program feltöltése a panelre
Digitális és analóg I/O, és hogy valójában mit csinál a mikrovezérlő
Időzítők, megszakítások és nem blokkoló kód a delay() helyett
Soros kommunikáció: UART, I²C és SPI
Adatlap olvasása és szenzor meghajtása belőle
PWM: kitöltési tényező, frekvencia, és hogyan lesz a digitális lábból változtatható kimenet
Beavatkozók meghajtása: hobbiszervók, DC-motorok, relék, és a hozzájuk tartozó meghajtók
Objektumorientált alapok: osztályok, objektumok, és egy szenzor vagy motor újrahasznosítható osztállyá alakítása
Állapotgépek és a kód modulokra bontása
Hamarosan
Hardvertervezés alapjai
Az ötlettől a ténylegesen megrendelhető panelig. Minden téma az elmélettel kezdődik, majd megépítjük KiCadben — így áll össze egy teljes fejlesztőpanel a mikrovezérlőjével, szenzoraival, beavatkozóival, valamint analóg és digitális I/O-jával. Ugyanaz a panel, amelyen a beágyazott szoftverfejlesztési kurzus fut.
A KiCad telepítése és az eszközök megismerése
Kapcsolási rajz készítése, és hogy mit tesz nyilvánvalóvá egy jó rajz
Alkatrészválasztás: adatlapok, lábnyomok és beszerezhetőség
Tápellátás: stabilizátor kiválasztása, hidegítés, és tiszta tápfeszültség a mikrovezérlőnek
Csatlakozók és tüskesorok: szenzorok, beavatkozók és analóg/digitális I/O kivezetése a panelről
NYÁK-tervezés alapjai — rétegfelépítés, huzalozás és földelés
Tervezési szabályok, amelyek illeszkednek a gyártó tényleges képességeihez
Gyártási fájlok: Gerber, fúrásfájlok, anyagjegyzék és beültetési pozíciók
A projekt: egy teljes fejlesztőpanel, az üres laptól a megrendelésig
Hamarosan
Irányítástechnika és szimuláció alapjai Pythonban
Modellezz egy valódi rendszert, majd szabályozd — teljesen Pythonban. Felépítjük a szakaszt, bezárjuk a hurkot, megírjuk a PID-et a nulláról, és közben megtanuljuk azt az elméletet — stabilitás, frekvenciamenet, szűrés —, amely megmagyarázza, miért viselkedik úgy, ahogy.
Alapszintű algebra és analízis, differenciálegyenletek, valamint alapvető jelek és rendszerek ismerete szükséges.
A Python és a tudományos csomagok telepítése, és az első szimuláció futtatása
Mi az a dinamikus rendszer, és hogyan írjuk fel egyenletekkel
Átviteli függvények és blokkvázlatok: a differenciálegyenlettől a G(s)-ig, és a blokkok hurokká fűzése
Szakasz szimulálása: időlépések, integrálás, és miért számít a lépésköz
Nyílt és zárt hurok, és hogy valójában mit ad a visszacsatolás
Pólusok, csillapítás és stabilitás — miért leng be egy rendszer, és mit változtat valójában a hangolás
A frekvenciatartomány: Bode-diagramok, erősítési és fázistartalék, és mit jósolnak meg
Rendszeridentifikáció: modell illesztése mért ugrásválaszra
PID a nulláról: arányos, integráló és differenciáló tag — és az anti-windup
Maradó hiba és rendszertípus: miért marad eltérés csak P-vel, és miért szünteti meg az I
Hangolás és az ugrásválasz olvasása: felfutási idő, túllövés és beállási idő
Előrecsatolás: a zavarás korrigálása még mielőtt hiba keletkezne
A szimuláció őszintévé tétele: szenzorzaj, kvantálás és beavatkozói korlátok
Szűrők: aluláteresztő, felüláteresztő, és a zajos mérés megszelídítése
Diszkrét idő: mintavételi frekvencia, a PID differenciaegyenletként, és mi változik valódi hardveren
P, PI és PID összehasonlítása ugyanazon a szakaszon, és értelmes ábrák készítése
Hamarosan
ROS 2 és Gazebo alapjai
Építs mobilrobotot, amely magától tájékozódik, teljesen szimulációban — node-ok és topicok, egy robot, amelyet te írsz le, szimulált szenzorok, menet közben épülő térkép, és egy útvonaltervező, amelynek végignézheted a gondolkodását.
A ROS 2 és a Gazebo telepítése, és az első node futtatása
Node-ok, topicok és üzenetek — hogyan beszélnek egymással egy ROS-rendszer részei
Munkaterületek és csomagok: a colcon, és hogy valójában hol lakik a kódod
Node-ok írása Pythonban: publisher, subscriber és időzítő
Service-ek, action-ök és paraméterek, és hogy mikor melyikhez nyúljunk
Launch fájlok: egy teljes rendszer indítása hat terminál helyett
A robot leírása: URDF, linkek, csuklók és a TF-fa
Gazebo: világok, a robot betöltése, és a szenzorai szimulálása
A robot mozgatása: /cmd_vel, odometria, és a hurok bezárása
LiDAR és a foglaltsági rács: mit tud valójában a robot a világról
SLAM: térkép építése menet közben
Útvonaltervezés: A*, Dijkstra, BFS és DFS, és mennyibe kerül mindegyiknek ugyanaz az út
RViz és hibakeresés: láthatóvá tenni egy egyébként láthatatlan rendszert
Hamarosan
Ipari robotika alapjai FANUC RoboGuide-ban
Hattengelyes ipari robotok programozása teljesen szimulációban — a teach pendant és a TP-programok, mozgás és koordinátarendszerek, programlogika, gépkiszolgálás és I/O-kézfogások, gépi látás és biztonsági zónák, egy teljes gyártócellában, amelyet magad építesz fel.
A RoboGuide telepítése és az első cella létrehozása
Gyártócella felépítése: robot, szerszámozás, készülékek és anyagáramlás
A teach pendant: kézi mozgatás, TP-program létrehozása és pozíciók betanítása
Csuklós, lineáris és köríves mozgás — és hogy mikor melyik a helyes
Sebesség és pozicionálási mód: FINE, CNT, és hogyan alakítja az átmenet a pályát és a ciklusidőt
Szerszám- és felhasználói koordinátarendszerek: TCP beállítása hatpontos módszerrel, és miért borul fel egy rossz frame-től minden
Regiszterek, pozícióregiszterek és programvezérlés: IF, JMP/LBL, CALL és WAIT
Digitális I/O és kézfogás a robot és a gép között
Gépkiszolgálás: CNC vezérlése — ajtó, befogó, ciklusindítás — és az állapotának visszaolvasása
Felvétel-lerakás és palettázás pozícióregiszterekkel
Két robot összehangolása egy cellában: megegyezni, ki mozog, és kitérni egymás elől
Kameraalapok: hogyan működik a gépi látás, és szimulált kamera beállítása RoboGuide-ban
A látás gyakorlatban: akadályérzékelés és a kamera által észlelt akadályok számlálása
Biztonság: ütközési zónák, DCS, kerítések és vészleállítás — előbb szimulációban beállítva
Ütközésmentes pályák és a ténylegesen elért ciklusidő ellenőrzése
Hamarosan
PLC-programozás alapjai TIA Portallal és Factory I/O-val
Létradiagram Siemens S7-1500-on, 3D-s üzemmodellel hajtva a Factory I/O-ban. A szimulátorban kezdünk, összekötjük a kettőt, majd a kurzus nagyobb részében valódi folyamatokat építünk és keresünk bennük hibát — hardver nélkül.
A TIA Portal és a Factory I/O telepítése, és mindkettő beüzemelése
Factory I/O alapok: jelenet felépítése, annak érzékelői, beavatkozói és jelei
TIA Portal alapok: projekt létrehozása, S7-1500-as CPU és a PLCSIM
A ciklusidő, és hogyan alakítja a logikaírás módját
A TIA Portal és a Factory I/O összekötése, és a helyes I/O-hozzárendelés
Létradiagram: érintkezők, tekercsek, időzítők és számlálók
Funkcióblokkok és újrafelhasználható kód: FB, FC és adatblokkok a rungok másolgatása helyett
Analóg I/O: tartályszintek olvasása, és a nyers értékek átskálázása mértékegységre
Folyamat felépítése állapotgépként — indítás, leállítás, alaphelyzet és vészleállítás
Alapvető folyamatirányítás: szelepek és szivattyúk vezérlése, kétállású szabályozás hiszterézissel, és szakaszos folyamat vezérlése
Rengeteg gyakorlás: teljes folyamatok felépítése és hibakeresése végig szimulációban
Haladó
Mindegyik ott folytatja, ahol a hozzá tartozó alapkurzus véget ér.
Hamarosan
Haladó beágyazott szoftverfejlesztés ESP-IDF-fel és FreeRTOS-szal
Túl az Arduinón, valódi eszközláncon — modern C++ ESP-IDF-en, komponensekre bontott projekt, FreeRTOS és a vele járó konkurenciahibák, vezetékes és vezeték nélküli kommunikáció, valamint az a verziókövetés és tesztelés, ami kordában tartja a növekvő kódbázist.
Az ESP-IDF beállítása, és hogy mit ad egy valódi eszközlánc az Arduino IDE-hez képest
Komponensek és CMake: egynél több fájlból álló projekt felépítése
Modern C++ mikrovezérlőn: osztályok, RAII, és amit kerülni érdemes
Architektúra: interfészek, függőséginjektálás, és valóban tesztelhető kód
Firmware egységtesztelése, gazdagépen és célhardveren
FreeRTOS: taszkok, prioritások, és hogyan dönt az ütemező
Üzenetsorok, szemaforok és mutexek: adatmozgatás taszkok között
Versenyhelyzetek és prioritásinverzió — a hibák, amelyeket a konkurencia hoz magával
Vezetékes protokollok: UART, I²C, SPI és RS485
WiFi: csatlakozás, üzembe helyezés, és fennmaradás akkor is, ha a hálózat nem az
Ethernet és TCP/IP: socketek, és kommunikáció a panelen kívülre
Tárolás és OTA: NVS, flash, és firmware-frissítés a kiszállítás után
Hibakeresés JTAG-gel, és a crash dump olvasása
Git a gyakorlatban: branchek, előzmények, és közös munka másokkal
Hamarosan
Haladó hardvertervezés: vegyes jelű panelek
Olyan panel, ahol az analóg és a digitális ugyanazon a rézen osztozik — elrendezéstervezés, tápintegritás, földelés, analóg bemeneti fokozatok, EMC és hőkezelés, valamint azok a huzalozási döntések, amelyeken múlik, hogy a halk jelek halkak maradnak-e.
Többrétegű rétegfelépítések, és a megfelelő kiválasztása vegyes jelű panelhez
Elrendezéstervezés: az analóg és a digitális rész szétválasztása, mielőtt bármit huzaloznál
Tápellátás: lineáris vagy kapcsolóüzemű stabilizátor, és melyik hová való
Hidegítés és a tápelosztó hálózat: merre folyik a visszatérő áram
Földelés: síkok, felosztások, és a tévhitek, amelyeket el kell felejteni
Műveleti erősítők és analóg bemeneti fokozatok: erősítés, ofszet és szűrés
Az ADC helyes meghajtása: mintavételezés, alias-hatás és a referencia
Zaj és áthallás: honnan erednek, és hogyan lehet megtalálni őket
EMC: kibocsátás, zavartűrés, és tervezés úgy, hogy elsőre átmenjen
Nagy sebességű huzalozás: impedancia, hosszillesztés és differenciális párok
Termikus tervezés: disszipáció, a réz mint hűtőfelület, és hőmérséklet-mérés
Gyárthatóságra és tesztelhetőségre tervezés: finom raszter, tűrések, mérőpontok, és amiért a gyártó felárat kér
Beüzemelés: olyan panel tesztelése, amelyet még sosem kapcsoltál be
Hamarosan
Haladó irányítástechnika Pythonban: klasszikus, állapottér és fuzzy
Túl az egyetlen PID-hurkon — előbb az a klasszikus analízis, amelyet az alapkurzus szándékosan kihagyott, majd állapottér megfigyelőkkel és optimális szabályozással, végül fuzzy szabályozók azokra az esetekre, ahol a szabályokat könnyebb leírni, mint a matematikát.
A Laplace-transzformáció kézzel: honnan származnak valójában az átviteli függvények
Gyökhelygörbe: hogyan mozognak a zárt hurkú pólusok a körerősítés növelésével
Nyquist: stabilitás és tartalékok a felnyitott hurok frekvenciamenetéből
Állapottér: rendszer leírása mátrixokkal egyetlen átviteli függvény helyett
Irányíthatóság és megfigyelhetőség — mit árul el az állapottér-modell a tervezés előtt
Állapot-visszacsatolás és pólusáthelyezés
Megfigyelők: a nem mérhető állapotok becslése
LQR: bízzuk a hangolást egy költségfüggvényre
Fuzzy szabályozás: tagsági függvények, szabálybázis és defuzzifikáció
Mamdani-szabályozó építése, és hangolása a szabályok átírásával
PID, állapot-visszacsatolás és fuzzy őszinte összehasonlítása ugyanazon a szakaszon
Szeretnél értesítést kapni, amikor elindul valamelyik?