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?"
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
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
>Use a stopwatch You had stopwatches? Dang! We had one of the autistic students in the corner going 'One Mississippi, Two Mississippi, Three Mississippi, Four Mississippi ...'
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
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
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
Go to a real school!
Even my junior college physics department has photogates!
Under capitalism man exploits man. Under communism it's the other way around.
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.)
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
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