Je déterre un peu ce sujet, qui a reçu une solution, mais je pense que ça mérite une explication plus détaillée
Le L293D est un contrôleur moteur prévu pour fonctionner avec une tension d'entrée d'au moins 4.5V (voir ici pour des explications plus poussées sur le L293D dans ce tuto en français, ou encore la datasheet, en anglais).
Une discussion plus poussée à eu lieu sur ce sujet du forum sur la conception générale du robot, et ce billet précisément traite du choix du contrôleur de moteurs, avec une comparaison entre le L293D (le plus basique), le SN754410 (comparable, en plus puissant) et le DRV8835 (bien mieux).
Que ce soit avec le L293D et le SN755410, on aura des difficultés avec l'alimentation depuis une batterie lithium ion, dont la tension nominale de 3.7V variera entre 3 et 4.2V, alors même que les moteurs branchés directement sur la batterie tournent parfaitement.
le DRV8835 en revanche fonctionnera parfaitement dans ce contexte, tout en permettant de contrôler un courant plus élevé, et en utilisant moins de GPIO.
La solution du régulateur de tension est une solution fonctionnelle, certes, mais pas optimale si l'autonomie est importante. Pourquoi? parceque le régulateur (même si celui ci est très efficace selon les données affichées) n'est pas parfait, et gaspille une partie de l'énergie dans la conversion, réduisant d'autant l'autonomie de la batterie. La fiche annonce ici 94% d'efficacité maximale, mais il faut savoir que ce n'est valable que dans une région bien précise de la courbe de courant du composant. Un exemple avec un bon convertisseur step up :

On peut voir ici que selon la tension d'entrée, l'efficacité maximale sera obtenue pour un courant bien spécifique, dans une plage restreinte. Au mieux, nous obtenons environ 92%, mais on peut facilement perdre 10% d'efficacité à 3.3V ici, et bien plus avec d'autres tensions d'entrée.
L'efficacité est primordiale, puisqu'elle impacte directement la durée de fonctionnement du dispositif. Sans la courbe de tension, difficile de dire précisément l'autonomie perdue ici... Au mieux, on perd 6% de l'autonomie effective pour les moteurs, et plus probablement entre 10 et 15% selon leur consommation.
Dans ce billet, j'utilise un convertisseur step-up pour alimenter un raspberry pi depuis une batterie lipo, et je présente davantage de détails sur le calcul de l'autonomie effective.
En résumé :
- Le L293D ne peut pas fonctionner efficacement avec moins de 4.5V comme tension d'entrée;
- le régulateur step up permet de corriger le problème, mais en contrepartie d'une autonomie diminuée;
- un composant comme le DRV8835 permet de commander les moteurs depuis la tension d'une batterie lipo une cellule (3.7v).
Au passage : l'efficacité variera également selon la charge des moteurs. Si le moteur ne force pas, il consomme peu, et plus il force, plus il consomme. Du coup on peut se retrouver dans la plage "basse consommation" du moteur, et donc avec une faible efficacité du convertisseur de tension.
Deuxième remarque : il peut être bien de rajouter un condensateur autour de l'alimentation de l'électronique de commande, car quand les moteurs tirent du courant soudainement, ça cause une baisse brutale de tension. Une solution serait d'ajouter ce condensateur et pourquoi pas un convertisseur de tension efficace. La consommation faible de l'électronique de commande entraîne une perte faible due au convertisseur.
Dans le cas d'un Arduino, on peut carrément bypasser le régulateur linéaire 5V inéficace et passer par un bon régulateur de type switching 