[Edu-sig] A suggestion for a high school programming project
barrett at stsci.edu
Wed Sep 8 16:05:39 CEST 2004
David Handy wrote:
> Paul Barrett wrote:
>>In my opinion, creating such a package should not be too difficult.
>>Vision already provides the visual programming environment. The next
>>step is to extend it with software for creating electronic circuits.
> What kind of electronic circuits - analog or digital?
I'm not talking about creating electronic circuits per se, but developing a
visual programming environment for implementing data acquisition programs. The
strength of LabView is that the venders of electronic interface boards also
provide the necessary software drivers for these boards. Someone, an
experienced electronics or software engineer, will have to write these drivers
or make them available. However, in the case of the OBDII scanners for
automobiles, the specs for these drivers are available and, I believe, the
interface is pretty simple, i.e. send command to port A, read data from port B, etc.
> What do you mean by "creating electronic circuits"? Do you mean simulation,
> generating FPGA input files, or fabrication masks?
No, I don't mean any of this. My intent is to create a visual programming
environment so electronics engineers can create data acquisition and analysis
programs without having to write programs. They can just drag-drop-and-connect
icons for various processing steps to create an application. For an example,
take a look at the Vision (http://www.scripps.edu/~sanner/python/viper/) web page.
> What do you mean by "extend it with software" - I have to assume you mean "connect it
> with software" that already handles synthesis, simulation, or whatever it is you are
> trying to do.
The Vision library was designed to allow molecular biologists to visually create
applications to analyze their data without having to write code. Each icon
represents a processing step (or node) having zero or more inputs and zero or
more outputs. The user connects the inputs and outputs of these nodes together
to create an application. When he gives the application data and pushes the
execute button, the applications processes the data and returns a result, either
graphically or digitallly. For example an application may take an image of a
molecule and provide graphic information about the bonds between atoms.
However, there are generic nodes which can be written on the fly by opening
editor and writing the processing step in Python. This is what I mean by
"extending the softare". Creating or writing nodes that would be useful to
someone who would like to create a data acquisition program. Some examples of
nodes are 'and' and 'or' logic circuits, writing and reading ports, strip chart
recorders, etc. Then using an On-Board Diagnostic 2 (OBDII) scanner circuit
board connected to a car's OBD interface (usually located under the dash board
on the driver side), they can read and display the information contained in a
car's microprocessor, just like every auto mechanic does these days.
> I don't think writing accurate simulation or logic synthesis software from scratch is
> acheivable by most high school seniors in a semeseter or two, but hey, maybe I'm out
> of touch with the rising generation!
I agree. I don't envisage this project being done by each high school student,
but as a collaborative project among several advanced or gifted high school
students looking for a useful hand-ons programming project. I see this project
taking at least a year to complete if not more and the work load distributed
among several groups. One group can learn about logic circuits and then program
these nodes using Vision and Python. Another group can learn about reading and
writing hardware ports and then program these nodes. A third group can think
about interface issues, e.g. creating better icons for each node. This project
could also be a collaboration between a computer science teacher, an electronics
shop teacher, and an auto shop teacher, if a high school provides these facilities.
>>guessing that advanced high school students should be able to tackle
>>this project with some guidance from a computer science teacher and an
>>electronics teacher. In addition, a possible application of this package
>>would be to create an OBDII (On-Board Diagnostics 2) scanner for reading
>>information from a car's microprocessor. Hardware, which can be used to
>>interface the car's microprocessor to a laptop, can be purchased for
>>Any takers or am over the top on this one?
>> -- Paul
> This reminds me of one of the first commercial software projects I did (when I was 21)
> for my Dad who had an Analog ASIC design business. I wrote software for him that
> connected the output of a visual circuit designer (OrCAD) to the input of an analog
> circuit simulator (PSpice). I had at that time only the most basic understanding of
> electronics. However, the software just had to know how to properly connect inputs
> and outputs, look up components by name, and transform ASCII files from one format
> into another. That project would have been in the reach of advanced high school
> However, it was time consuming to get the details correct to the point that circuits
> would actually simulate properly. You would have to carefully define the scope of your
> project to make it sucessful in the time frame that you have to work with.
Yes. As I've said before, I don't expect each student to write everything, just
a piece of it. The pieces can then be combined into a useful and useable
package for scientists, engineers, and hobbists.
Paul Barrett, PhD Space Telescope Science Institute
Phone: 410-338-4475 ESS/Science Software Branch
FAX: 410-338-4767 Baltimore, MD 21218
More information about the Edu-sig