Robotic arm, Java, and high school class

Hello All,

I am a high school teacher and am interested in introducing a Robotic Arm as part of the curriculum in my AP Computer Science class (utilizes Java).

The initial idea is for students to write “simple” Java applications (probably just console, not even gui, at first) to manipulate the arm (in very simple ways - e.g. move the arm, lowever the arm, etc.). Something easy to get us started. I think the students would really enjoy this kind of project.

Can anyone provide feedback into the feasibility of this? Any problems, gotchas? I have exchanged some information with one other forum member, and am interested in gathering as much information as possible.

Thank you very much,

Jim

I’d suggest contacting MWGemmini, on these forums.

Here’s his website:

mike-winters.com/

Mike is currently working on a console/GUI (depending on which option you chose, in the program) with J# (I believe).
He’d be the best to ask.

Because his programs are open source, you might run into problems with students stealing that code, but I’m sure that you know how to get around that.

I believe I am “the other forum member” he speaks of, Nick :stuck_out_tongue:. But thanks for the plug. :slight_smile:

Also, it’s in Java, not J#. Not quite sure what the difference is, to be honest, but I know J# is Microsoft’s proprietary version. I don’t THINK it is cross platform in the way Java is.

Also, I’m not quite sure my stuff qualifies as “open source”. I generally release the source to those who ask, but as it develops further, I might hold a few things back. We’ll see when that time comes.

Jim,

If the students are already aware of basic programming ideas (selection statements, code blocks, logical operations), syntax, etc, then I don’t think you’ll have any problems. If all they are doing is learning the nuances of Java, and not programming 101, you can probably get them to do quite a bit more than that, in fact, by the end of a semester.

My personal opinion- go for it. I loved hands on stuff like that as a student. It was the only thing I ever had fun doing in high school, and the only thing that kept my attention.

Mike

Woops.

Yea, I’m willing to bet that J# isn’t cross-platform, too.
Microsoft made it, after all.
And, they can’t even get their .NET languages to be intercompatible.

:stuck_out_tongue:

You mean you actually learned stuff to keep your eyes open in school?

I had my mind on other things, I’m afraid…
cough Freshman Algebra II, Ms. Sloat, sat in front, drooled cough

:laughing:

I really agree with you, though.
There’s nothing that takes the scare out of programming like simple robotics does.
Perhaps it’s because OOP with robotics actually does something tangible in the spacial world.

Not so much that, but I always hated (and still do, in fact) school, because it was all rote learning. It was never a challenge, there was never much actual THOUGHT involved. I had an engineering class in high school that totally changed all that, though. We would be given a fairly straightforward task (like design a structure to protect an egg from the largest drop in height using only balsa wood, or design an airfoil that had certain aerodynamic characteristics, etc) that was actually quite complex. We were then given free reign to solve it however we wanted. We could work individiaully, in groups, didn’t matter. The goal was not to memorize something to pass some stupid standardized test, but rather to actually LEARN. Our teacher was fond of saying that his job was not to teach us what to think, but rather HOW to think.

That class was probably the most fun of any I have ever had. I used to spend countless hours outside of school toiling away in the shop desgining, building, testing, and refining designs. Not because I had to, but because I WANTED to. Give the students a challenge and give them freedom to solve it. Even if the challenge is far beyond the realm of possibility, it will be fun trying to get as close as possible.

That’s my two cents, at least.

Mike

For the level of class you’re teaching, I’d suggest using Python, it’s way easier to develop with. No low-level junk, but maybe you want to teach them that. Anyway, I was able to get my servo controller working with a console program in just about 10 lines of code (using PyServo libraries). And a GUI application using PyGame in about 2-4 hours.

Feel free to contact me directly if you want any more info.

Oops, one more thing. Speaking from experience, it is a pain to use a “console” program to run a computer arm, or at least to develop the software to run the arm due to the amount of visual and tactile feedback needed since you need to constantly type and retype the same command over and over to get an arm into the position you want. Just a thought. I’d get a gui program you can push buttons with as soon as possible if you want the project to be fun. :slight_smile:

For this class if you were to assume the use of a 6DOF arm and an SCC-32, would it be possible to use existing code from someone like MWGemini to produce two interface classes, one to the SCC 32 and one to the Arm

I’m thinking that the SSC-32 class would have an initialisation routine to to setup the comms and then some simple send method to tranmit data

The arm class would have a number of methods to set and get the angles from each joint. (note depending how much Java the students wanted to do they could produce this class themselves

Then the students could simply instanciate these classes adn then all they have to do is figure out the servo angles etc to get the arm to move where they want.