High School + Physics + Linux = ?
earlums25 asks: ""I'm a high school physics teacher stuck in a school where not only is Windows rampant, but the sysadmin isn't interested in alternatives. I want to present a case where my
students could use Linux boxes instead of Windows for the purpose of showing them there are alternatives. The major obstacle is that I haven't found software for Linux that would take the place of 'Precision Timer,' a piece of software that allows students to connect photogates through a Pasco 6500 interface. The software would need to recognize the input signal which comes in through the Pasco interface (a 1/4 inch plug connected the gameport), record time, plot data, print/save data and plots, and do basic calculation of speeds, accelerations, averages and standard deviations. Any ideas?"
It is physics, so you have to get physical with them!!! Push them around a bit.
Tell them it won't cost any money, either for the install or for administering. The hardware already exists I'm assuming?
/* oops I accidentally made a comment, sorry */
..A good project for your computer science deparment ;o) Maybe one or two students in your class would have the interest/skills to make this program?
~Anztac
I've written tons of drivers for little components like that. It shouldn't be too hard to do. The software on top of the driver is another story. It might take a while to implement depending on the feature set required.
A: 9.8 m/s^2
(rimshot)
Method of processing duck feet
Drivers would seem to be the big hurdle. Once you have the data in the system the calculations are pretty simple. Heck, even I could write a program to do them (it would be CLI, though). Have you check with the manufacturer to see if they offer Linux drivers?
Under capitalism man exploits man. Under communism it's the other way around.
Without sounding harsh, your OS is a means, not an end. Looking over the details again, you have an existing solution that a) works, b) is supported by your existing staff, c) is already paid for ... am I correct thus far?
... but she wanted to use a different brand of microscope to 'show the students that alternatives exist.' Probably tell her to go teach some biology after asking if she had entirely too much free time.
You are teaching Physics, so teach Physics. I agree with you, alternative OS's exist and are often viable, occasionally superior to what is being used but you are trying to impose your religious views (OS Holy Wars) on young impressionable minds (I commend you on that, get em while they are young) in a classroom completely unrelated to operating systems, computers, religious freedom, etc. Additionally, you are trying to shoehorn the new OS where it isn't an obvious (nor an excellent) fit - the tools are not readily available.
What would you say when the biology teacher came to you with the following dilemma - they already have microscopes, paid for, supported by the current staff, that are working
If you want to teach alternative OS's, offer to create a new class, or even an after-school workshop. That way you could dedicate the needed resources (your time, efforts) to the computer side without getting the Physics in the middle of it.
Glonoinha the MebiByte Slayer
I'm in college and taking my second calculus based physics course (E&M/Optics) and we never had photogates! Use a stopwatch
You could always use a Wintel box for data collection, then have the Wintel box pass the data to your Linux box either real time or staged (store it to a file, have the Linux box go fetch it) and then process the file on your Linux box.
This kills three birds with one stone -
1. instant solution, the data aquisition issue is resolved,
2. if IT comes in you can point to the Windows box and they will be happy,
3. you get to demonstrate alernative OS's, even demonstrate interoperability techniques.
Glonoinha the MebiByte Slayer
A 1/4in plug connected to the gameport? I guess I dont quite understand what this is...
I dont see why this couldnt be built using fairly easy-to-come-by components - IE, an IR LED, an IR Detector simply connected by paralell port. While the detector is true, keep counting, if its false, your beam got broken and you can count that as you need. The software would be rather simple. The hardest part will be doing the polling to the accuracy you need.
Shrug... Unless there is anything special that hardware can do that you cant recreate simply, do it that way.
In highschool the hardware we were using was on the Mac. Dont think its at all device dependent.
Heck, get ambitious and work on getting a plotting function too.
If theres a CS department at the school I bet you could get some help developing some of the routines, save the device driver.
--onyx--
If it's working with Windows, why not use Windows? Why do you have to show there are "alternatives"? What benefit does this have on the students?
Not All Who Wander Are Lost
If you are tied to a particular piece of hardware you may just be stuck. At least remember the lesson next time you have a purchasing decision, and try if at all possible to buy open hardware that has standardized interfaces and documented drivers.
Here are your choices:
1) Pressure pasco to produce linux drivers and tools, or at least document their interface. My prediction is you will not be successful at this, but you should at least write a few letters.
2) Get a copy of Dhananjay V. Gadre's "Programming the Parallel Port: Interfacing the PC for Data Acquisition and Process Control" and start the several-year long process writing your own interface and designing your own system. Horowitz and Hill "The Art of Electronics" might also come in useful. You can pass of parts as summer projects to interested students. You can also find big chunks already done by various grad students, and out on the web in various states of usefulness. An example piece of source code to interface the parallel port nicely is here: http://www.finitesite.com/d3jsys/ (the picprg tool linked to from there).
3) Look into other suppliers of similar devices, such as National Instruments LabView stuff. I advise against this. Eventually it will work but then you'll just have an expensive version of what you have now but working on linux, still mostly not transparent or fixable by you.
For all you ferriners this is why american schools suck. Teachers are more concerned (perhaps its the politicians and the wannabe politicians in the school administration) with how to teach using the newest toys rather than how to teach with what they know and more importantly what to teach.
/etc or recompile a kernel defeats the purpose of using the new toys.
In high school (but a few years ago) I had a great physics teacher that used whatever she needed to use to teach us. We were doing some speed and sounds based experimentation and for the recording hardware she had there were existing drivers for the science lab macs that were a good 4 - 5 years old, so thats what we used. No one gave two shits that it was on a Mac, we were there to learn physics and my teacher was there to teach it, not press her personal preferences for OS during class time.
On the contrary, in my calculus class the teacher tried to use computers and teach a large group of non-technical people to program thier calculators (ti-83 was the standard) to do the calc for them. Now i can see this as being a good thing to save us the tedium of solving a more basic problem as part of a new problem to isolate the concepts of the new material. However, we lost a full 3 DAYS of class time fucking with the calculators which would have been better spent teaching us. Now I really didnt mind sitting in the corner taking 15 minutes to poke the program in then playing nibbles or drugwar for the next 2.5 classes...
My point is that there is no reason for you to change the technological base of a class/cirriculum UNLESS that change will help to illustrate a concept and teach your students. If there was some whiz-bang hot shit program or hardware that was linux only, then by all means please put it in place, but make damn sure it works without fail. A student having to make up a lab or stay late because you had to go dink with someing in
Both PASCO & Vernier offer Macintosh software for their hardware. Much if not all of their software will work with Mac System 6.08 through MacOS 9.2, and I believe in Classic mode under MacOS X. My suspision is that your school might have an older Mac lurking about in the wings. If so, then you could download the PASCO software that would work with that old Mac.
FWIW
"Oh drat these computers, they're so naughty and so complex, I could pinch them." --Marvin the Martian
Are you serious? What does this have to do with physics?
And why replace working Windows computers with non-working Linux ones for the purpose of showing alternatives?
You people are crazy. At least the aforementioned sysadmin is seeing some sense.
What kind of information does the device send on the joystick port? Is it analog, across the axis lines, or digital, across the button lines? How should the data be interpreted? What happens when you try to treat the device as an actual joystick and calibrate it with the Windows control panel (assuming you're using Windows 95 or later)?
...)...
With more information, an open source developer such as myself could probably whip up a user-space driver that uses the generic Linux joystick API in a day's worth of spare time, without even needing the hardware.
There's already gnuplot to graph the datapoints once they've been acquired, too, or I've got lots of experience writing graphics stuff (I've written a 3D modeller, a 2D/3D function grapher, a linux framebuffer graphics library, some undistributed xmms plugins,
A solution to the problem with music today
I agree with your sentiment that it is good to show these kids that the world of computers does not equate to Microsoft Word and Microsoft Internet Explorer running on Microsoft Windows. Most ordinary computer users probably spend 90% of their time using these or some other small handful of apps, and it's easy to assume that's all there is to computers if you've never experienced anything else.
But, I don't think this is the proper setting to demonstrate this idea. The whole point of alternatives is choosing the best solution for the task at hand. Here you've got a case where the alternate tool does not have the necessary functionality, at least not without extra development work. It doesn't have support from any of the administation, and indeed would probably draw some degree of negativity. And it's not saving any money or other resources, because clearly the Windows PCs and their software have already been purchased, configured, and work just fine.
Don't force the square peg in the round hole. There are many times when the alternatives make sense, and this is not one of them.
What you should instead do is find a task to which Linux and free software are suited. Try having an assignment where the kids use Octave or gnuplot or something like that to analyze their data. Surely there's some task that would require the purchase of non-free software for Windows that can be done with free software on Linux. It doesn't even have to be a very involved task, but perhaps if you had the basic skeleton/framework script setup and the kids just enter their data and get an advanced analysis.
If it doesn't violate policy, offer to also let the kids use this linux computer in between classes or after school, to surf the web or type assignments or whatever. Surely you will get a few curious kids that want to screw around on it since it's different. A few might want to use it if other labs are full, or they don't have a computer at home, or it's simply convenient at the time, or whatever. Point is, they'll get some exposure even if it's not an integral part of the class (i.e., not driving your lab hardware.)
1) high school
2) physics
3) linux
4) ???
5) profit!!!
Nonperiodic Central Trajectory
Linux can play a role in a HS physics class, but it's not here.
Where Linux (or any Unix) shines is collecting real time data over long periods of time. Windows, at least the most brain-dead versions, were actually better for collecting data over short periods of time since the data logging program could take over the system. But short of dedicated embedded OSes nothing can be Unix/Linux for low-profile systems that can log data for months without ever requiring a reboot, it can simultaneously run data collection, analysis and publication programs, etc. Windows (short of NT) has proven remarkably inept at this.
The problem is that there's not a whole lot you can do in a HS physics lab that requires collecting data over such long periods. The late "Amateur Scientist" column in Scientific American had a lot of great ideas, but they are real science. At the HS level, you need trivial experiements that can be performed and understood by the average HS physics student. (I know, some of them could do the experiments mentioned, or better yet inspired, but that column. But only a small number of these students.)
For every complex problem there is an answer that is clear, simple, and wrong. -- H L Mencken
Whether you choose Linux or Windows is rather OT to physics.
However, you could use the inertia metaphor to describe why Windows dominates.
Jesus saves....And takes 1/2 damage.
Get the computer teacher to get some class to write the software for the darned thing.
Jesus was all right but his disciples were thick and ordinary. -John Lennon
We had an alarm bell, some carbon paper and a long narrow roll of paper. Wrap the carbon paper around the bell, arrange the paper between the hammer-thing and the carbon paper with the bell behind it. Tie the paper to something falling and turn on the bell. We had to assume the time between dots on the paper was the same and measure the distance with a ruler. Kids are spoiled today.
Anyway, the CI-6500 seems (from the FAQs) to be a simple A/D card (that must be in slot 1 and conflicts with everything so everything else has to be removed or disabled) with software that runs in DOS mode.
Hook the little stereo plug thing up to an oscilliscope or even a simple voltmeter and check the range of it's output. If it's within the range of a common sound card (like 5v or something, should be easy to find) you can do the following:
There are several sound-card as oscilliscope programs out there that could probably do most of what you need.
You can measure events that accurately with the gameport, sound card, parallel port or even a serial port.
The photogate has a simple 3 wire digital interface. I betcha that the 3 wires are ground, +5volts and a logic level output. If you can't find the interface documentation on the web, you can use a voltmeter or oscilliscope to figure out the signal.
Here's a way to use the serial port as an accurate timer, even if your OS has terrible latency. Connect a 40 kohm resistor between data out and data in of the serial port. Drive the input of an opto isolator off of your photogate (which is an also opto-isolator, but I like redundancy). Use the opto-isolator to pull data in to +5 through a 1kohm resistor.
So when the opto isolator is off, data will flow through the serial port, when it is on, data won't flow. When the isolator switches, it will corrupt a character. Send an easy to decode series of characters down the serial port, say, 00000001:00000002: etc... Dump the data to a file. See what characters are missing to tell when the isolator is on.
At 115kbaud, each bit is 8.68 microseconds, each character is 86.8 microseconds. So character level timing is good enough, you don't even have to look at the bits of corrupted characters. You can look at those bits for more precision.
Figuring out speeds and accelarations from raw timing data is an excellent project for physics students.
Unless you can tell me some good advantage of using linux (other than "showing them there are alternatives"), don't do it...
Your sysadmin is right. He has given you a solution that works, you use it. End of story.
Is there some specific linux software you want to use? Are you sure it can't run on Windows? Or has good alternatives that run on Windows? Sounds to me you are just trolling your sysadmin *and* your students.
Hell, why not go all the way, and insist on a AS/400-only solution, just to show them that there are alternatives, right?
Or better yet, buy a class-set of gameboys (and one of those eprom burners), and develop a data-collection solution for them in assembly language. Now, that's an alternative nobody would think about.
But of course, if you want a real computer, you should buy a real game-console, maybe a Dreamcast running NetBSD would be the ideal solution. I'm sure it could be made to work, and your students would surely be much wiser about "alternatives".
But of course, the best solution would be to set up a cluster of bluetooth-enabled java-cellphones that communicate over ipx to do the calculations and display, and let a C64 with a soldered on modern gameport to do the data-collection. Of course, you will need to distribute the data to the cluster through the C64's serial-port to a laptop runnin OS/2, which can convert the signal into something the bluetooth-devices can understand. Extra credits if you can make all the cellphones display a large graph by putting their displays next to each other. Don't mention linux, most students have already heard about it, remember, it's alternatives we are looking for, right?
Or you could just teach physics...
The project you are looking for is called RealTime linux.
I had a physiology professor in Boston who was using this in precision timing experiments. "RTLinux was created to resolve what has long been considered an inescapable dilemma: to produce a simple real-time system that does not restrict access to the power of hardware platforms." A company called FSMLabs now supports it. See: http://www.fsmlabs.com/community/ Check out the projects page for good examples of what this can be used for (mostly situations where you have to measure real-world events in picoseconds.)
http://tinyurl.com/4ny52
I love Linux and would think this would be a fun project if.
1. You where getting new computers.
2. If there was some great open source tools that only work on Linux.
3. You had gotten a bunch of hand me down systems that just didn't cut it but could work using Linux.
You are supposed to teach Physics. If you have a computer program in your school they should be teaching that they are other OS's not you.
If you want to do write an Open source solution for other schools to use I think that would be great but right now teach them Physics.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Religion has no place in the class room.
They may not have exactly what you are looking for but you may want to check out seul.org. They have both an education area and a science area. They may have something to help you.
Why don't you think of it as a project - in the longer term? I agree with others who have said that you should use the right tool for the job, you are after all teaching physics.
But it's also true that in most physics labs, one of the daily tasks is writing data collection and instrument control software. While a lot of that is done using LabView, I see no reason --at least in a teaching setting where the needs are fairly basic-- not to try an alternative.
So what I suggest you do is to consider having a 'computational experimental physics' project whose ultimate goal is writing precisely such software. It would give your students _extremely_ valuable experience, and would show them first hand what I consider to be Linux's biggest strength. To me the power of Linux isn't so much that it's free, but that out of the box you get every language, compiler and development tool under the sun.
So get your students involved, and think of it as a great opportunity to learn how to write a small C library to read data off that port, probably coupled with a Numeric Python back end for data processing and a PyQt front end for the plotting and control (perhaps driving a Gnuplot window).
That's what I would do at least.
Cheers.
Before we totaly bash this person consider nearly everyone with a physics major has some deal of of experience with *nix. Learning to use some version is an important part of educating future physical scientists. Physics and Linux practically go hand in hand because we are always squezing money and always using big servers.
Maybe the students AND the teacher should work on this project of porting to Linux since nearly every physics dept requires programming computer experience beyond the usual MS programs of the masses.
Cthulhu for president!
If the tasco stuff is anything like the TI calculators + 3rd party hardware + software we used in my high school physics class, it will be incredibly easy to port. Since most of the software required to decode the input was loaded onto the calculator (and was not compiled, so you could read the source), the only thing that required porting was the graph-link software, which somebody had already ported What it sounds like you have is a simple serial interface, so if you could just get the specifications for the output from tasco, i'm sure any decent programmer could port the software to linux in less than a weeks worth of time.
There's no sig like SIGSEG