Inhoudsopgave:

Lego Mini Cooper App Controlled Lights - Ajarnpa
Lego Mini Cooper App Controlled Lights - Ajarnpa

Video: Lego Mini Cooper App Controlled Lights - Ajarnpa

Video: Lego Mini Cooper App Controlled Lights - Ajarnpa
Video: Lego Mini Lighting 2024, November
Anonim
Image
Image
Wat je nodig hebt
Wat je nodig hebt

Gevaar, UXB

Is jouw droombaan als bomopruimingsexpert maar aarzel je vanwege het stervende deel? Dan is dit het project voor jou! U zult vele uren bezig zijn met het maken van kleine aanpassingen aan een zeer onstabiel apparaat, het zweet borrelt van uw voorhoofd en uw handen trillen ongecontroleerd. Een hartslag kan Triumph en Ramp scheiden. Hoe dan ook, je zult niet sterven, behalve misschien van versterving. Dus je moet bereid zijn om die twee bedriegers precies hetzelfde te behandelen. Anders ben je misschien beter af met daadwerkelijke bomopruiming.

Waar heb ik het over? Implementatie van een complete set webgebaseerde bedieningselementen voor uw Lego Mini Cooper, allemaal toegankelijk vanaf uw telefoon! Hoogtepunten zijn onder meer:

  • Individuele regeling van buiten- en binnenverlichting
  • Verlichtingsselecties gespiegeld op het telefoonscherm
  • Automatische verlichting is afhankelijk van het lichtniveau
  • Tijdregistratie via internet, zodat uw Mini het hele uur kan knipperen met zijn lampjes
  • Door de gebruiker configureerbare tijdzoneselectie
  • Een bijna oneindige verscheidenheid aan handmatig selecteerbare kleuren en helderheidsniveaus voor de interieurverlichting
  • Een automatische "Groovy"-modus om binnenverlichting af te wisselen voor die echte sixties-sfeer. Ja, schat!
  • Tesla-achtige automatische piloot. Nee niet echt.

Plus handige nerd-functies zoals:

  • Multicast DNS (het is niet nodig om vervelende IP-adressen te onthouden)
  • OTA (over the air) firmware-upgrades om eenvoudig nog meer functies toe te voegen
  • WiFi Manager zodat de Mini naar nieuwe netwerken kan worden verplaatst zonder SSID en wachtwoorden opnieuw te coderen

Laten we beginnen!

Stap 1: Wat heb je nodig

Als je al een Lego Mini Cooper hebt, heb je geluk. Dit project kost je ongeveer $ 10. Minder als u enkele of alle verbruiksartikelen al heeft liggen. Als je geen Lego Mini hebt, zijn ze ongeveer $ 100. Wat ik deed, was er een kopen voor mijn (volwassen) dochter voor Kerstmis. Slim, hè?

Het enige andere belangrijke onderdeel is een op ESP8266 gebaseerde NodeMCU. Ongeveer $ 6 per worp. Dan heb je alleen nog een stel LED's van 3 mm nodig, een paar weerstanden (inclusief een optionele LDR / fotoresistor), een paar NPN-transistoren, dunne aansluitdraad en krimpkous.

Gereedschap

Een soldeerbout is hier het belangrijkste. Plus een boor met bits van 1/8 inch naar beneden. Je hebt ook wat klein handgereedschap nodig - ik vond een puntig pincet bijzonder nuttig.

Stap 2: Ontwerpoverwegingen

Ontwerp Overwegingen
Ontwerp Overwegingen

Opties

Net als bij een echte Mini Cooper moet je keuzes maken. In dit geval, hoeveel individuele lampjes wil je en wil je nog andere dingen toevoegen (bijvoorbeeld een claxon). Mijn advies is om niet te ambitieus te worden. Ten eerste heeft de NodeMCU slechts 9 bruikbare GPIO-pinnen en één analoge ingangspin. Zelfs als je de pinnen wilt uitbreiden met een schuifregister, moet er rekening worden gehouden met fysieke ruimte voor de bedrading en gecontroleerde accessoires. Dit is waar ik mee eindigde:

  • Koplampen
  • Mist-/rijlichten
  • Knipperlichten rechts en links (voor en achter)
  • Drie binnenverlichting voor RGB (had een gecombineerde kunnen gebruiken, maar had er geen - pingebruik is hoe dan ook hetzelfde)
  • Fotoresistor op de analoge pin voor automatische aan/uit-functionaliteit

