POV de créer des séquences. (2 / 4 étapes)

Étape 2: Un modèle simple.

Nodebox est un excellent outil pour visualiser des trucs. Commençons par un exemple simple qui visualise une ellipse sur l’interface. Clé, c’est que nous avons 56 LED. Voici la description d’un exemple simple, mais il pourrait être plus facile de télécharger le baseReader.zip qui est inclus et ouvrez-le dans Nodebox vous permettant de voir étape par étape...

la grille

Créer un nœud de la grille avec le paramètre de ligne défini à 56. Il s’agit d’une ligne verticale de notre image. Ensuite, définissez le paramètre de colonnes à 25. Changer les dimensions de celui-ci à largeur 120 et la hauteur 300. Elle se traduira par une grille de points.

Cette grille de points est triée selon l’axe Y. Nous devons changer pour que les 56 premiers points sont la première colonne de la grille, le deuxième groupe de 56 points de la deuxième colonne dans la grille et ainsi de suite.

Créer un nœud de tri et branchez grid1 sur le port de formes. Remplacez le paramètre de commande X.

la forme

La prochaine chose que nous avons besoin est une forme.
Créer un nœud d’ellipse et laisser à ses paramètres par défaut.

le chevauchement

L’idée est que nous allons essayer de comprendre quels points de la grille chevauchent l’ellipse. Ceux qui dois-je être stockées en tant que 1, ceux qui n’ont pas à être stockés comme 0. Ce n’est pas une fonction de construire-dans, mais NodeBox nous permet d’utiliser notre propre code ainsi.

Ouvrez un éditeur de texte et entrez

def cook (forme, points): si shape.contains (points.x, points.y): retourne 1 d’autre : retourne 0

Enregistrez-le sous un fichier python appelé check.py. Maintenant que nous avons une fonction à appeler, il peut être implémenté dans NodeBox. Tout d’abord, il faut importer le fichier python dans le programme.

* Allez dans fichier >> bibliothèques de Code. Il ouvrira une nouvelle petite fenêtre avec dans le coin supérieur droite coin un signe « + ».
* Appuyez sur « + » et sélectionnez Python Python / option de fermeture. Accédez à check.py
* Si vous pouvez voir une référence à celui-ci, vous pouvez fermer la fenêtre.

Le fichier python est maintenant importé et la fonction qu’il peut être appelée pour partir d’un nœud.

Chaque nœud réclame une fonction, vous pouvez savoir que l'on en sélectionnant un nœud et ensuite allez dans l’onglet métadonnées sur le dessus de la fenêtre de paramètres/port. Il va ouvrir une nouvelle fenêtre avec les spécifications du nœud et de ses ports. Si vous allez dans « Paramètres », vous pouvez savoir quelle fonction il veut dire. Dans le cas d’un rectangle, il dira : corevector/rect, ce qui signifie qu’il appellera la fonction rect dans le fichier corevector. Pour appeler la fonction de cuisson en checkImage.py, je vais devoir appeler checkImage/cuisinier.

J’ai besoin d’un nœud où je peux envoyer une forme et une liste de points et qui retourne une liste (de 0 à 1). Nous pouvons utiliser le nœud de filtre d’abord car elle importe déjà une forme.

* Créer un nœud de filtre.
* Sélectionnez le nœud et allez dans l’onglet métadonnées.
* Accédez au nœud >> Settings. Entrez « cocher/cuisson » dans l’option « Fonction ».

Nous avons encore besoin d’un nouveau port. Pour l’instant, le nœud ne peut recevoir une forme.

* Dans la fenêtre de métadonnées : cliquez sur le bouton « + » sur le coin inférieur gauche.
* Entrez un nom de port : appelez-le « points ».
* Sélectionnez « pointer » dans le menu Type, puis appuyez sur « OK ».

Maintenant nous avons deux ports d’entrée, un noir pour notre forme (l’ellipse) et un bleu pour nos points (pour notre grille trié).

Branchez sort1 jusqu’au port de points du nouveau nœud de filtre et ellipse1 sur le port de la forme du nœud de filtre. Il doit retourner une liste des 0 et des 1 que nous pouvons utiliser pour créer une couleur.

