Jump to content

Ben Zimmer

Members
  • Posts

    71
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Ben Zimmer

  1. I am proud to announce the launch of FRCMastery.com. In 2009 we created Tip Jar Video Blogs, providing hints, tips and tricks for the FRC. In response to considerable positive feedback, we’ve taken the Tip Jar Videos a step further and created a whole new website dedicated to getting your robot up and running. I’ll be adding new content and new videos regularly throughout the competition. Because I’d like the site to be as comprehensive as possible, I’m seeking video, code and idea contributions from participants, mentors and suppliers. Please email me at ben@enabletc.com if you or your team is interested in collaborating to help all teams build better, more efficient robots. What you’ll find now at FRCMastery.com: An Introduction to LabVIEW Introduction to Dashboard Introduction to Driver Station Running code from the Driver Station LabVIEW Primer I Example Finder Opening Examples VIs: Front Panel and Block Diagrams Controls and Indicators Navigating the Project Screen Context Help SubVIs Wiring Data Flow LabVIEW Primer II Duplicating Controls, Indicators and Functions Placing Functions and SubVIs Debugging VIs Using Execution Highlighting Wiring Techniques Clusters FRC Walkthrough the Front Panel Robot Main Block Diagram Begin VI TeleOp VI Finish VI implement motors, actuators, sensors, etc… modify framework close motors, actuators, sensors, etc… State Machines Loop Memory What state machines are How to draw and interpret a basic state diagram Creating typedefs for state machine data Creating enums to store the actual state How to write state machine code using the case structures Ben Zimmer -- FRC Mastery Team __________________ Ben Zimmer email: ben@enabletc.com Phone/Fax: (905) 864-1858 Toll Free: (877) 872-4619
  2. JobTitle: Senior LabVIEW Developer Location: Milton, Ontario Description: This position entails software developmentfor the automation and test and measurement industries, along with managementof other software developers, project management and preparing quotes for newprojects. Occasional travel may berequired. Health/dental benefits andflex time are also available. Qualifications: The ideal candidate will be one who has: A minimum of 7 years of LabVIEW development experience, with a post-secondary degree or diploma in a relevant field of study. Excellent skills in communication (verbal and written) and customer relations, as well as innovation, problem-solving and creativity The ability to work in a team, but also independently Expertise in a wide variety of LabVIEW applications (database integration, test executives, process automation and control, Real-Time, FPGA, NI Test Stand, NI Vision, State Chart Tool Kit, etc…) Expertise in a wide variety of NI hardware (DAQ, DMM, Fieldpoint, Compact RIO, FPGA, etc…) Hands-on debugging experience NI certification (CLAD, CLD, CLA, CPI are all assets) AboutUs: Enable Training and Consulting is a rapidlygrowing company located just west of Toronto. We provide consulting and programmingservices to a variety of industries, but we also provide online trainingproducts and mentorship services. As ourname suggests, we are dedicated to helping our customers becomeself-sufficient. With our casual, openwork environment, we encourage the same growth and learning in our employees. To learn more about us, visit www.enabletc.com or www.lvmastery.com. Howto Apply: Please email a cover letter and resume to hr@enabletc.com.
  3. JobTitle: LabVIEW Developer Location: Milton, Ontario. Description: This position entails software developmentfor the automation and test and measurement industries. Occasional travel may be required. Health/dental benefits and flex time are alsoavailable. Qualifications: The ideal candidate will be one who has: A minimum of 2 years of LabVIEW development experience, with a post-secondary degree or diploma in a relevant field of study. Excellent skills in communication (verbal and written) and customer relations, as well as innovation, problem-solving and creativity. The ability to work in a team, but also independently. Experience with a variety of LabVIEW applications. Experience with a variety of NI hardware. Hands-on debugging experience. NI certification (CLAD, CLD, CLA, CPI are all assets). AboutUs: Enable Training and Consulting is a rapidlygrowing company located just west of Toronto. We provide consulting and programmingservices to a variety of industries, but we also provide online trainingproducts and mentorship services. As ourname suggests, we are dedicated to helping our customers becomeself-sufficient. With our casual, openwork environment, we encourage the same growth and learning in ouremployees. To learn more about us, visitwww.enabletc.com or www.lvmastery.com. Howto Apply: Please email a cover letter and resume to hr@enabletc.com.
  4. Hi Everyone, I've posted a new TipJar video, giving a summary of the FRC TipJar Videos so far, as a tour of Team 843's FRC code. Although intended primarily for FRC teams and mentors, the ideas may prove helpful to anyone working in LabVIEW. http://www.lvmastery...ipJar2009-07-02 The purpose of this video is not to teach new concepts, but to relate back to ones taught in previous Tip Jars. I discuss: The concept of robustness: good code can be easily modified, debugged, scaled to work in different situations. The Block Diagram, Begin VI, TeleOp VI, Lifter VI, Steering VI, Debugging VI, and Autonomous Independent. The uses of the “Command Signal”: initializing it, writing to it, and reading from it. The use of “Boolean trigger” to have actions take press on joystick button presses only when pressed or released. A consistent and robust approach for programming a robot function VI using a "shifter". How to create and use “Re-entrant VIs” to modularize and reuse code for identical robot subsystems in parallel. How to use the command signal architecture to create a simple autonomous VI which uses the full functionality of your robot code. All the best, Ben __________________ Ben Zimmer email: ben@enabletc.com Phone/Fax: (905) 864-1858 Toll Free: (877) 872-4619
  5. Hi Everyone, I've posted a new TipJar video, discussing the key decision: "which programming language should I use next year". http://www.lvmastery.com/TipJar2009-05-06 When I was in Atlanta, I talked to nearly every team, and I know many of you were considering switching either to LabVIEW from C++ or vice-versa. This is a webcast from a seminar I did in Atlanta, in which I discuss the LabVIEW programming language from the point of view of C++ programmers. Given that teams are now in the off-season, many teams will be training and practicing for 2010 soon. Deciding which programming language to use next year is a key decision, and in this video I talk about some of the things to consider. I discuss: * "Technology Religion", and how to teach students a 4-step process to evaluate platforms * A very short live demo introducing LabVIEW and writing actual FRC code * Continuity of tools: likely paths of programming language selection which take students through FIRST: FLL, FTC, FRC * Key differences between C++ and LabVIEW, including: the environment; parallelism and multi-threading; debugging; machine vision All the best, Ben
  6. Hey everyone, It has apparently become quite difficult to fit multiple PCI DAQ cards in one modern PC. I need a solution capable of fitting 4 PCI cards. A hardened IPC is not necessary, but if needed, I will go there. Suggestions? Thanks, Ben
  7. This Blog entry is the 12th in a series intended primarily for FIRST Robotics Competition (FRC) teams and their mentors. http://www.lvmastery.com/TipJar2009-02-10 In this blog entry, I discuss how to customize the default dashboard project. The real benefit here is the opportunity to see whatever internal robot data you want on a computer at the driver station during competition. I discuss: How to add to the Dashboard Data Typedef in the robot project How to modify the Build Dashboard Data.vi to enable or disable the default data transfer and how to save those default values How to modify the Build Dashboard Data.vi to write custom data How to modify the default Dashboard project to allow you to resize and scroll the Dashboard VI How to modify the default Dashboard project to use the same dashboard data typedef as the robot project How to create indicators to display your custom data How to replace the default logo with a custom team logo
  8. Hello All, Well, the FRC build season is down to the last week, and I've been talking to lots of teams. I know many are in great shape, and many are just getting started on their programming. So, I wanted to squeeze in as much help as I could, as quickly as possible. Check out the following 3 videos: 1. State Machines: Writing Flexible, Modular Code. Lifter Mechanism Example () In this blog entry, I discuss how to use a state machine within LabVIEW to write flexible, modular code. In this example I code and explain the state machine for a mechanical lifting system. much like what many FRC teams may use. I discuss: - What state machines are - How to draw and interpret a basic state diagram - Creating typedefs for state machine data - Creating enums to store the actual state - Storing all sensor inputs and machine outputs in the state machine data for use in debugging and/or the dashboard program - How to write the state machine code using the case structure, including how to speed up development by duplicating similar cases 2. TipJar #14 - Speeding Up Slow Tele-Op Code and How Parallel Loops Can Communicate () In this blog entry, I discuss how to speed up time-critical code by pulling it out of the Tele-Op.vi, while maintaining the ability to share data. I discuss: - The fact that there is a lot of stuff going on in TeleOp, and the main loop: can take up to 200ms to run, potentially causing robot damage if limit switches are missed - How to move the state machine created in TipJar #13 into its own deterministic, accurate, fast loop - How moving the state machine out of TeleOp causes the debugging dashboard to fail because the state data is no longer available - How to create a global variable to share the state machine data with the main loop for debugging - Race conditions: why you should never write to global variables from more than one VI - How to send info from TeleOp to the parallel loops in an easy, scalable way using a "Command Signal" global - How using a single command signal can help ensure your important code runs perfectly in TeleOp AND autonomous modes 3. TipJar #15 - Simulating and Testing: How to put your FRC code through its paces on YOUR computer. () In this blog entry, I discuss how to simulate your state machine code. The real benefit here is the opportunity to test your logic on your development PC, without needing a functioning robot. I discuss: - How to simply modify the previous state machine example for simulation - How to use a global "Simulate" boolean variable to selectively replace all Hardware inputs and outputs with front panel controls and indicators - Using case structures to "case out" WPI library calls - How to watch and debug using execution highlighting, watching the global variables and the front panel - How you must be sure to simulate all sensors, which includes things like turning off simulated limit switches when the system "moves" away from them - How to simulate the manual override mode by writing to the "Command Signal" global just like the TeleOp or Autonomous VIs would __________________ Ben Zimmer email: ben@enabletc.com Phone/Fax: (905) 864-1858 Toll Free: (877) 872-4619
  9. Hello All, We've been asked this question several times, usually by people with broken VIs, and lost code. So, I posted some of my thoughts and recommendations, and a video from a session done in Oakville Ontario this past week. Find the video here: In this blog entry, I discuss how multiple programmers can work together on the same project: Communicate! Split the tasks: dont all work on the same portion of the code Take advantage of separate SubVIs and Typedefs Make sure your files are where you think they are: files tab in project screen How to split up the Robot Typedef into separate sub-typedefs How to replace and "resynchronize" your project after changes are made Backup code by zipping the entire project directory Regards, Ben -- LVMastery.com Team
  10. I wanted to announce the release of another in our TipJar series of FRC LabVIEW Training videos. You can find it here: http://www.lvmastery.com/tipjar2009-01-26 This Blog entry is the 7th in a series intended primarily for FIRST Robotics Competiton (FRC) teams and their mentors. In this blog entry, I discuss how to create a SubVI specifically for debugging your FRC code. Minimize debugging overhead by avoiding having several VIs open, and many probes Where to put and how to create a customized debug SubVI Mechanical action of boolean controls Minimize rebuild and redeployment time by using buttons to change internal parameters in addition to viewing them All the best, Ben
  11. QUOTE (Phillip Brooks @ Jan 21 2009, 11:26 AM) Phillip, Thanks for the comment, but unfortunately that isn't an option. Luckily, not very much data is being uploaded, but I understand your point. Also, in this case, access from anywhere is required, and the IT issues of opening up a file repository to multiple locations make it impossible. Ben
  12. Hi everyone, Short version: how do you upload binary data into a MySQL blob field in such a way that it can be read by any application? Long version: I've been struggling with the problem of putting files into database BLOB fields. (MySQL and Database Connectivity Toolkit). I was initially building a query string and executing the query but was finding that certain binary characters were causing failures (end of string terminators, etc...) So, a working solution was to encode the binary string, and that worked fine, although bloated the dB a fair bit. I could decode in LV and then save the file as needed. Now, the customer wants to be able to save the files using other apps, including the MySQL Query Browser, so an encoded file is no good. I found using a parametrized query allows me to put the unencoded string into the dB, but it appends a 4-byte length at the front of the BLOB before it inserts it into the dB. Some apps ignore these 4-bytes (such as .pdf) but most do not. A related thread on NI discussion forums: http://forums.ni.com/ni/board/message?boar...ssage.id=354361 has no solution, and my support ticket at NI has been ongoing without answer for a while. Thanks, Ben
  13. I wanted to announce the release of another in our TipJar series of FRC LabVIEW Training videos. You can find it here: http://www.lvmastery.com/tipjar2009-01-18 This Blog entry is the sixth in a series intended primarily for FIRST Robotics Competiton (FRC) teams and their mentors. In this blog entry, I discuss how to write scalable, modular code, and also talk a bit about wiring techniques and style: - Nesting typedefs - Creating reusable SubVIs - Wire selection using single-, double-, and triple-clicking - Wiring techniques which put the wires where you want them, the first time And for FRC Team members, mentors, teachers and parents only: I also wanted to announce in celebration of Competition Kickoff, a LabVIEW training giveaway. We will be randomly selecting 2 winners each week from entries received via this link: http://www.lvmastery.com/FRCGiveaway All the best, Ben
  14. QUOTE (Tomi Maila @ Jan 6 2009, 12:56 AM) Tomi: Strange, www.usfirst.org seems down, but http://usfirst.org/default.aspx works. They are welcome to try, but I think we should look at another solution in the short term. We're not officially affiliated with FIRST, but my guess is that this is too late in the season to get hooked up as a sponsor. FIRST might go for it next year. Further, I would also argue to the hosting company that doing it this year would give them excellent exposure to up to 1700 teams each with at least 3-4 industrial mentors. Let them do the math. Nancy: I was going to dedicate some resources to this, but if you can do it that would be better. **grin**. Ben
  15. QUOTE (Tomi Maila @ Jan 3 2009, 02:33 PM) Tomi, Thanks for the suggestion. Would anyone out there (Tomi!!) be willing to donate a bit of their time to write up a quick step-by-step for high school kids to setup SCC with free hosting for LabVIEW? It doesn't have to be simplified or by any means dumbed-down, just complete. I would be happy to create a video blog based on that document, and link back to the originator's site/blog/company, if you would like. Thanks, Ben
  16. Hey SCC Gurus! I keep getting this question, and I'm not sure of the answer. So you have any suggestions for FRC-appropriate SCC software? Key requirements: - FREE - easy to setup - easy to use - yes, that's all! Ben
  17. Hello All, I wanted to announce the release of another in our TipJar series of FRC LabVIEW Training videos. You can find it here: http://www.lvmastery.com/TipJar2009-01-02 In this blog entry, I touch on: - How the Basic framework launches and shuts down the Autonomous Independent.vi - How to modify the Robot Global.vi to allow your autonomous code to access input and output devices - Error chaining to ensure sequential behavior - The Watchdog timer And for FRC Team members, mentors, teachers and parents only: I also wanted to announce in celebration of Competition Kickoff, a LabVIEW training giveaway. We will be randomly selecting 6 winners from entries received via this link. All the best, Ben
  18. Hey All, I just posted a new entry on our LabVIEW Tip Jar Video Blog. Excerpt: QUOTE Click here to see the full article Regards, Ben
  19. Hey All, I just posted a new entry on our LabVIEW Tip Jar Video Blog. Excerpt: QUOTE Click here to see the full article. Regards, Ben
  20. QUOTE (hfettig @ Oct 28 2008, 10:45 AM) Heiko, I did get some info from Karen at FIRST Robotics Canada (listed here: http://www.firstroboticscanada.org/site/contact) but I actually got hooked up with my team (White Oaks in Oakville) by calling the school directly. You won't believe how happy you will make the team by helping out. For most teams, it is the programming which has been their biggest challenge in past years, and the "new LabVIEW thing" has many teams concerned. Ben
  21. I'm totally amazed at how quickly a group of 13 - 15 year olds I am mentoring are picking up and enjoying LabVIEW. Yesterday, I had one student who was doing some experimenting on his own ask me about shift registers. I said one word: memory, and he got it. I started to whip up an incrementing while loop example, and he got it before I was finished. Then I removed the SR and left the zero constant outside the loop and the increment inside the loop and asked what the output would be. "Oh, that would always be one." Same experience with the "why doesn't the graph update until the loop is finished?" question. I've taught many adults and countless college students who took MUCH longer to get it. Anyone having similar experiences? Do you think kids whose minds are unfettered with expectations, and programming experience are predisposed to get it faster than adults? I've been volunteering 2 hours a week, and I have to tell you that it is the highlight of my week! (And the competition is still two months away.)
  22. Hello Everyone, I hope you are all aware that NI and the FIRST robotics competition have provided a great opportunity for literally thousands of High School kids to get started with robotics, and LabVIEW. **start of plea for your time** I would like to personally recommend to anyone who will listen that they should get out there and volunteer for their local team as a mentor. None of these kids will have ever seen LabVIEW before, and a little bit of your time can really help a lot. I've been mentoring at one of my local schools and I'm honestly a bit shocked at how quickly they pick up LabVIEW. It is tremendously rewarding, and the competition is still more than 2 months away! **end** **start of sales pitch:** We have decided to offer our online training to any mentor, parent, or teacher of a FIRST-participating school at a great academic discount. For each such seat purchased, we will donate a seat to your team. Please visit www.lvmastery.com/first for more information. **end** Regards, Ben
  23. Hey All, I just posted a new entry on our LabVIEW Tip Jar Video Blog. Excerpt: QUOTE Click here to see the full article. Regards, Ben
  24. QUOTE (mstoeger @ Sep 18 2008, 04:02 AM) Martin, This is one of my favourite questions! I deal with this as a critical portion of our LabVIEW training material, and my favorite solution is to build a circular buffer storage mechanism with a functional global. This is a bit of an advanced notion, but is a great solution to the question: how to acquire "essentially" forever. Once you wrap your mind around how to do this, I'd wager you use the circular buffer over and over in all of your projects. I know I do. There's a snippet of the concept here: All the best, Ben
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.