Stap 2: Een eenvoudige sjabloon.
het raster
Maak een raster knooppunt met de rij-parameter ingesteld op 56. Dit is een verticale lijn van ons imago. Naast de kolommen-parameter in te stellen op 25. De afmetingen van het aan 120 hoogte & breedte 300 wijzigen. Het zal resulteren in een raster van punten.
Dit raster van punten wordt gesorteerd op de Y-as. We hebben om het te veranderen zodat de eerste 56 punten de eerste kolom van het raster zijn, de tweede set van 56 punten de tweede kolom in het raster, enzovoort.
Maak een soort knooppunt en grid1 verbinden met de poort vormen. Wijzig de volgorde parameter X.
de vorm
Het volgende ding dat we nodig hebben is een shape.
Maak een ellips-knooppunt en laat het op het standaardparameters.
de overlapping
Het gaat erom dat we proberen zullen om erachter te komen welke punten van het raster de ellips overlappen. Degene die hoeven te worden opgeslagen als 1, degene die niet hoeven te worden opgeslagen als 0. Dit is geen ingebouwde functie, maar NodeBox laat ons toe om onze eigen code ook gebruiken.
Open een teksteditor en voer
def cook (vorm, punten): als shape.contains (points.x, points.y): return 1 anders: retourneren 0opslaan als een bestand van de python genaamd check.py. Nu dat we hebben te roepen voor een functie, kan het worden toegepast in NodeBox. We moeten eerst het python-bestand in het programma importeren.
* Ga naar File >> Code bibliotheken. Opent een nieuwe kleine venster met in de bovenste hoek rechts een '+' teken.
* Druk op '+' en selecteer van Python in de Python / sluiting optie. Ga naar check.py
* Als je een verwijzing ernaar zien kunt kunt u het venster sluit.
Het python-bestand wordt nu geïmporteerd en de functie in het voor kan worden aangeroepen vanuit een knooppunt.
Elk knooppunt wordt aangedrongen op een functie, kunt u achterhalen welke door het selecteren van een knooppunt en ga naar de metadata tabblad op de top van het venster poort/parameters. Een nieuw venster zal openen met de specificaties van het knooppunt en de bijbehorende poorten. Als je naar verwijst 'Instellingen' kunt u uitzoeken wat het functioneren naar. In het geval van een rechthoek zal zeggen: corevector/rect, wat betekent dat het de functie rect in het corevector bestand bellen zal. De kok-functie aanroept in checkImage.py die ik bel checkImage/kok zal hebben.
Ik moet een knooppunt waar ik kan sturen een vorm en een lijst van punten en die resulteert in een lijst (met 0 en 1). We kunnen gebruiken het filter knooppunt om mee te beginnen aangezien het invoer al van een shape.
* Maak een filter-knooppunt.
* Selecteer het knooppunt en ga naar het tabblad Metadata.
* Ga naar knooppunt >> instellingen. Voer ' selectievakje/cook' in de 'Functie' optie.
Wij moeten nog een nieuwe poort. Het knooppunt voorlopig kunt alleen een shape ontvangen.
* In het Metadata venster: Klik op de '+' knop in de linker benedenhoek.
* Voer de naam van een poort: noem het 'punten'.
* Selecteer 'Wijs' in het menu Type en klik op 'OK'.
Nu hebben we twee ingangspoorten, een zwarte voor onze vorm (de ellips) en een blauwe voor onze punten (voor onze gesorteerde raster).
Sort1 verbinden met de haven van de punten van het nieuwe filter-knooppunt en ellipse1 verbinden met de haven van de vorm van het knooppunt van de filter. Deze moet resulteren in een lijst met 0 en 1 die we gebruiken kunnen om het maken van een kleur.
het visualiseren
Een RGB-kleur knooppunt maken en wijzigen van het bereik naar 1. Filter1 verbinden met de groene poort. Nu kunnen we in NodeBox visualiseren wat later op de interface zal worden.
* Maak een rect knooppunt van 5 x 5.
* Maak een vertalen-knooppunt en de rect verbinden met zijn vorm parameter en sort1 aan het vertalen parameter.
* Het maken van een colorise-knooppunt en verbinden vertalen naar het. Het knooppunt rob verbinden met de parameter van de opvulling van dit knooppunt colorise en het renderen. De ellips wordt weergegeven. (Zie de screenshot op de top van deze stap)
in hex.
Eerste stap is het aanmaken van paren van 8, dan schrijven ze in hexadecimale waarde en vervolgens het output naar een bestand.
* Maak een segment knooppunt. Stel de parameter bedrag op 8 en filter1 op de lijst-poort aansluiten. De start-index zal ons toelaten om 8 waarden lezen en wij willen dat over een stap van 8. Maak een subnetwerk daarvoor en noem het eight_bit. Publiceren de start-index-parameter is toegankelijk vanuit de hoofdmap.
* Maak een knooppunt van de graaf, filter1 verbinden met de haven van de lijst. Deze uitgangen het aantal waarden in de lijst.
Maken van het knooppunt van een bereik en verbinden van graaf is aan het einde poort. Stel de parameter van de stap tot en met 8. Dit resulteert in een lijst 0, 8, 16, 24, 32,... We kunnen deze waarden gebruiken als de begin-index van onze eightbit-knooppunt. Aansluiten.
* Ga in het subnetwerk en maak 8 delige knooppunten. Elke één van hen heeft 1 als bedrag parameter. De eerste heeft start indexnummer 0, de tweede 1... Sluit ze allemaal naar het eerste knooppunt van het segment (met de hoeveelheid 8).
* 3 tekst.samenvoegen knooppunten maken. Alle knooppunten van het segment (met bedrag 1) verbinden met hen en zien van de resultaten zoals 00000000 00000000 00000000, 00011111...
Open een teksteditor en voer
import mathdef tohex(n): hex(int(n,2)) retourneren
Sla het op als tohex.py
importeren in NodeBox met behulp van de optie van de code-bibliotheken.
Maak een nieuw knooppunt een basis knooppunt voor aangepaste knooppunten worden uitgebreid. Ga naar de metadata en het functie wijzigen in 'tohex/tohex'. Maak een nieuwe poort, oproep het bit en zet het type tekenreeks.
Het 8-bits knooppunt verbinden met het en het renderen. Het resultaat moet worden hex waarden zoals 0x0, 0x3, 0xff...
Het is belangrijk om te weten hoeveel 'pakketten van acht' er zijn dus maak een nieuw knooppunt van de graaf. Sluit de naar hex knooppunt aan de lijst parameter.
aan arduino
Nu laten we het output naar een bestand. Laten we gebruik maken van een CSV-indeling.
Open een teksteditor en voer:
import csvdef writetocsv(hexes,name): lijst =]
csvfile = bestand ('/ gebruikers/Desktop /'+ naam + 'CSV', 'w') # dit naar een map op uw computer verwijzen moet
schrijver = csv.writer (csvfile, scheidingsteken = ",")
voor hex in hexes: list.append(hex) writer.writerow(list)
csvfile.Close()
retourneren hexes
Sla het op als toarduino.py. Maak een nieuw basis knooppunt opnieuw, het functie wijzigen in 'toarduino/writetocsv' en twee nieuwe parameters maken. Beide hebben een String widget, maar de eerste heeft een lijst als bereik, terwijl de tweede waarde als bereik heeft. Bel de eerste hexes en de tweede naam. Wij verzenden de output van het hex knooppunt naar de hexes poort en voer een bestandsnaam in de parameter name.
Arduino code
Hieronder is de code van de arduino begonnen van Tom Igoe de tutorial op de speelplaats van de Arduino. De shifter-functie doorloopt alle bytes en heeft 3 argumenten. (volgnummer array, timedelay, bedrag). byte ovaal [175] slaat de informatie van NodeBox.
De potPin verwijst naar een potentiometer thats maakt ons om te controleren de timedelay op de interface.
--
//**************************************************************//
de slag van de code uit dit arduino playground voorbeeld:
Naam: shiftOutCode, Hello World
Auteur: Tom Igoe, Carlyn Maw, David A. Mellis
Datum: 25 okt, 2006
Modified: 23 Mar 2010
Versie: 2.0
Opmerkingen: Code voor het gebruik van een 74HC595 Shift Register / /
: te tellen van 0 tot 255
//****************************************************************
int latchPin = 8;
int clockPin = 12;
int potPin = A0;
int dataPin = 11;
byte ovaal [175] = {0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0x0 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x7,
0xFF, 0xe0, 0x0 0x0, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0 0x0, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf,
0xFF, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x1f,
0xFF, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x1f,
0xFF, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xf8, 0x0 0x0, 0x0, 0x0, 0xf, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf,
0xFF, 0xf0, 0x0 0x0, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0 0x0, 0x0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3,
0xFF, 0xc0, 0x0 0x0, 0x0, 0x0, 0x0, 0xff, 0x0 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
0x0 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0};
VOID Setup
{
pinMode (dataPin, OUTPUT);
pinMode (latchPin, OUTPUT);
pinMode (clockPin, OUTPUT);
pinMode (potPin, INPUT);
Serial.begin(9600);
}
VOID shifter (byte seq1 [], float timeDelay, int len) {}
voor (int x = 0; x < len; x ++)
{
digitalWrite (latchPin, laag); Start sturen via latchpin
Als (x %7 == 0) {}
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+1]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+2]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+3]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+4]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+5]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+6]);
shiftOut (dataPin, clockPin, MSBFIRST, seq1[x+7]);
}
digitalWrite (latchPin, hoge); Stop versturen
delay(timeDelay);
}
delay(timeDelay*20);
}
void loop {}
float temp = analogRead(potPin);
zweven timeDelay = toegewezen (temp, 0, 1023, 0, 25);
Shifter (ovale, timeDelay, 175);
}
float toegewezen (float x, float in_min, drijven in_max, out_min drijven, zweven out_max) {}
terugkeer (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}
een ander beeld
Nu hebben we een eenvoudige template die we gebruiken kunnen om andere afbeeldingen te maken. Wijzigen van de ellips aan een andere shape, wordt een nieuwe matrix gemaakt. U kunt een teken van een alfabet. enz.