il visualise

Créer un nœud de couleur RVB et modifier la plage à 1. Connectez filter1 à la voie verte. Maintenant, nous pouvons visualiser en NodeBox ce qui sera plus tard sur l’interface.

* Créer un nœud rect 5 par 5.
Créer d’un nœud Traduisez et connecter le rect à son paramètre de forme et sort1 à son paramètre de traduire.
Créer d’un nœud colorise et connecter se traduisent par elle. Connecter le nœud de rob pour le paramètre de remplissage de cette colorise le nœud et de le rendre. L’ellipse doit apparaître. (voir la capture d’écran sur le dessus de cette étape)

dans l’hexagone.

Première étape consiste à créer des paires de 8, puis de les écrire en valeur hexadécimale et puis elle sortie vers un fichier.

* Créer un nœud de tranche. Réglez le paramètre amount sur 8 et reliez filter1 vers le port de la liste. L’index de début nous permettra de lire les 8 valeurs et nous voulons le faire au cours d’une étape de 8. Créer un sous-réseau pour elle et nommez-le eight_bit. Publier le paramètre d’index de début est accessible depuis la racine.

Créer d’un nœud count, raccordez filter1 à sa liste port. Cela affiche le nombre de valeurs dans la liste.
Créer un nœud de la gamme et connecter le comte il est port de fin. Définissez le paramètre de l’étape 8. Cette propriété renvoie une liste 0, 8, 16, 24, 32,... Nous pouvons utiliser ces valeurs comme l’index de début de notre noeud eightbit. Raccordez-le.

* Allez dans le sous-réseau et créer 8 nœuds de tranche. Chacun d’eux a 1 comme paramètre amount. Le premier a start index 0, la seconde 1... Connectez-les tous vers le premier nœud de la tranche (avec la quantité de 8).

* Créer 3 nœuds CONCATENER. Tous les nœuds de tranche (avec montant 1) y connecter et voir les résultats comme 00000000 00000000 00000000, 00011111...

Ouvrez un éditeur de texte et entrez

importation math
def tohex(n) :
hex(int(n,2)) de retour

Enregistrez-la sous tohex.py

Importez-le dans NodeBox en utilisant l’option bibliothèques de code.

Créez un nouveau noeud est un noeud de base pour être étendu pour les nœuds personnalisés. Allez dans les métadonnées et changer sa fonction à « tohex/tohex ». Créer un nouveau port, appel il peu et placer le type de chaîne.
Le nœud de huit bits y connecter et de le rendre. Le résultat devrait être les valeurs hexadécimales 0 x 0, 0 x 3, 0xff...

Il est important de savoir combien de « paquets de huit » il sont alors créer un nouveau nœud de comte. Connectez le nœud hexagonale à son paramètre de liste.

pour arduino

Maintenant nous allons imprimer dans un fichier. Nous allons utiliser un format csv.

Ouvrez un éditeur de texte et entrez :

import csv
def writetocsv(hexes,name) :
liste =]
csvfile = fichier ('/ Users/Desktop /'+ nom + '.csv', 'w') # cela devrait se référer à un dossier sur votre ordinateur
auteur = csv.writer (csvfile, délimiteur = «, »)
pour hex en hexagones :
list.append(hex) writer.writerow(list)
csvfile.Close()
hexagones de retour

Enregistrez-le sous toarduino.py. Créez un nouveau noeud de base à nouveau, changer sa fonction à « toarduino/writetocsv » et créer deux nouveaux paramètres. Les deux ont un widget de la chaîne mais le premier a une liste comme gamme, tandis que le second a valeur comme gamme. Appel le premierà maléfices et le second un nom. Nous envoyer la sortie du nœud hexagonale dans le port de maléfices et entrez un nom de fichier dans le paramètre name.

code de l’Arduino

Voici le code arduino commencé de tutoriel de Tom Igoe sur l’aire de jeu pour Arduino. La fonction shifter traverse tous les octets et a 3 arguments. (tableau de séquence, temporisé, montant). ovale octet [175] stocke les informations de NodeBox.
Le potPin réfère à un potentiomètre qui permet nous pour contrôler la temporisé sur l’interface.

