Faits :
A.
Par jugement du 3 février 2016, le Tribunal de police de l'arrondissement de Lausanne a condamné X._ pour violation d'une obligation d'entretien à une peine pécuniaire de 40 jours-amende, le montant du jour-amende étant fixé à 40 fr., avec sursis pendant deux ans, ainsi qu'à une amende de 400 fr., la peine privative de liberté de substitution étant arrêtée à dix jours.
B.
En date du 1er juin 2016, la Cour d'appel pénale du Tribunal cantonal du canton de Vaud a rejeté l'appel formé par X._ et confirmé le jugement rendu par le Tribunal de police de l'arrondissement de Lausanne.
En substance, elle a retenu les faits suivants:
Du 1er septembre 2014 au 28 février 2015, X._ a omis de payer les contributions qu'il devait pour l'entretien de son épouse et de ses enfants en vertu d'un arrêt définitif et exécutoire du juge délégué de la Cour d'appel civile du Tribunal cantonal vaudois du 14 août 2014 et ce, à concurrence de 28'500 francs.
C.
Contre ce dernier jugement, X._ forme un recours en matière pénale devant le Tribunal fédéral. Il conclut, avec suite de frais et dépens, principalement à son acquittement et, subsidiairement, à l'annulation du jugement avec renvoi de la cause à la cour cantonale pour nouvelle décision dans le sens des considérants. Il interjette également un recours constitutionnel subsidiaire en prenant les mêmes conclusions. Il sollicite en outre l'octroi de l'assistance judiciaire.
Considérant en droit :
1.
Le jugement attaqué a été rendu, en dernière instance cantonale, dans une cause de droit pénal. Il peut donc faire l'objet d'un recours en matière pénale au sens des art. 78 ss LTF, de sorte que le recours constitutionnel subsidiaire est exclu (art. 113 LTF).
2.
Le recourant invoque l'arbitraire dans l'appréciation des preuves et l'établissement des faits. Il estime que l'autorité cantonale a évalué arbitrairement sa situation financière.
2.1. Le Tribunal fédéral n'est pas une autorité d'appel, auprès de laquelle les faits pourraient être rediscutés librement. Il est lié par les constatations de fait de la décision entreprise (art. 105 al. 1 LTF), à moins que celles-ci n'aient été établies en violation du droit ou de manière manifestement inexacte au sens des art. 97 al. 1 et 105 al. 2 LTF, à savoir pour l'essentiel de façon arbitraire au sens de l'art. 9 Cst. Il n'entre ainsi pas en matière sur les critiques de nature appellatoire (ATF 141 IV 249 consid. 1.3.1 p. 253).
Déterminer quelles sont les ressources qu'aurait pu avoir le débiteur de l'entretien relève de l'administration des preuves et de l'établissement des faits (arrêt 6B_1/2012 du 18 avril 2012 consid. 1.1.3).
2.2. L'art. 217 al. 1 CP punit, sur plainte, celui qui n'aura pas fourni les aliments ou les subsides qu'il doit en vertu du droit de la famille, quoi qu'il en eût les moyens ou pût les avoir.
D'un point de vue objectif, l'obligation d'entretien est violée lorsque le débiteur ne fournit pas intégralement, à temps et à disposition de la personne habilitée à la recevoir, la prestation d'entretien qu'il doit en vertu du droit de la famille (BERNARD CORBOZ, Les infractions en droit suisse, 3ème éd., 2010, n° 14 ad art. 217 CP). En revanche, on ne peut reprocher à l'auteur d'avoir violé son obligation d'entretien que s'il avait les moyens de la remplir ou aurait pu les avoir (Corboz, op. cit., n° 20 ad art. 217 CP). Par là, on entend celui qui, d'une part, ne dispose certes pas de moyens suffisants pour s'acquitter de son obligation, mais qui, d'autre part, ne saisit pas les occasions de gain qui lui sont offertes et qu'il pourrait accepter (ATF 126 IV 131 consid. 3a p. 133).
Le juge pénal est lié par la contribution d'entretien fixée par le juge civil (ATF 106 IV 36; arrêt 6B_608/2014 du 6 janvier 2015 consid. 1.1). En revanche, la question de savoir quelles sont les ressources qu'aurait pu avoir le débiteur d'entretien doit être tranchée par le juge pénal s'agissant d'une condition objective de punissabilité au regard de l'art. 217 CP. Il peut certes se référer à des éléments pris en compte par le juge civil. Il doit cependant concrètement établir la situation financière du débiteur, respectivement celle qui aurait pu être la sienne en faisant les efforts pouvant raisonnablement être exigés de lui (arrêt 6B_573/2013 du 1er octobre 2013 consid. 1.1).
2.3. Pour tenter d'établir qu'il n'était pas en mesure de payer la contribution d'entretien, le recourant soutient que l'imputation d'un revenu hypothétique aurait été évoquée de manière lapidaire et subsidiaire et que la cour cantonale n'aurait pas tenu compte de son incapacité de travail.
Le recourant se borne à relater sa propre version du litige au terme d'une démarche appellatoire qui ne remplit pas les exigences de motivation requises et qui se révèle irrecevable (cf. art. 106 al. 2 LTF). Cela étant, cette critique tombe à faux. La cour cantonale a indiqué que les revenus du recourant, avant la séparation, s'élevaient à plus de 12'000 fr. par mois et qu'il avait choisi d'être employé de B._ Sàrl pour un salaire mensuel de 4'500 fr. à un taux de 70%, bénéficiant de huit semaines de congé. Il a opté pour une réduction du temps de travail afin d'être plus disponible pour ses enfants dans l'hypothèse où le droit de garde exclusif sur ceux-ci lui serait attribué. Dès lors, tout comme le premier juge, la cour cantonale a considéré qu'à un taux d'activité de 100%, le recourant aurait pu réaliser un revenu de 10'000 fr. par mois et qu'il avait opté pour un taux d'activité inférieur pour des motifs de convenance personnelle. Elle a également souligné que, même si le revenu hypothétique retenu par le premier juge était inférieur, compte tenu d'une incapacité partielle de travail depuis le 4 septembre 2014, il n'en restait pas moins vrai que l'appelant avait fautivement renoncé à des gains nécessaires pour le paiement de ses obligations alimentaires en réduisant volontairement son taux d'activité à 70%.
Le recourant indique, sans toutefois se plaindre d'un déni de justice formel, que la cour cantonale ne se serait pas prononcée sur le motif soulevé en appel selon lequel la réduction de son temps de travail était le fait de son employeur. Il se contente d'invoquer ce fait. En tant qu'il se prévaut de ses propres allégations, qui n'ont que la valeur d'une déclaration de partie, il n'établit pas le caractère insoutenable des constatations de la cour cantonale, selon lesquelles le recourant a choisi de diminuer son temps de travail pour des motifs personnels.
La cour cantonale a ainsi considéré, sans arbitraire, que le recourant avait volontairement diminué ses capacités de gains durant la période considérée et que, de ce fait, il tombe sous le coup de l'art. 217 CP.
2.4. Dans un second argument, le recourant soutient que la cour cantonale ne pouvait s'appuyer sur le montant de la saisie de salaire ordonnée par l'arrêt rendu par le Juge délégué de la Cour d'appel civile le 26 février 2015 pour établir sa capacité contributive et en particulier qu'elle aurait dû examiner dans quelle mesure le minimum vital n'était pas atteint.
Selon la jurisprudence, il n'est pas nécessaire que le débiteur ait eu les moyens de fournir entièrement sa prestation, il suffit qu'il ait pu fournir plus qu'il ne l'a fait et qu'il ait, dans cette mesure, violé son obligation d'entretien (ATF 114 IV 124 consid. 3b p. 124 s.). Or, comme l'a souligné la cour cantonale, le recourant aurait pu, de son propre aveu, verser une contribution de 1'234 fr. par mois, à savoir le montant correspondant à la saisie de salaire mensuelle ordonnée depuis le mois de février 2015. En ne versant que 4'790 fr. 45 pour la période considérée, à savoir environ 798 fr. par mois, en lieu et place des 1'234 fr. de contribution mensuelle qu'il aurait été en mesure de payer, il tombe sous le coup de l'art. 217 CP.
Au regard de ce qui précède, la cour cantonale pouvait, sans arbitraire, admettre que le recourant avait volontairement diminué ses capacités de gain durant la période considérée et, qu'au surplus, il était en mesure de payer une contribution plus élevée que celle dont il s'est acquittée du 1er septembre 2014 au 28 février 2015.
3.
Le recours était d'emblée voué à l'échec, de sorte que l'assistance judiciaire requise en relation avec la présente procédure doit être refusée (art. 64 al. 1 LTF a contrario). Les frais judiciaires seront mis à la charge du recourant (art. 66 al. 1 LTF). Ils seront toutefois fixés en tenant compte de sa situation financière qui n'apparaît pas favorable (art. 65 al. 2 LTF).
Par ces motifs, le Tribunal fédéral prononce :
1.
Le recours est rejeté dans la mesure où il est recevable.
2.
La demande d'assistance judiciaire est rejetée.
3.
Les frais judiciaires, arrêtés à 1'200 fr., sont mis à la charge du recourant.
4.
Le présent arrêt est communiqué aux parties et à la Cour d'appel pénale du Tribunal cantonal du canton de Vaud.
Lausanne, le 10 juillet 2017
Au nom de la Cour de droit pénal
du Tribunal fédéral suisse
Le Président : Denys
La Greffière : Kistler Vianin