Microcontrollers Fundamentals for Engineers and Scientists