TinyML essentials and modern challenges