Site Logo MySite

PTL: Van het een komt het ander

Van het een komt inderdaad het ander.

Onlangs heb ik wat artikelen geschreven over hoe je met desem kunt werken, in ieder geval zoals ik dat aanpak. Ook had ik het voor elkaar gekregen om foto’s bij een artikel te plaatsen. Ondertussen ben ik druk bezig met een gallery op de site, maar daar later meer over. De foto’s bij het desemartikel vond ik alleen nogal saai. Niets mis mee, het zijn gewoon foto’s, maar hoe cool zou het zijn om daar een time-lapse van te maken?

Van DTL naar PTL.

Commerciele time-lapsecamera’s zijn vaak of heel simpel, of meteen flink aan de prijs. Het idee om er zelf eentje te maken was dus snel geboren. Na wat googlen kwam ik uit bij een ArduCam 5MP-module die ik kon aansluiten op een Arduino of een Pi. WiFi is voor mij wel een must, en een Pi voelde als overkill, dus de keuze viel op een NodeMCU ESP32 in combinatie met de ArduCam-module.

De (HTTP)-backend vroeg iets meer hersencapaciteit. Mijn eerste gedachte was een Perl/Dancer2-setup, net als deze site: Dancer Time Lapse (DTL). Maar het jeukt al een tijd om iets met Python te doen, de populaire scripttaal van dit moment. Dit project leek me een mooi excuus om dat eindelijk te proberen: Python Time Lapse (PTL), met Flask als webframework.

In de volgende delen ga ik ook mijn ervaringen delen met die overstap van Dancer2 naar Flask: wat direct vertrouwd voelde, waar ik even op vastliep en welke keuzes uiteindelijk goed werkten voor dit project. Misschien heb jij daar ook iets aan als je met een vergelijkbare overgang bezig bent.

Wat gaat het doen.

De firmware.

Het idee is dat de firmware periodiek de backend pollt voor een configuratie. In die configuratie staat hoe vaak er een opname gemaakt moet worden, welke instellingen voor de afbeelding gelden en waar de images opgeslagen moeten worden. Klinkt redelijk overzichtelijk.

De backend.

De backend bestaat uit een API-deel en een UI-deel.

De API is redelijk simpel, denk ik: - Route voor het beschikbaar stellen van een config - Route voor het uploaden van een image De UI wordt iets bewerkelijker: - Config kunnen maken - Images beheren - Time Lapse maken van de images - Eventueel support voor verschillende camera’s

Moet te doen zijn, toch?

Hardware Uitdagingen.

Ik heb nog geen ESP32, die is besteld. De cameramodule was inmiddels wel binnen, en die wil je natuurlijk meteen uitproberen. Dus handleiding erbij en de voeding, SPI- en I2C-interfaces aangesloten op een Sparkfun Thing Dev ESP8266 die ik nog had liggen. De voeding liep via de ESP8266, en dat gaf meteen problemen: - Blijkbaar is de cameramodule 3.3V in plaats van de 5V die in de handleiding staat. - De ESP8266 levert te weinig stroom voor de cameramodule, maximaal 500mA geloof ik. Een led in het voedingscircuit dimt direct zodra ik de module aansluit, en nee… het is geen sluiting ;). Vanavond maar eens proberen met een 5V adapter en een 3.3V converter, maar die is ook maar maximaal 800mA.

PTL_Firmware_ESP8266.jpg

Wordt vervolgd dus. Zodra de ESP32 binnen is en de voeding stabiel draait, bouw ik de eerste versie van de firmware en test ik of de backend netjes configuratie kan aanbieden en beelden kan ontvangen. Als dat lukt, is de volgende stap een simpele UI om de foto’s te beheren en de eerste echte time-lapse van desem te renderen. Van DTL naar PTL is begonnen.