In a previous post, I mentioned that I was going through Michael Gasperi's book LabVIEW for LEGO MINDSTORMS NXT. I just finished it, and I thought that I would share my take on the tutorial.
As I have read and gone through a few technical tutorials, I realized that it is extremely difficult to present technical information in a way that keeps the reader's interest and attention while exciting him with new concepts or ideas. I have read books concerning three different programming languages (NXT-G, ROBOLAB, and LabVIEW,) and have found that, while the programming languages are different and unique from each other, the basic information and exercises are the same, causing the various tutorials to seem to blur together. this book did an outstanding job of keeping my interest while presenting the information in a new and creative way.
Do you remember the frustration you felt in school when you were learning sentence diagramming or algebra, and you asked the teacher why you needed to learn it, only to find that your teacher could not give you an answer? In this book, one of the best things the author did was to give the reader a roadmap. At the beginning and end of every chapter, Gasperi outlines what he is planning to show you next. He constantly reviews what the reader had learned previously, and ties it in with what he is currently teaching. I have seen a few tutorials where the author teaches you everything you need to know before introducing a programming exercise, but in an interesting twist, Gasperi alternates between that method and introducing the exercise first to excite the reader about what he is about to learn.
Gasperi caught my attention in the introduction of every chapter with a thought provoking or sometimes funny quote that aroused my curiosity in the subject. For instance, at the beginning of chapter four when we were learning how to program the robot to make decisions (e.g. case structures and Booleans), he opened the chapter with this quote by Napoleon, "Nothing is more difficult, and therefore more precious, than to be able to decide."
The exercises in this book ranged from the traditional line following program to more intricate programs. For example, in one exercise, we learned how to use different sensors to record a day of activity in a mouse cage. These activities included measuring the cage temperature, sound level, light level, and the angle of the running wheel. We also learned how to program the computer to graph the results obtained by these sensors for easy reading. In an earlier exercise while learning about arrays (which are ways for the computer/robot to store information), Gasperi had us program the robot to play a song based on the information stored in the array.
One of my favorite robot tutorials is Eric Wang's Engineering with LEGO Bricks and ROBOLAB. I love the way that Wang introduces the information in more or less of an encyclopedic setting while still providing great programming exercises along with tips and tricks for the reader. Gasperi also uses this format in the back of his book to make it easy for the reader to quickly flip to this section instead of hunting throughout the entire book for information.
Unfortunately, I cannot entirely sing the praises of this book. In the preface, Gasperi explains that this tutorial is targeting the reader who is "comfortable with the NXT-G language and the development environment that came with the set and [is] interested in exploring more advanced programming techniques." If this statement describes you then I highly recommend adding this book to your personal library. Gasperi explains programming in LabVIEW clearly and does a wonderful job defining any technical terms. He provides clear examples of how to use the various "blocks" or programming commands and gives outstanding ideas of ways you can use it for other programs.
However, at the end of the preface, Gasperi redefines who the target reader is for this book when he says, "This book is intended to take someone with little programming and absolutely no LabVIEW experience to the point where they can write sophisticated programs for the NXT...It would be helpful if you were comfortable with NXT-G before starting this book if only because it shares some of the same programming techniques. However, I don't dwell on NXT-G and you will do just fine even if you've only casually played with it." Although I have been programming LEGO robots for nine years and have competed in FIRST LEGO league for six of those years, because of the requirements and time limits of the competitions, I never had the chance to learn about arrays, Boolean logic, data logging, clusters, binaries, or other more advanced programming techniques. I found that after chapter four, I felt confused and a little frustrated. I wished that the author would take more time to explain the concepts. I finally got to the point where I was so frustrated, that I restarted the book - this time only reading through it instead of going through all of the exercises. Things began to make a little more sense and I felt less pressure if I did not completely understand a concept.
It is my understanding that the NXT toolkit for LabVIEW was designed for high school students competing in various FIRST competitions. If that is the case, the restrictions of the LEGO League competitions have not introduced many of these programming concepts to the students. I also understand that the author is planning to write a new version of this book. I would love to see him target the students relatively new to programming as well as LabVIEW.
Discussion/Comments (2):
Hello. LabVIEW became quickly a very powerful programming language, having some peculiar characteristics which made it unique: the simplicity in creating very effective Users Interfaces and the G programming mode. While the former allows designing very professional controls panels and whole Applications, completed with features for distributing and installing them, the latter represents an innovative and enthusiastic way of programming: the Graphical representation of the code. LabVIEW can be used in a variety of forms, creating projects that can spread over an enormous field of applications: from control and monitor software to data treatment and archiving; from modeling to instruments controls; from real time programming to advanced analysis tools with very powerful mathematical algorithms ready to use; from full integration with native hardware I found one great NEW book “Labview - Modeling, Programming and Simulations” You can read it on online reading platform or just download it for free here: { Link } In this book a collection of different applications which cover a wide range of possibilities is presented. Cheers!
Posted at 01/27/2011 2:04:17 byJosh
Discussion for this entry is now closed.