Az OOPic egy „objektumorientált programozható integrált áramkör”. A szó az angol „Object Oriented Programmable Integrated Circuit” rövidítése. A Savage Innovations cég készítette, a PIC mikrovezérlőn alapuló hardver egykártyás miniszámítógép formájában, amihez tartozik egy integrált fejlesztői környezet (IDE), amely támogatja a BASIC, Java és C programozási nyelveken alapuló szintaxisú programozást. Mivel a kártya igen kicsi és elemről is működtethető, alkalmas kisebb otthoni eszközök vezérlésére és hobbiautomatákhoz is használható, mint például vonalkövető robotok. A Savage Innovations a 2025-ös állapot szerint nem funkcionál.
Az utolsó három kibocsátott változat az OOPic-R, az OOPic-S és az OOPic-C volt, a „C” jelű az előbbiek miniatűr változata. A legrégebbi modell az OOPic I, ami a firmware A.2 verzióját használja.
Az OOPic firmware számos beépített „objektumot” definiál, amelyek egyedi módszereket és tulajdonságokat biztosítanak. Az objektumok lehetnek hardverek burkolói, például egy külső infravörös érzékelő vagy beépített LED, vagy logikai segítőeszközök, mint például osztók vagy logikai kapuk.
Az OOPic „virtuális áramköröket” is használ, amelyeken a programozó kapcsolatokat hozhat létre az objektumok tulajdonságai között.
Itt látható egy BASIC szintaxissal készült mintaprogram, amely egy 1 Hz-es ütemjelű beépített órával egy LED-et vezérel.
' A LED-et egy I/O vonalként definiáljuk (oDio1 - kimeneti dióda 1)
Dim Red As New oDio1
' Itt étrehozunk egy virtuális vezetéket. A vezetékek
' a kimenetek vagy jelzőértékek összekapcsolására szolgálnak
' a bemeneti értékekkel
Dim W As New oWire
' Az OOPic programokban definiálni kell egy "fő" szubrutint
' ez fut le az OOPic bekapcsolásakor
Sub Main()
' Megadjuk a bemeneti/kimeneti vonalak csatlakozószámát
' A beépített piros LED a 7. tűre van kötve
Red.IOLine = 7
' A LED gombként is használható, ezért meg kell határozni,
' hogy olvasás vagy írás történik a tűn
' (a cvOutput egy állandó, cv mint constant value)
Red.Direction = cvOutput
' Most beállíthatjuk a vezetékes kapcsolatot.
' A vezeték bemenetéhez a beépített
' 1 Hz-es időzítőt használjuk
W.Input.Link(OOPic.Hz1)
' Most a vezeték kimenetét a LED-hez küldjük.
' Ne felejtsük el, hogy valójában a LED „Value”
' tulajdonságába írunk egy értéket, mivel ez határozza meg,
' hogy a LED világít-e.
W.Output.Link(Red.Value)
' Már csak azt kell mondani a vezetéknek, hogy
' működjön, és az OOPic elvégzi a többit!
' (a cvTrue egy állandó)
W.Operate = cvTrue
End Sub
Ez a virtuális áramköri viselkedés jelentős kontrollt és rugalmasságot nyújt a programozónak, és lehetővé teszi a gyors reagálást a valós idejű viselkedésre az „Események” objektumnak köszönhetően. Az OOPic valójában az ideje nagy részét a virtuális áramkörök frissítésével tölti, a felhasználói kódon való végighaladással összehasonlítva, ezért a programozók számára az a legjobb, ha minél inkább kihasználják a virtuális áramköröket a hagyományos programozási technikák helyett.
Az OOPIC rövidítésnek egy másik jelentése is van, az Object Oriented Particle In Cell, azaz kb. „objektumorientált részecske a cellában”. Ez a Berkeley egyetemen fejlesztett objektumorientált implementáció egy speciális plazmafizikai szimulációs módszerhez, amely az úgynevezett „particle-in-cell” (PIC) elnevezésű numerikus módszert alkalmazza bizonyos típusú parciális differenciálegyenletek numerikus megoldására.
Ez a szócikk részben vagy egészben az OOPic című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.