Ik heb transistors op de knipperlichten gebruikt om een paar pinnen te sparen, een benadering die je ook zou kunnen gebruiken op de koplampen en mistlampen (alles dat altijd samen wordt geschakeld). Je moet echter voorzichtig zijn - ik kwam een probleem tegen bij het gebruik van transistors op sommige van de pinnen, wat later wordt besproken.

Reglement

  1. Geen verandering aan het uiterlijk van de auto
  2. Zo min mogelijk interne wijzigingen
  3. Geen lijm, hoe verleidelijk het ook is om stabiliteit toe te voegen
  4. Geen harde codering van belangrijke configureerbare functies (bijv. wifi-netwerk)
  5. Redelijk ogende GUI voor de "app"

Uiteindelijk heb ik deze regels meer als richtlijnen geïnterpreteerd, maar ik denk niet dat ik flagrante afwijkingen heb gemaakt.

Stap 3: Bouw je Mini

Bouw je mini
Bouw je mini

Hoewel sluw, ben ik niet zonder menselijkheid. Dus in de geest van Kerstmis liet ik mijn dochter de Mini bouwen. Want, nou ja, het was van haar. Dit deed ze zeer bekwaam. Het was geweldig.

Ik had als kind met Lego gespeeld, maar slaagde er alleen in om te maken wat losjes een "huis" zou kunnen worden genoemd. Ik denk niet dat ik raam- of deurstukken had, dus enige verbeeldingskracht was vereist. Deze Lego Mini was in een andere klasse - het vastleggen van de essentie van het echte werk (een voorbeeld waarvan mijn dochter toevallig ook eigenaar is) met behoud van de integriteit van Lego zelf.

Ondanks de vrieskou gingen we meteen op uitgebreide fotoshoot. Het was meer dan geweldig. Het was perfect!

Behalve, niets is perfect, toch? Of tenminste, het is de menselijke conditie om wat ooit als perfect werd beschouwd als onbevredigend te beschouwen. Daarom hebben we stortplaatsen en echtscheidingsadvocaten nodig.

Het was duidelijk dat wat deze auto nodig had, LED's waren. Mijn dochter was alleen op bezoek voor de vakantie, dus ik moest snel werken. Versie 1 van dit project was gewoon wat LED's in de koplampen en mistlampen steken en alles via een schakelaar aansluiten op een paar knoopcelbatterijen. Ik zeg "gewoon", maar het was mijn eerste kennismaking met de kwetsbaarheid van de Mini (en ik vermoed de meeste andere aangepaste Lego-kits). Alleen al het oppakken van het ding riskeerde dat er stukjes eraf vielen met een ontmoedigend gekletter op de vloer. En ik zou een paar kleine gaatjes moeten boren met een kolossale grote DeWalt, draad door ruimtes moeten trekken waar draad niet was ontworpen om te gaan en de structuur een batterijcompartiment aan de onderkant te laten ondersteunen.

Sommige van de bevrijde stukjes waren behoorlijk groot en het was me duidelijk waar ze teruggingen. Andere stukken waren een compleet mysterie. Deze legde ik op een "te moeilijke" stapel, die slechts een paar minuten in het project alarmerend was gegroeid. Op een gegeven moment waren er genoeg stukjes afgevallen dat het risico dat het hele ding in zijn oorspronkelijke staat zou terugkeren, meer dan theoretisch werd. Als je er ooit aan hebt getwijfeld dat entropie het universum definieert, zoek dan niet verder dan Lego.

In een perverse biologische reactie die waarschijnlijk bekend is bij bomopruimingsexperts, hoe groter het risico op een catastrofe, hoe meer mijn handen trilden. Als u bijzonder nerveus bent, kunnen andere biologische reacties worden uitgelokt. Op Spotify werd een T. Rex-nummer afgespeeld. De Mini als Nemesis. Ik moest denken aan een regel uit Yeats' The Second Coming.

We zullen hier even pauzeren omdat ik een overontwikkeld gevoel heb voor het dramatische verhaal.

Stap 4: Versie 1

Versie 1
Versie 1

Wel, lezer, u zult ongetwijfeld opgelucht zijn om te horen dat het me is gelukt om de op batterijen werkende lampen te installeren en de Mini vrijwel in volledig gemonteerde staat te hebben hersteld. Maar als je naar deze foto kijkt, zie je dat de tegels waaruit het dak bestaat ongelijk zijn. Ik denk dat ze er al zo vaak af waren gevallen dat ik niet de moeite nam om ze weer naar beneden te drukken voor de foto. Of misschien was dit een gevolg van een aantal versterkende dranken die in vaste hand en hart werden gedronken. Het was tenslotte kerst.

Hier bleven de zaken. Mijn dochter moest naar Canada vertrekken en nam de Mini mee. Zo werken cadeautjes blijkbaar.

Ondertussen was ik hard gevallen voor Lego. Ik begon regelmatig naar Lego Batman te kijken en las recensies van Lego-kits. Op een dag kwam ik dit tegen van een outfit genaamd Brick Loot, een commerciële versie van 'mijn' idee. Erger nog, het was beter dan mijn inspanning omdat het meer lichten had. Meer. Beter. Ik probeerde mezelf te troosten dat de blauwe lichten smakeloos waren en dat het twintig keer duurder was dan de $ 1,30 die ik aan versie 1 had uitgegeven. Maar mijn hart had geen van die normaal aantrekkelijke logica. Dit kon niet uitstaan, vooral toen ik ontdekte dat er talloze andere opties waren om LED-verlichting aan de auto toe te voegen. Het was duidelijk dat ik mijn spel moest verbeteren. De Mini werd teruggeroepen uit het Frozen North en het werk begon.

Toevallig was ik onlangs aan een ander frivool project begonnen, waarbij onder meer LED's en een NodeMCU betrokken waren. Het was geen reuzensprong van de verbeelding om dit project te trouwen met de Lego Mini. Ik zou zelfs een flink aantal stukjes code kunnen hergebruiken! Door een NodeMCU te gebruiken, konden we de lichten via de telefoon bedienen en zoveel mogelijk automatiseren als de verbeelding toestond. Pak dat aan, Brick Loot, wie je ook bent.

Meteen heb ik verder onderzoek naar Lego stopgezet. Het is prima als iemand anders al iets soortgelijks als dit project heeft gedaan (want dat hebben ze zeker gedaan). Zolang ik er niets van af weet (reageren, respecteer alstublieft deze opzettelijke onwetendheid).

Ik realiseer me nu dat ik vier stappen geleden zei: "Laten we beginnen". Dus laten we beginnen. Werkelijk.

Stap 5: Bedrading

Bedrading
Bedrading
Bedrading
Bedrading
Bedrading
Bedrading

De eerste opdracht was om te beslissen hoe alle lichten van stroom moesten worden voorzien. Elk van de sets lichten (koplampen, mistlampen, knipperlichten, interieurverlichting) had een iets andere aanpak nodig.

Ik laat de foto's spreken voor hoe ik het heb aangepakt. In een notendop, bedrading naar alle lichten behalve de mistlampen kan worden geïnstalleerd door een klein gaatje vanuit het midden van het licht recht terug in de volgende beschikbare holte te boren en de draad vervolgens onopvallend naar de onderkant van de Mini te leiden. Bij de mistlampen moet de draad iets uit het midden in de achterkant van de reflector komen. De RGB-interieur-LED's (niet afgebeeld) zijn eenvoudig te installeren door een gat recht omhoog door de onderkant te boren, zodat het tussen en iets naar de achterkant van de voorstoelen uitkomt. Ik gebruikte drie afzonderlijke lampen omdat ik geen gecombineerde had.

