|
|
|
![]() |
|
|||||||
|
||||||||
![]() |
|
|
Thread Tools | Rate Thread | Display Modes |
|
|
|
#1
|
|||
|
|||
|
FRC Primer for Programmers
As my summer project, I am going to create a power point presentation to train new programmers. Note: I am not trying to teach them Java or C++.
A rough outline is something like this: 1) Overview of the Game Autonomous2) Overview of the Hardware RoboRio3) Overview of FMS Robot Init4) RoboRio I/O PWM5) RobioRio/Driver Station interaction D/S is like the keyboard/monitor, roborio is the computer6) Structure of our code 7) Joysticks x box controller8) Motor controllers ramping up acceleration9) Sensors 10) WPI Lib 11) compiling and deploying code 12) Networking details 10.TE.AM.xxOutlines, slides, docs, would be appreciated. |
|
#2
|
||||
|
||||
|
Re: FRC Primer for Programmers
Where do state machines and parallel processing fit into your outline? These are areas where many new programmers struggle mightily.
|
|
#3
|
|||
|
|||
|
Re: FRC Primer for Programmers
I made bunch of documentation to train new programmers for the recycle rush competition. Most of it focused on teaching java, but there are some bits on stuff like setting up a radio and whatnot. Most of it is still on our trello board that we no longer use if you want to look through it.
|
|
#4
|
||||
|
||||
|
Re: FRC Primer for Programmers
could you also touch on P.I.D's?
|
|
#5
|
||||
|
||||
|
Re: FRC Primer for Programmers
Sounds like a great idea. I've done something vaguely similar (though, it needs to be expanded) for RobotPy. Check out my anatomy of a robot page.
|
|
#6
|
|||
|
|||
|
Re: FRC Primer for Programmers
I'll be interested in watching the progress of this as well!
|
|
#7
|
|||
|
|||
|
Re: FRC Primer for Programmers
Personally, I would also throw in a bit about version control, network tables, and logging.
|
|
#8
|
|||
|
|||
|
Re: FRC Primer for Programmers
I'd be really interested to see the powerpoint when you are finished!
|
|
#9
|
|||
|
|||
|
Re: FRC Primer for Programmers
If you're up for it, I've wanted to make YouTube videos for this stuff for a long time now. Maybe we could correspond in writing material then I can make videos explaining everything? Please PM me if you're interested. Thanks.
|
|
#10
|
|||
|
|||
|
Re: FRC Primer for Programmers
Is there anything like this already for java out there other than what's on the wpilib site?
Last edited by WSiggs : 27-05-2016 at 10:03. |
|
#11
|
||||
|
||||
|
Re: FRC Primer for Programmers
Quote:
Its cool to teach them everything (though most of it isn't really necessary, just interesting to some), but get them interested first. If they signed up for "learning to program" maybe programming should be in the first few topics. None of this is going to have any context until they start writing code anyways, so why not start with code? Quote:
They're not starting Computer Engineering. They don't need to know the networking layer right now, or how the FPGA in the roboRIO works... It's cool and useful eventually, but you're just going to scare away anyone who doesn't think they're smart enough. |
|
#12
|
||||
|
||||
|
Re: FRC Primer for Programmers
Quote:
Learning about the hardware in the robot is important. We're not building desktop applications here, we're building applications that make a robot run. Students are learning to program for an embedded system, and with that comes some limitations and gotchas that don't come with regular programming lessons. For this reason I think (2) should be included. FMS -> If your robot is dead on the field, your electrical and programming teams will be the first port of call. Most of FMS is a black box, but things like Periodic and Iterative functions are important as they're important for the control of your robot. I've taught FRC software classes before, and I've had many students come up to me and as "wait, so why do we run the same code over and over again? Can't we just put it in init and it will work?". Students need to understand how states in the robot work, otherwise their code is just plain not going to work. If you look at any child of the RobotBase class, you'll see the words "{state}Init" and "{state}Periodic" pop up very commonly. This grants (3) a pass in my book. (12), Network Details. Robots don't always work, especially when they're on the field with 6 other robots. While this isn't as important as the other topics, and maybe shouldn't be included in the general, introductory course (sorry op), I think it has a place in more advanced classes maybe later in the pre-season. I'd have to agree that it doesn't belong in the 'primer' course. NetworkTables. I'd recommend swapping this out for SmartDashboard in the primer, since most of the time (unless your programmers have spare time), you won't be dealing with your own network data transport. I'd have to agree that this doesn't belong in the primer, either. When you're providing a primer course to students, you're setting the foundation for what they'll do later on, when they start to get more in depth and more advanced. Unfortunately in FIRST, a lot of the code resources are just examples without any real explanation, which places some programmers into bad practices, or in the horrible state of knowing but not understanding. Understand first, execute second. Not the other way around. ~Jaci |
|
#13
|
||||
|
||||
|
Re: FRC Primer for Programmers
cut for length: I do agree that a lot can be useful, and you brought up some points I didn't think about. My suggestion OP is that you reorder your topics. Start with what gets them hooked: writing a program, making a robot drive. Expand from there. Focus on whats the most relevant to making a robot move and work your way out. Save advanced topics for advanced students. No one starts out robot design with stress analysis and motor-curves. Programming is already scary and daunting for some students. Don't push them out by making it harder/more complex than it needs to be. |
|
#14
|
|||
|
|||
|
Re: FRC Primer for Programmers
Quote:
Deploying code is at the end because that is the last thing you do. The idea is: when something happens, and the programmers start looking at ip addresses, they have a context on what is being debugged. As they gain experience, when something goes wrong, they have some idea where to start looking. Last edited by rich2202 : 28-05-2016 at 07:59. |
|
#15
|
||||
|
||||
|
Re: FRC Primer for Programmers
Quote:
Just my $0.02 as a student in the middle of many years of lectures. |
![]() |
| Thread Tools | |
| Display Modes | Rate This Thread |
|
|