OOPic
The OOPic is an Object Oriented Programmable Integrated Circuit. Created by , this PIC microcontroller comes with an IDE (Integrated Development Environment) that supports programming in syntaxes based on the BASIC, Java and C programming languages.
The last three versions released to market were the OOPic-R, the OOPic-S and the OOPic-C, which is a miniature version of the former. The oldest model is the OOPic I, which uses the A.2 version of the firmware.
Architecture[]
The OOPic firmware defines numerous built-in "objects," which can provide custom methods and properties. The objects may be wrappers for hardware, such as an external infrared sensor or a built-in LED, or logic helpers, such as dividers or logic gates.
The OOPic also makes use of "virtual circuits," where the programmer can create links between object properties.
Example program[]
The following is an example piece of code written in the BASIC syntax, which links a built-in clock that cycles every 1 Hz to an LED.
' The LED is defined as a single I/O line
Dim Red As New oDio1
' Here we create a virtual wire. Wires are
' used to link output or flag values to
' input values.
Dim W As New oWire
' All OOPic programs need to define a "main" sub-routine.
' This is what will be run when the OOPic is turned on.
Sub Main()
' Here we specify the pin number for the I/O line.
' The onboard red LED is on pin 7.
Red.IOLine = 7
' The LED can also be used for a button, so we need
' to specify whether we wish to read from or write to
' the pin.
' (cvOutput is a constant value)
Red.Direction = cvOutput
' Now we can set up the wire link!
' For the wire's input, we wish to use the built-in
' 1Hz timer.
W.Input.Link(OOPic.Hz1)
' Now we send the output of the wire to the LED.
' Note that we actually send it to the "Value"
' property of the LED, as this is what determines
' whether the LED is lit.
W.Output.Link(Red.Value)
' All that's left to do is to tell the wire to
' operate, and the OOPic will do the rest!
' (cvTrue is a constant value)
W.Operate = cvTrue
End Sub
This virtual circuit behaviour gives the programmer considerable control and flexibility, and allows for better reaction to real-time behaviours thanks to "Events". The OOPic actually spends the majority of its time updating the virtual circuits, compared to looping through a user's code, so it's in the programmers best interest to use virtual circuits over traditional programming techniques as often as possible.
Other meanings[]
OOPIC also refers to Object Oriented Particle In Cell which is an object-oriented implementation, written at Berkeley, of a specific method of plasma physics simulation known as particle in cell.
See also[]
External links[]
- "OOPic (tm): The "Hardware Object"". Archived from the original on October 12, 1999. Retrieved August 2, 2004.—The site made by the company that sells the OOPic.
- The OOPic Yahoo group—This is where most discussion takes place about the OOPic. - Obsolete
- The OOPic Google group—This is the new discussion / user support group for the ooPic. As of September 2008
- The PTSG group—This is the website of Berkeley's Plasma Theory and Simulation Group, the authors of the OOPIC plasma simulation code.
- Microcontrollers
- Microchip Technology hardware