[Back to Home Page]

www.RomanBlack.com

Book Review
PIC Microcontrollers, 50 Projects for Beginners and Experts - Bert van Dam - Reviewed 2nd July 2009





About the book

'PIC Microcontrollers 50 Projects for Beginner and Experts' by Bert van Dam is a book that explains how to use PIC micros to build 50 different projects. First published in 2007 in Dutch it was then translated into a number of languages including English.

The author contacted me a couple of years back and asked about using my BTc (Binary time constant PIC sound playback algorithm) in a book he was writing, which of course was fine by me, and I was delighted recently when the English translation of the book became available and Bert set me a copy.




Firstly, the mistake!

Bert covers the BTc sound encoding on pages 203-221. However there is fairly serious mistake in Bert's BTc encoding algorithm on page 206, Section 1. He scales the original sound waveform at 100%, so that the 8bit sound data (0-255) is scaled to 0v-5v.

I must accept some blame for this! As my web page in 2006 only covered the encoding algorithm in a fairly sketchy fashion and I failed to specify the entire encoding process in detail. At the time I simply assumed that anyone using BTc encoding would just use my free BTc Encoder Windows software to do the encoding, however Bert added BTc encoding to his own suite of software that was to be provided free with the book.

The correct BTc encoding algorithm requires that the original sound wave is first reduced in amplitude to fit totally within 50% of the full range. This is an critical step that provides 2 important benefits;
  • The exponential curve of the encoded wavform is much flatter and easier to model accurately when it is in the middle 50% of the range.
  • The BTc encoded waveform will sometimes 'overshoot' the original waveform, so it is vital to have some spare 'overhead' to contain the overshoot without distortion.


    Two 'workarounds' to fix the mistake

    Workaround 1. Simply use my free BTc Sound encoder software to do the encoding instead of Bert's encoding software.

    Workaround 2. To use Bert's WAVconvert software you can first reduce the sound amplitude (sound volume) to 50%, using any free Windows wave editing software like Audacity or CoolWave etc. These programs allow you to reduce the 'volume' of the sound to 50% as required, and they also keep the sound in the centre of the waveform, which is also required. See the picture; top wave is speech at 100% volume, bottom wave was converted in Audacity to "-3.0 dB amplification" or to the required 50% volume.



    Using either of these two workarounds will enable the BTc sound to properly model the original sound waveform and will give much better playback quality.




    Now to review the book!

    Overall. Wow! This book is comprehensive. Although the book title states "for Beginners and Experts" I expect you will BE an expert by the time you have completed the projects.

    Style. This book is a very nice blend of hobby style "how to build stuff" and a more professional reference or textbook style. References are clearly listed at the bottom of each page so you can do further research. The book itself IS a reference in that it contains schematics, code examples, IC pinouts, etc. However the friendly hobby style is not compromised. You can flip the book open anywhere and see simple easy diagrams and descriptions, ready to start hands-on playing with PICs.

    Comprehensiveness. Probably the most obvious feature of the book, it covers just about everything you need to really take control of PIC micros. Even topics that were proviously in the "expert only" category like; ultrasonic ranging, DC motor closed loop speed control, recording sound, using text LCD, external eeprom with i2c, infrared serial comms, etc are brought firmly into the "you can do it" category with simple but detailed explanations and clear schematics, diagrams and code examples. This book really covers it all including PC comms, tons of sensor types, PIC to PIC comms, clocks, debugging, motor and lighting PWM, scrolling displays... The list goes on and on.

    Ease of use. Good marks here too. The book starts off with the very basics and progresses in a logical fashion to more complex projects that each introduce new hardware and how to connect that hardware to a PIC. Alongside each project's schematic there is a clear photo showing that circuit plugged into a hobby style breadboard. This gives excellent ease of use, and further adaptability as once the reader has the project assembled and working they can change/add parts on the plug in breadboard to see what happens.

    Every project has a simple easy to understand schematic;



    Clear photos show how to connect each project on the breadboard;



    But as a first book for beginners? I don't think this is the best book for absolute PIC beginners. Despite the author clearly covering PIC basics at the start of the book, there are many other "PIC beginner" books that are more gentle and use a lot more pages gradually introducing the concept of microcontrollers and what other simple electronic parts are etc. Maybe for an ADULT beginner who can read well and has a basic knowlege of electronics, this would be a suitable first book. However I won't criticise Bert for making this decision, for the same fact that there are so many PIC beginner books it would have been a waste to "dumb down" this book, when the pages could (and were) utilised much better to provide a wealth of excellent projects that are not found in other simpler books. If you were only ever to buy ONE PIC book, make it this one.

    Value for money. Well since I didn't pay for my copy of the book this may not be a fair evaluation, but if I evalutate the book on amount of content it is excellent. Almost 450 pages, crammed full with small print and tons of diagrams. Not like some books that have 200 pages and big print and huge white margins to fill up space... Value in terms of the quality of content is also very high. It doesn't miss anything that you need, and it doesn't cover silly things that are obsolete or that nobody wants to know. The things that are covered have been covered well, I don't think you will need to go reaching for the internet too often when working through the projects. There is additonal value for money provided in the many PC tools also provided to support to the book and allow you to connect your PIC project to your PC. I have to give it an excellent mark for value.

    Clear diagrams show how to use the many free PC support software tools provided;



    The code. The examples in the book are in a popular PIC language called JAL (Just Another Language!) a free and well supported PIC language created by Wouter van Ooijen. It is a simple easy to use language which is basically a simplified version of the very popular language C. The code examples are short and easy to understand. Where the code for a project is a little longer, the author explains it first in simple "snippets" of code, then connects all the pieces at the end of the project to complete it. This is very well done. If the reader is already a C user, the JAL code is very easily converted to C. Otherwise JAL looks to be a good functional first language for a beginner to learn, and the reader will find it easy to move on to C language at a later date (if they choose).

    Even someone with no coding experience will find it easy to understand JAL code snippets like this (which toggles a LED on/off whenever the switch is pressed);

    if switch then
      led = ! led
    end if


    Faults of the book. Well there are not many. It's one great fault is that it is really too comprehensive! With so many cool projects using so many peripheral devices it might be a little overwhelming at first, although that is generally negated by the logical practical style of the book which progresses in difficulty as the reader completes each new project.

    I think a more descriptive title may have been '50 Projects from Intermediate to Expert' as the book is a little heavy for an ABSOLUTE beginner, especially of school age.

    The breadboard pictures (showing how to connect parts) are an excellent concept, but they are a little small and can be difficut to see well. On many pages there is room to have enlarged the pictures 20% or 30% which I think would have been well worth it.

    The Contents page is well written and in logical sequence, but does not explain the full scope of the projects. Project names are very simple and do not do justice to the projects, for example; 5.2 Dark activated switch, 8.4 Tilt sensor. I think it would have been a good idea to add a one sentence description under each project title stating what peripherals/sensors etc are used in that project. This would be well worth the extra 2 or 3 pages required for a larger contents section.




    Summary

    Well to be honest I WANTED to like this book, because I knew Bert had included some of my work. But when I received the book one glance made it very obvious that any personal desires were completely irrelevant.

    The book stands squarely on its own two well grounded feet. It is massive in content, truly a step above most PIC books. Everything is clearly explained. If you want to "really get you teeth into" PICs this is the one book you need.



    The book can be purchased from the publishers; Elektor Magazine



    And is also available from Amazon.com


    - end -

    [Back to Home Page]