![]() |
Teaching "C" to 2006 students??
1 Attachment(s)
Hi,
To programming mentors and senior student programmers. The nationals are next week. After that, thought must be given again by team 342 to developing newbie programmers into "Autonomous Programming Wizards" for 2006. Once more, we are losing our experienced "C" programmer to college. Now, this seems to be a major issue for lots of teams since I see a whole lot of mentors programming their teams' robots. Many mentors don't have students with a programming interest nor the time to invest in training them. Sooo... I would like software that allows the student to write legal autonomous "C" code and to test it with a 'virtual robot'. The program would be friendly to the newbie programmer and not intimidating. I want them to be able to open and run sample programs as well as writing and saving their own examples. They could take this home. It would include a "C" programming tutorial and "Autonomous" tutorial so they could self-study. Further, it would be cool if this program could be made available to all teams for free that needed it. The objective of this software is that the students could practice during the year at home or school. They could then sit in front of MPLAB with the 2006 default code, jump over to user_routines_fast.c and begin developing autonomous code to meet the teams requirements (with a little help from these forums and their mentors). Is there anything like this that is immediately available for the students? Would you like to use this if it was available? I am working on such a project but would like to get some encouraging feedback before I get much farther along. Attached is a simple screenshot showing what I have done. The gobbledegook in the bottom blue window is an intermediate virtual code to run the 26 mSec engine. The robot isn't doing anything yet. Regards, ChuckB |
Re: Teaching "C" to 2006 students??
That would be great, especially for teams like 1504, who don't have any mentors who know C enough to teach it.
|
Re: Teaching "C" to 2006 students??
I have to tell you, this is a GREAT idea.
Our team had several students who wanted to help write code at the start of the season. Unfortunately, only a couple had done any C programming before and that meant that I had to teach programming if any of them were going to actually write code. We ended up having the students do design of the autonomous, and the couple that knew C assisted me in the writing of the code. It would be wonderful if next year we had students who had used a 'simulator' to try out different things with the autonomous mode and had some experience with C as well. Please continue on with this great project. I'll be at the Championship Event in 364's pit if you'd like to chat, or I will stop by your pit to see how the project is coming along and just say "Hi". See You Next Week! |
Re: Teaching "C" to 2006 students??
Quote:
|
Re: Teaching "C" to 2006 students??
Looks nifty. I've thought about doing something like this before, but never got around to it... :)
|
Re: Teaching "C" to 2006 students??
It sounds like a great idea. Currently I have a "Teach your self C" book in my backpack I'm trying to get through so I can help our programmer next year and do some programing also. I find my self going a bit slow because I can't test some of the things I would like, I would definitely make use of your program if you completed and released it.
|
Re: Teaching "C" to 2006 students??
I recommend the EduBot, it's what I learned C on (it was fairly easy to pick up since I already knew PHP)
Within minutes you can have the edubot driving straight, and then dive into doing some dead reckoning, and if your team has a banner sensor lying around maybe some line tracking? |
Re: Teaching "C" to 2006 students??
I think you should use the EduBot and the emulator in tandem. Back in 2003 our robot's fabrication was quite extensive. We were doing a crab drive for the first time. We used RoboEmu to test algorithms and sequence and then tested the code on the EduBot. When the time came to download the code into the robot it mainly was a matter of tweaking constants. Without RoboEmu and the EduBot I don't think we would have been successful. The EduBot(Robovation) is great because it is mainly autonomous. It helps programmers anticipate mechanical issues, like not driving straight. We are planning on spending all summer rewriting existing code in all our robots as teaching tool for the students since our only student programmer is also graduating. I hope you have success with your project, but take the time to look at RoboEmu2.
|
Re: Teaching "C" to 2006 students??
As an experienced programmer, I think that while that is a good idea, too much is dependant on the actual robot to really give new programmers a decent idea- the PWMSs are different for different robots, I don't think they should have to modify the alaiases file, and using constants for the wheel PWMS would mean that they had their drive in one specified meathod of coding.
In order for this to really work, it would have to have detailed robot input output values, convert the C to assembley, and simulate that. I don't think the simple thing you have going is a great idea for a generalization, as I think the code should shape the ideas of the programmer, and not the ideas shaping to the specific way you have your simluator working... I do think the project has potential if it's being designed for a specifc robot, you integrate the C compiler (not hard, it runhs at command line), and then use write a disassembly/simulator program which passes data to a simulator... [edit- spelling errors.] |
Re: Teaching "C" to 2006 students??
That's funny, I was talking with someone on MSN about the potential of a program like this right before I saw this thread.
What I'm doing for the next year's programmers as a project is making an electrical board for a robot fully equipped with motors, encoders, a gyroscope, the camera, and pneumatics along with a reference manual to use as a guide to programming the robot and learning many problem-solving methods I used over the past season. I already had a "practice board" that I used to test code, but I was always modifying it for whatever I was working on at the moment. It's not a robot simulator, but my goal with it is to have someone who hasn't programmed before be able to have something very hands-on to work with and pick up programming fairly easily. |
Re: Teaching "C" to 2006 students??
This is such a great idea. I've been struggling to teach C to 2006 students, because of the dependency on the robot. We had a hard time getting the electrical board (similar to what neilster mentioned) set up this year, and cut into major time. It's a great project, but we had started way too late, and electrical people kept on stealing stuff off of it. :rolleyes: Our mentee teams would greatly benefit from this too.. especially rookie teams. :thumbs up for taking the time to do this:
Please keep us updated on such software. |
Re: Teaching "C" to 2006 students??
We use the Robovation kits for teaching C and autonomous robot programming. The programming environment is identical to the the FRC controller (with a few minor exceptions). We've used it to prototype algorithms and then just move the code to the FRC robot. For example we have a "baby" four wheel omni-drive system with made from a Robovation kit running the same code as our full-sized robot. We did the small version as a proof of concept and it worked great.
Now for a shameless plug for some other stuff that we're doing... To make programming easier I developed a framework that lets you quickly write complex autonomous programs with inexpensive "hobby-robotics" sensors. All "user" code is (usually) in a single file and "device drivers" can be installed that request services from the framework like timers and interrupts. I also removed the concept of the fast-code/slow code, and explicit getdata and putdata. We used it with several Robovation tournaments and classes run at WPI with hundreds with students and it works great. I'm giving a presentation about the framework at the conference in Atlanta on Saturday and probably putting up the code on line somewhere right after that. (need to make sure it's cleaned up for release). I'm hoping to port the code to the FRC and VEX controllers before next season. Incidentally, we're running a two week summer high school robotics resident program at WPI. Students learn C programming and mechanical design on the VEX and FRC robots that ends in a VEX tournament between student teams with robots that they build. If you might be interested, here's the link (look at the bottom of the page): http://www.admissions.wpi.edu/Frontiers/study.html Brad |
Re: Teaching "C" to 2006 students??
That's a great idea. Last year, we wanted to make a tutorial series for all aspects of the robot, including programming. We wanted to have an interactive website for all the parts. We wanted to have a Javascript program to "compile" C programs (not necessarly for the robot) that could do simple things like printf and stuff. But we didn't have the time/desire to contenue. I think an interactive "compiler" that didn't really make programs is a good idea.
|
Re: Teaching "C" to 2006 students??
Great feedback!
During competitions over the past two years I have met a lot of teams that have very, very small budgets. These teams might not have the resources to buy the various programmable kits above. By all means they are wonderful to use and good for teaching programming. For the hundreds of teams and potentially thousands of students and mentors with shoestring budgets, I am interested in a free teaching tool that translates the autonomous code into virtual robot actions. I like the idea of the student constructing his or her virtual robot: i.e. adding various sensors. The fields could be constructed with obstacles, boundaries and lines to track. I'll let you know if I can't write this program. The hardest thing is to write a routine that translates legal "C" source code into an assembly type language that can be processed every 26 mSec. I have made significant progress in this. If this works then the restof the programming problem shouldn't be a problem. I can work with OpenGL in VB6 pretty good...maybe we can make a 3D bot. ;-) Thanks and regards, ChuckB |
Re: Teaching "C" to 2006 students??
Quote:
a) contributors to this effort (and from the responses on this thread, I can tell that there are loads of qualified contributors!); and b) those schools who will use this to help teach students about C and robotic control Jon Mittelman Programming Mentor Team 236 |
| All times are GMT -5. The time now is 08:00. |
Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi