Stap 7: Waar te gaan vanaf hier
Met de schets van de voorbeeld geboden door Adafruit spelen is leuk. Maar sommigen van u zou willen hebben meer controle over wat wordt weergegeven op het model. In mijn geval die ik wilde gebruiken het model om te visualiseren van gegevens van het feitelijke onderzoek op de hersenactiviteit van de fruitvlieg.
Voor dit deel moet je doen een beetje van de wiskunde en codering. Ik zal niet alle details geven in dit Instructable, vooral omdat ik wil om het te houden over de hardware en omdat iedereen een ander idee in gedachten hebben zal over wat ze willen doen met hun specifieke model. Maar ik zou blij zijn om te helpen als mensen vragen in de commentaren, en in de tussentijd hier enkele fundamentele concepten en ideeën zijn, evenals links naar grote middelen waar u meer info:
Als er niet teveel LEDs in uw model, je zou kunnen schrijven, één voor één, de kleur en de intensiteit die u wilt weergeven op elk van hen gebruikt de setPixelColor functie van de neopixel library. Echter, uit de vorige stappen, u weet welke vezel overeenkomt met welke locatie binnen het model (het is de locatie van de bollen in stap 2). Door deze coördinaten op te slaan in een matrix met drie kolommen en zoals vele rijen als daar vezels zijn, kunt u gemakkelijk koppelen het nummer van de LED aan de respectieve x, y, z in het model coördinaten.
Dan kunt gebruik deze x, y, z coördinaten in wiskundige uitdrukkingen, zoals trigonometrische functies uitvoeren, om de kleur en de intensiteit, weergegeven door elke LED ruimtelijk te moduleren. Deze modulatie kan worden geanimeerd door waardoor ze ook tijd afhankelijk. U kunt kijken naar de verbazingwekkende 8 x 8 x 8 LED kubus Instructable, stappen 55 tot en met 62, of deze link, om ideeën.
Als, zoals in mijn geval, u wilt weergeven als u wilt driedimensionale gegevens elders verworven, zal het waarschijnlijk komen in waarden gemeten op een Cartesische grid. Omdat we niet een LED voor elk gegevenspunt hebben, moeten we om te interpoleren van de gegevens aan de x, y, z coördinaten overeenkomt met de uiteinden van de vezel. De arduino microcontroller beschikt niet over voldoende geheugen en rekenkracht te slaat de oorspronkelijke gegevens en het doen van de interpolatie, zodat u zult willen voorbehandelen van de gegevens. U hebt waarschijnlijk een wiskundige programmeer taal van keuze (matlab, python...), die haar op interpolatie functies zal hebben. Houd er rekening mee dat zelfs verwerkte gegevens kan een heleboel ruimte, zodat u opslaan in het programmageheugen van de arduino (32 k in plaats van de 1 k van de sram kunt) met behulp van de trefwoorden PROGMEM.
ik gehecht mijn arduino schets te laten zien hoe het geheugen beheren. Voor mijn 53 LEDs, kan maximaal ongeveer 170 frames, die bewaar ik in een (FrameNumber) x (LEDnumber) x3 matrix een kleur animatie bevatten. Anders is het een vrij eenvoudige code, waarmee wordt bijgewerkt met de kleuren die worden weergegeven door de LED's met behulp van twee for-lussen die doorlopen van de frames.
Hier gaan we, ik hoop dat dit komt u aan de slag, ik zou blij zijn om te helpen in de commentaren!