Introduction to Embedded Systems Using ANSI C and the Arduino Development Environment By David Russell