--

//**************************************************************//
code a commencé à partir de cet exemple d’aire de jeu pour arduino :
Nom : shiftOutCode, Hello World
Auteur : Carlyn Maw, Tom Igoe, David A. Mellis
Date : 25 octobre 2006
Mis à jour le : 23 mars 2010
Version : 2.0
Note : Le Code pour l’utilisation d’un registre à décalage 74HC595 / /
: à compter de 0 à 255
//****************************************************************

int latchPin = 8 ;
int clockPin = 12 ;
int potPin = A0 ;
int dataPin = 11 ;

ovale octet [175] = {0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0,
0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0xff, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 3, 0xff, 0xc0, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 7,
0xFF, 0xe0, 0 x 0, 0 x 0, 0 x 0, 0 x 7, 0 x 0, 0xff, 0xe0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0xf, 0xff, 0xf0, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0xf,
0xFF, 0xf0, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f,
0xFF, 0xf8, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f,
0xFF, 0xf8, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0x1f, 0xff, 0xf8, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0xf, 0xff, 0xf0, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0xf,
0xFF, 0xf0, 0 x 0, 0 x 0, 0 x 0, 0 x 7, 0 x 0, 0xff, 0xe0, 0 x 0, 0 x 0, 0 x 0, 0 x 7, 0 x 0, 0xff, 0xe0, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 3,
0xFF, 0xc0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0xff, 0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0,
0 x 0 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0, 0 x 0} ;

void setup()
{
pinMode (dataPin, sortie) ;
pinMode (latchPin, sortie) ;
pinMode (clockPin, sortie) ;
pinMode (potPin, entrée) ;
Serial.Begin(9600) ;
}

Sub shifter (seq1 Byte, flotteur temporisé, int len) {}
pour (int x = 0; x < len; x ++)
{
digitalWrite (latchPin, basse) ;            commencer sturen via latchpin
Si (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, HIGH) ;           arrêter versturen
Delay(timeDelay) ;
}
Delay(timeDelay*20) ;
}

void loop() {}
temp de flotteur = analogRead(potPin) ;
flotteur timeDelay = mappé (temp, 0, 1023, 0, 25) ;

levier de vitesses (ovale, temporisé, 175) ;
}

flotteur mappé (float x, float in_min, float in_max, float out_min, float out_max) {}
retour (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min ;
}

une autre image

Maintenant nous avons un modèle de base que nous pouvons utiliser pour créer d’autres images. Changement de l’ellipse à une autre forme crée un nouveau tableau. Vous pouvez créer un seul caractère d’un alphabet. etc.

Articles Liés

À l’aide d’un Circuit intégré monolithique des hyperfréquences (MMIC) comme un amplificateur de 50 MHz

À l’aide d’un Circuit intégré monolithique des hyperfréquences (MMIC) comme un amplificateur de 50 MHz

MMIC IC ont été autour depuis environ 25 ans et sont polyvalents et abordables. Leur petite taille, 2mm, avec fils qui sont "surface mount" par opposition à "trou" décourage beaucoup d'électronique et radio amateurs par leur utilisatio
Skatejoring avec des chiens

Skatejoring avec des chiens

Lorsque vous avez un gros chien, ou peut-être plusieurs petits chiens, vous pourriez aussi bien mettre à travailler. Une activité que j'aime, et mes chiens semblent apprécier ainsi, est skatejoring. Le nom dérive de skijoring, qui a des chiens, des c
Bifréquence RC sortie Webserver

Bifréquence RC sortie Webserver

Ce projet est un serveur basé sur ESP8266 « domotique » qui permet de contrôler plusieurs prises de courant sous contrôle RF sur 315MHz et 434 MHz. utilisation deux émetteurs et récepteurs deux (une paire pour chaque fréquence), il peut contrôler les
Prévention des incendies de maison avec le sectionneur de détecteur de fumée

Prévention des incendies de maison avec le sectionneur de détecteur de fumée