Het enige andere dat het vermelden waard is, is dat ik bij het verkennen van de opties voor de achterknipperlichten het reservewiel ontdekte, dat zich onder de vloer van de kofferbak bevindt. Dit was volkomen onverwacht - het zou niet overdreven zijn om te zeggen dat ik verbijsterd was. Hier was een onderdeel dat maar weinigen zouden zien na montage. Maar daarom des te waardevoller. Goed gespeeld Lego!

Als je klaar bent, moeten alle draden samenkomen in de grote ruimte tussen de framebalken onder de Mini. Hier zullen we de NodeMCU installeren en de bedrading op de juiste pin beëindigen.

Ik had eerder een slechte beslissing genomen door ervoor te kiezen om de stroombeperkende weerstanden voor de LED's, transistors en LDR in de bedrading op te nemen. Ik deed dit omdat ik niet van plan was de NodeMCU op Perfboard te monteren. Uiteindelijk is dat precies wat ik deed, zodat ik alle elektronica gemakkelijk op één plek had kunnen consolideren. Als u dit niet doet, wordt het vervangen van componenten, met name de LED's, iets moeilijker. Oh nou ja.

Voordat u de NodeMCU/Perfboard aan het frame bevestigt, moet u overwegen aan welke kant u de micro-USB wilt hebben.

Stap 6: Het circuit

Het circuit
Het circuit

Niets bijzonders hier. De Fritzing-schets zou vrij duidelijk moeten zijn, hoe amateuristisch het ook is. Stroombegrenzingsweerstanden op alle LED's zijn 220Ω en op de transistors 1kΩ. De transistors zijn 2N2222 NPN's. De vaste weerstand op de LDR is 10KΩ.

Dat gezegd hebbende, is dit misschien de plek om een paar eigenaardigheden te noemen die ik heb ontdekt over de NodeMCU.

Ten eerste, hoewel er op de interwaves enige suggestie is dat pinnen D9 (RX) en D10 (TX) kunnen worden gebruikt als GPIO's als er geen serieel verkeer is, weet ik niet zeker of ze dat kunnen - werkte zeker niet voor mij.

Ten tweede kwam ik een probleem tegen met een van de transistors die op D3 waren aangesloten. Ik weet niet helemaal zeker waarom -- D3 (ook D4 en D8) bepalen de opstartmodus, maar ik weet niet zeker waarom dat ertoe zou doen. Gewoon een waarschuwing, dus als je een probleem tegenkomt, probeer dan dingen op de pinnen te verplaatsen.

Ik heb een mentale notitie gemaakt om beide problemen verder te onderzoeken, maar op dit moment kan ik alleen maar zeggen dat de pintoewijzing op mijn schets voor mij werkte.

Stap 7: De code

De code
De code

De code (Arduino, HTML/CSS en JavaScript) is naar mijn beste vermogen becommentarieerd en is hier beschikbaar op GitHub. Ik heb alle afbeeldingen achtergelaten die ik heb gebruikt, inclusief een pictogram om toe te voegen aan het startscherm van je iPhone, dus het werkt direct uit de doos. Als je niet bekend bent met het gebruik van SPIFFS, bekijk dan het README-bestand.

Zoals altijd ben ik veel dank verschuldigd aan de onbaatzuchtige individuen met echte expertise die bijdragen aan bibliotheken, tutorials en andere bronnen die gebruikt en misbruikt kunnen worden door ongelukkige individuen zoals ikzelf. Vooral voor dit project vertrouwde ik sterk op een zeer uitgebreide inleiding tot alle dingen die ESP8266 hier beschikbaar heeft. De WiFi Manager-bibliotheek verdient ook een speciale pluim voor het vergemakkelijken van netwerkportabiliteit, zeer wenselijk aangezien de Lego Mini als een echte auto heen en weer reist vanuit Canada.

Tot slot wil ik mijn dochter Emma heel erg bedanken dat ik in onredelijke mate met haar auto heb mogen spelen.

Laten we motorisch.

Been god.

Aanbevolen: