Introduction to practical electronics, microcontrollers and software design