Il y a près de dix ans j'ai commencé un sinistre majeur. Yep, les accidents se produisent, et parfois une petite erreur peut avoir des conséquences désastreuses. Un jeune fabricant couchait avec électricité peut être particulièrement vulnérable à ces
Plusieurs DEL clignotant à des rythmes différents

Plusieurs DEL clignotant à des rythmes différents

Dans ce tutoriel, je vais vous montrer comment à clignoter plusieurs del à des rythmes différents sur Arduino-comme les planches à l'aide de VIPER.Un témoin clignotant est connu comme le « Bonjour le monde des appareils embarqués »... mais avec VIPER
Contrôle des régulateurs de vitesse avec Arduino.

Contrôle des régulateurs de vitesse avec Arduino.

Hé les gars, je suis de retour avec un autre instructable. Il s'agit de régulateurs de vitesse RC. Ce que cela va faire est de vous permettre de tester votre contrôleur de vitesse dans le monde de l'Arduino à l'aide de la série, puis vous écrivez les
Méfiez-vous des chiquenaudes périlleuses par compas magnétiques

Méfiez-vous des chiquenaudes périlleuses par compas magnétiques

par tonytran2015 (Melbourne, Australie)Il y a eu mise en garde par un expert de l'alpinisme que beaucoup de gens a obtenu en situation périlleuse quand leurs compas renversé inopinément direction tandis que dans le stockage. Le Council of Scotland de
Modification de prothèses pour douleur soulagement des Points de pression

Modification de prothèses pour douleur soulagement des Points de pression

travailler là-dessus pendant un certain temps maintenant, mais j'ai avons fait quelques progrès que je voudrais partager. Pas fini parce que la solution piratée provoque encore quelques douleurs, mais c'est d'aider mon cousin Zaid avec la douleur que
Contrôle de moteur sans balai avec Arduino, récupéré moteur HD et des capteurs Hall

Contrôle de moteur sans balai avec Arduino, récupéré moteur HD et des capteurs Hall

il y a beaucoup d'intérêt ces jours-ci chez les amateurs dans le contrôle moteur Brushless DC (BLDC), qui ont amélioré la performance et une meilleure efficacité énergétique surREDUCTEUR traditionnels, mais sont plus difficiles à utiliser. Beaucoup d
Comment construire des haut-parleurs Custom

Comment construire des haut-parleurs Custom

construire vos propres haut-parleurs personnalisés a obtenu d'être une des activités bricolage parmi le plus enrichissantes, simples et rentables que j'ai rencontré. Je suis absolument choqué qu'il n'a pas eu une plus grande présence sur Instructable
Hex, modification des quantités d’articles dans le SEV : Skyrim (Xbox)

Hex, modification des quantités d’articles dans le SEV : Skyrim (Xbox)

hors je veux d'abord personnellement m'excuser pour mon absence récente de Instructables que j'ai été dur au travail au Collège. Mais je suis de retour avec une introduction utile à base hexagonale modding de Skyrim sauve.En utilisant cette méthode,
Jalonner des côtés/clôture côtés pour 2014 Dodge 1500 4x4 camionnette

Jalonner des côtés/clôture côtés pour 2014 Dodge 1500 4x4 camionnette

Première ; quelques points à noterMême si j'ai des talents de menuisier, c'est ma première fois entreprend un projet de cette nature.C'est aussi mon premier Instructable.Je ne suis pas ingénieur, mais je suis enclin mécaniquement.Toutes les photos on
Des moules 3D imprimés pour verre s’effondrant

Des moules 3D imprimés pour verre s’effondrant

Il s'agit d'un projet de recherche sur les moyens d'utiliser la fabrication numérique en verre de glissement ou de procédés de moulage. Ce processus a été mené avec l'assistant de recherche diplômé Dustin Schipper.Étape 1: Créer une géométrieUtilisez
Comment faire des Animations gratuites - Pivot Stickfigure Animator

Comment faire des Animations gratuites - Pivot Stickfigure Animator

Bonjour, vous êtes une de ces personnes qui juste vu une animation et pensé que ce serait cool de faire votre propre ? Ou peut-être vous voulez savoir si vous êtes découper pour en faire, mais vous ne voulez pas perdre des centaines de dollars, cherc