Friday 26 May 2017

Moving Average Max Msp

Moving Averages: Was sind sie Unter den beliebtesten technischen Indikatoren werden gleitende Mittelwerte verwendet, um die Richtung des aktuellen Trends zu messen. Jede Art von gleitendem Durchschnitt (gemeinhin in diesem Tutorial als MA geschrieben) ist ein mathematisches Ergebnis, das durch Mittelung einer Anzahl von vergangenen Datenpunkten berechnet wird. Sobald dies bestimmt ist, wird der daraus resultierende Mittelwert auf eine Tabelle aufgetragen, um es den Händlern zu ermöglichen, auf geglättete Daten zu schauen, anstatt sich auf die täglichen Preisschwankungen zu konzentrieren, die in allen Finanzmärkten inhärent sind. Die einfachste Form eines gleitenden Durchschnitts, der als einfacher gleitender Durchschnitt (SMA) bekannt ist, wird berechnet, indem das arithmetische Mittel eines gegebenen Satzes von Werten genommen wird. Um beispielsweise einen gleitenden 10-Tage-Durchschnitt zu berechnen, würden Sie die Schlusskurse der letzten 10 Tage addieren und dann das Ergebnis mit 10 teilen. In Abbildung 1 ist die Summe der Preise für die letzten 10 Tage (110) Geteilt durch die Anzahl von Tagen (10), um den 10-Tage-Durchschnitt zu erreichen. Wenn ein Trader einen 50-Tage-Durchschnitt sehen möchte, würde die gleiche Art der Berechnung gemacht, aber er würde auch die Preise in den letzten 50 Tagen enthalten. Der daraus resultierende Durchschnitt unter (11) berücksichtigt die letzten 10 Datenpunkte, um den Händlern eine Vorstellung davon zu geben, wie ein Vermögenswert im Verhältnis zu den vergangenen 10 Tagen bewertet wird. Vielleicht fragen Sie sich, warum technische Händler nennen dieses Tool einen gleitenden Durchschnitt und nicht nur ein normaler Durchschnitt. Die Antwort ist, dass, wenn neue Werte verfügbar werden, die ältesten Datenpunkte aus dem Satz fallen gelassen werden müssen und neue Datenpunkte hereinkommen müssen, um sie zu ersetzen. Somit bewegt sich der Datensatz ständig auf neue Daten, sobald er verfügbar ist. Diese Berechnungsmethode stellt sicher, dass nur die aktuellen Informationen berücksichtigt werden. Wenn in Fig. 2 der neue Wert von 5 zu dem Satz hinzugefügt wird, bewegt sich das rote Feld (das die letzten 10 Datenpunkte darstellt) nach rechts und der letzte Wert von 15 wird aus der Berechnung entfernt. Weil der relativ kleine Wert von 5 den hohen Wert von 15 ersetzt, würden Sie erwarten, dass der Durchschnitt des Datensatzabbaus zu sehen, was er tut, in diesem Fall von 11 bis 10. Wie sehen sich die gleitenden Mittelwerte aus? MA berechnet worden sind, werden sie auf ein Diagramm aufgetragen und dann verbunden, um eine gleitende mittlere Linie zu erzeugen. Diese Kurvenlinien sind auf den Diagrammen der technischen Händler üblich, aber wie sie verwendet werden, können drastisch variieren (mehr dazu später). Wie Sie in Abbildung 3 sehen können, ist es möglich, mehr als einen gleitenden Durchschnitt zu irgendeinem Diagramm hinzuzufügen, indem man die Anzahl der Zeitperioden, die in der Berechnung verwendet werden, anpasst. Diese kurvenreichen Linien scheinen vielleicht ablenkend oder verwirrend auf den ersten, aber youll wachsen Sie daran gewöhnt, wie die Zeit vergeht. Die rote Linie ist einfach der durchschnittliche Preis in den letzten 50 Tagen, während die blaue Linie der durchschnittliche Preis in den letzten 100 Tagen ist. Nun, da Sie verstehen, was ein gleitender Durchschnitt ist und wie es aussieht, stellen Sie auch eine andere Art von gleitenden Durchschnitt ein und untersuchen, wie es sich von der zuvor genannten einfachen gleitenden Durchschnitt unterscheidet. Die einfache gleitende Durchschnitt ist sehr beliebt bei den Händlern, aber wie alle technischen Indikatoren, hat es seine Kritiker. Viele Personen argumentieren, dass die Nützlichkeit der SMA begrenzt ist, da jeder Punkt in der Datenreihe gleich gewichtet wird, unabhängig davon, wo er in der Sequenz auftritt. Kritiker argumentieren, dass die neuesten Daten bedeutender sind als die älteren Daten und sollten einen größeren Einfluss auf das Endergebnis haben. Als Reaktion auf diese Kritik begannen die Händler, den jüngsten Daten mehr Gewicht zu verleihen, was seitdem zur Erfindung verschiedener Arten von neuen Durchschnittswerten geführt hat, wobei der populärste der exponentielle gleitende Durchschnitt (EMA) ist. (Für weitere Informationen siehe Grundlagen der gewichteten gleitenden Mittelwerte und was ist der Unterschied zwischen einer SMA und einer EMA) Exponentieller gleitender Durchschnitt Der exponentielle gleitende Durchschnitt ist eine Art von gleitendem Durchschnitt, die den jüngsten Preisen mehr Gewicht verleiht, um sie reaktionsfähiger zu machen Zu neuen Informationen. Das Erlernen der etwas komplizierten Gleichung für die Berechnung einer EMA kann für viele Händler unnötig sein, da fast alle Kartierungspakete die Berechnungen für Sie durchführen. Jedoch für Sie Mathegeeks heraus dort, ist hier die EMA-Gleichung: Wenn Sie die Formel verwenden, um den ersten Punkt der EMA zu berechnen, können Sie feststellen, dass es keinen Wert gibt, der als das vorhergehende EMA benutzt werden kann. Dieses kleine Problem kann gelöst werden, indem man die Berechnung mit einem einfachen gleitenden Durchschnitt beginnt und mit der obigen Formel fortfährt. Wir haben Ihnen eine Beispielkalkulationstabelle zur Verfügung gestellt, die praktische Beispiele enthält, wie Sie sowohl einen einfachen gleitenden Durchschnitt als auch einen exponentiellen gleitenden Durchschnitt berechnen können. Der Unterschied zwischen der EMA und SMA Nun, da Sie ein besseres Verständnis haben, wie die SMA und die EMA berechnet werden, können wir einen Blick darauf werfen, wie sich diese Mittelwerte unterscheiden. Mit Blick auf die Berechnung der EMA, werden Sie feststellen, dass mehr Wert auf die jüngsten Datenpunkte gelegt wird, so dass es eine Art von gewichteten Durchschnitt. In Abbildung 5 sind die Anzahl der Zeitperioden, die in jedem Durchschnitt verwendet werden, identisch (15), aber die EMA reagiert schneller auf die sich ändernden Preise. Beachten Sie, wie die EMA einen höheren Wert hat, wenn der Preis steigt, und fällt schneller als die SMA, wenn der Preis sinkt. Diese Reaktionsfähigkeit ist der Hauptgrund, warum viele Händler es vorziehen, die EMA über die SMA zu verwenden. Was sind die verschiedenen Tage Durchschnittliche Mittelwerte sind eine völlig anpassbare Indikator, was bedeutet, dass der Benutzer frei wählen können, was Zeitrahmen sie bei der Schaffung der durchschnittlichen wollen. Die häufigsten Zeitabschnitte, die bei gleitenden Durchschnitten verwendet werden, sind 15, 20, 30, 50, 100 und 200 Tage. Je kürzer die Zeitspanne, die verwendet wird, um den Durchschnitt zu erzeugen, desto empfindlicher wird es für Preisänderungen sein. Je länger die Zeitspanne, desto weniger empfindlich, oder mehr geglättet, wird der Durchschnitt sein. Es gibt keinen richtigen Zeitrahmen für die Einrichtung Ihrer gleitenden Durchschnitte. Der beste Weg, um herauszufinden, welche am besten für Sie arbeitet, ist es, mit einer Reihe von verschiedenen Zeitperioden zu experimentieren, bis Sie eine finden, die zu Ihrer Strategie passt. Moving Averages: So verwenden Sie ThemDAX enthält einige statistische Aggregationsfunktionen wie Durchschnitt, Varianz und Standardabweichung. Andere typische statistische Berechnungen erfordern, dass Sie längere DAX-Ausdrücke schreiben. Excel, von diesem Gesichtspunkt, hat eine viel reichere Sprache. Die statistischen Muster sind eine Sammlung von gemeinsamen statistischen Berechnungen: Median, Modus, gleitenden Durchschnitt, Perzentil und Quartil. Wir danken Colin Banfield, Gerard Brückl und Javier Guilln, deren Blogs einige der folgenden Muster inspiriert haben. Grundmuster Beispiel Die Formeln in diesem Muster sind die Lösungen für spezifische statistische Berechnungen. Mit Hilfe von Standard-DAX-Funktionen kann der Mittelwert (arithmetischer Mittelwert) eines Wertsatzes berechnet werden. DURCHSCHNITT. Gibt den Durchschnitt aller Zahlen in einer numerischen Spalte zurück. AVERAGEA. Gibt den Durchschnitt aller Zahlen in einer Spalte zurück und behandelt sowohl Text als auch nicht-numerische Werte (nicht numerische und leere Textwerte zählen als 0). AVERAGEX. Berechnen Sie den Durchschnitt für einen Ausdruck, der über einer Tabelle ausgewertet wird. Moving Average Der gleitende Durchschnitt ist eine Berechnung, um Datenpunkte zu analysieren, indem eine Reihe von Mittelwerten verschiedener Teilmengen des vollständigen Datensatzes erstellt wird. Sie können viele DAX-Techniken verwenden, um diese Berechnung zu implementieren. Die einfachste Technik besteht darin, AVERAGEX zu verwenden, eine Tabelle der gewünschten Granularität zu iterieren und für jede Iteration den Ausdruck zu berechnen, der den einzelnen Datenpunkt generiert, der im Durchschnitt verwendet werden soll. Die folgende Formel berechnet beispielsweise den gleitenden Durchschnitt der letzten 7 Tage, vorausgesetzt, dass Sie eine Datumstabelle in Ihrem Datenmodell verwenden. Mit AVERAGEX berechnen Sie automatisch das Maß auf jeder Granularität. Bei der Verwendung einer Maßnahme, die aggregiert werden kann (wie z. B. SUM), kann ein anderer Ansatz, der auf CALCULATE basiert, schneller sein. Sie finden diesen Alternativansatz im kompletten Muster von Moving Average. Sie können Standard-DAX-Funktionen verwenden, um die Varianz eines Wertsatzes zu berechnen. VAR. S. Liefert die Varianz von Werten in einer Spalte, die eine Sample-Population darstellt. VAR. P. Gibt die Varianz von Werten in einer Spalte zurück, die die gesamte Population darstellt. VARX. S. Gibt die Varianz eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die eine Sample-Population darstellt. VARX. P. Gibt die Varianz eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die die gesamte Population repräsentiert. Standardabweichung Sie können Standard-DAX-Funktionen verwenden, um die Standardabweichung eines Wertsatzes zu berechnen. STDEV. S. Liefert die Standardabweichung von Werten in einer Spalte, die eine Stichprobenpopulation darstellt. STDEV. P. Gibt die Standardabweichung von Werten in einer die gesamte Population repräsentierenden Spalte zurück. STDEVX. S. Gibt die Standardabweichung eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die eine Probenpopulation darstellt. STDEVX. P. Gibt die Standardabweichung eines Ausdrucks zurück, der über eine Tabelle ausgewertet wird, die die gesamte Population darstellt. Der Median ist der numerische Wert, der die höhere Hälfte einer Population von der unteren Hälfte trennt. Wenn es eine ungerade Anzahl von Zeilen gibt, ist der Median der Mittelwert (Sortierung der Zeilen vom niedrigsten zum höchsten Wert). Wenn es eine gerade Anzahl von Zeilen gibt, ist dies der Mittelwert der beiden mittleren Werte. Die Formel ignoriert leere Werte, die nicht als Teil der Bevölkerung betrachtet werden. Das Ergebnis ist identisch mit der MEDIAN-Funktion in Excel. Abbildung 1 zeigt einen Vergleich zwischen dem von Excel zurückgegebenen Ergebnis und der entsprechenden DAX-Formel für die mittlere Berechnung. Abbildung 1 Beispiel der Medianberechnung in Excel und DAX. Der Modus ist der Wert, der am häufigsten in einem Satz von Daten angezeigt wird. Die Formel ignoriert leere Werte, die nicht als Teil der Bevölkerung betrachtet werden. Das Ergebnis ist identisch mit den MODE - und MODE. SNGL-Funktionen in Excel, die nur den minimalen Wert zurückgeben, wenn es mehrere Modi in den betrachteten Wertsätzen gibt. Die Excel-Funktion MODE. MULT würde alle Modi zurückgeben, aber Sie können sie nicht als Maßnahme in DAX implementieren. Abbildung 2 vergleicht das Ergebnis, das von Excel mit der entsprechenden DAX-Formel für die Modusberechnung zurückgegeben wird. Abbildung 2 Beispiel für die Modusberechnung in Excel und DAX. Perzentil Das Perzentil ist der Wert, unter dem ein bestimmter Prozentsatz der Werte in einer Gruppe sinkt. Die Formel ignoriert leere Werte, die nicht als Teil der Bevölkerung betrachtet werden. Die Berechnung in DAX erfordert mehrere Schritte, die im Abschnitt Vollständiges Muster beschrieben werden und zeigt, wie die gleichen Ergebnisse der Excel-Funktionen PERCENTILE, PERCENTILE. INC und PERCENTILE. EXC zu erhalten sind. Die Quartile sind drei Punkte, die einen Satz von Werten in vier gleiche Gruppen teilen, wobei jede Gruppe ein Viertel der Daten umfasst. Sie können die Quartile mit dem Percentile-Muster nach diesen Korrespondenzen berechnen: Erstes Quartil-Unterquartil 25. Perzentil Zweites Quartil-Median 50. Perzentil Drittes Quartil-Oberquartil 75. Perzentil Komplettes Muster Einige statistische Berechnungen haben eine längere Beschreibung des gesamten Musters, da Haben Sie möglicherweise verschiedene Implementierungen abhängig von Datenmodellen und anderen Anforderungen. Gleitender Durchschnitt Normalerweise werten Sie den gleitenden Durchschnitt aus, indem Sie auf den Taggranularitätsgrad verweisen. Die allgemeine Vorlage der folgenden Formel hat diese Marker: ltnumberofdaysgt ist die Anzahl der Tage für den gleitenden Durchschnitt. Ltdatecolumngt ist die Datumspalte der Datumstabelle, wenn Sie eine oder die Datumspalte der Tabelle mit Werten haben, wenn keine separate Datumstabelle vorhanden ist. Ltmeasuregt ist die zu berechnende Größe als gleitender Durchschnitt. Das einfachste Muster verwendet die Funktion AVERAGEX in DAX, die automatisch nur die Tage berücksichtigt, für die es einen Wert gibt. Alternativ können Sie die folgende Vorlage in Datenmodellen ohne Datumstabelle und mit einer aggregierten Maßnahme (wie zB SUM) über den gesamten betrachteten Zeitraum verwenden. Die vorhergehende Formel berücksichtigt einen Tag ohne entsprechende Daten als Maß, das 0-Wert hat. Dies kann nur geschehen, wenn Sie eine separate Datumstabelle haben, die Tage enthalten kann, für die es keine entsprechenden Transaktionen gibt. Sie können den Nenner für den Durchschnitt nur über die Anzahl der Tage, für die es Transaktionen mit dem folgenden Muster gibt, festlegen: ltfacttablegt ist die Tabelle, die mit der Datumstabelle verknüpft ist und die von der Maßeinheit berechneten Werte enthält. Sie können die DATESBETWEEN - oder DATESINPERIOD-Funktionen anstelle von FILTER verwenden, aber diese arbeiten nur in einer regulären Datumstabelle, während Sie das oben beschriebene Muster auch auf nicht-reguläre Datumstabellen und auf Modelle anwenden können, die keine Datumstabelle haben. Betrachten Sie zum Beispiel die verschiedenen Ergebnisse, die durch die beiden folgenden Maßnahmen hervorgerufen werden. In Abbildung 3 sehen Sie, dass es keine Verkäufe am 11. September 2005 gibt. Allerdings ist dieses Datum in der Tabelle Datum enthalten, also gibt es 7 Tage (vom 11. September bis 17. September), die nur 6 Tage mit Daten haben. Abbildung 3 Beispiel einer gleitenden Durchschnittsberechnung unter Berücksichtigung und Ignorierung von Terminen ohne Umsatz. Die Maßnahme Moving Average 7 Tage hat eine niedrigere Zahl zwischen dem 11. September und 17. September, weil es berücksichtigt 11. September als Tag mit 0 Verkäufe. Wenn Sie Tage ohne Umsatz ignorieren möchten, dann verwenden Sie die Maßnahme Durchschnittliche 7 Tage Keine Zero. Dies könnte der richtige Ansatz sein, wenn Sie eine vollständige Datumstabelle haben, aber Sie Tage ohne Transaktionen ignorieren möchten. Mit dem Moving Average 7 Tage Formel ist das Ergebnis korrekt, da AVERAGEX automatisch nur Leerwerte berücksichtigt. Beachten Sie, dass Sie die Leistung eines gleitenden Durchschnitts verbessern können, indem Sie den Wert in einer berechneten Spalte einer Tabelle mit der gewünschten Granularität wie Datum, Datum und Produkt beibehalten. Der dynamische Berechnungsansatz mit einer Maßnahme bietet jedoch die Möglichkeit, einen Parameter für die Anzahl von Tagen des gleitenden Mittelwerts zu verwenden (z. B. ersetzen Sie die Anzahl von Tagen mit einem Maß, das das Parametertabellenmuster implementiert). Der Median entspricht dem 50. Perzentil, das Sie mit dem Perzentilmuster berechnen können. Das Medianmuster ermöglicht es Ihnen, die Medianberechnung mit einem einzigen Maßstab zu optimieren und zu vereinfachen, anstelle der verschiedenen Maßnahmen, die das Perzentilmuster erfordert. Sie können diesen Ansatz verwenden, wenn Sie den Median für die in ltvaluecolumngt enthaltenen Werte berechnen, wie unten gezeigt: Um die Leistung zu verbessern, möchten Sie möglicherweise den Wert einer Maßnahme in einer berechneten Spalte beibehalten, wenn Sie den Median für die Ergebnisse von erhalten möchten Eine Maßnahme im Datenmodell. Bevor Sie diese Optimierung durchführen, sollten Sie die MedianX-Berechnung anhand der folgenden Vorlage mit diesen Markern implementieren: ltgranularitytablegt ist die Tabelle, die die Granularität der Berechnung definiert. Beispielsweise könnte es sich um die Datumstabelle handeln, wenn Sie den Mittelwert einer auf Tagesebene berechneten Maßnahme berechnen wollen, oder es könnte VALUES (8216DateYearMonth) sein, wenn Sie den Median einer auf der Monatsstufe berechneten Maßeinheit berechnen möchten. Ltmeasuregt ist das Maß für die Berechnung für jede Zeile der ltgranularitytablegt für die mittlere Berechnung. Ltmeasuretablegt ist die Tabelle, die die von ltmeasuregt verwendeten Daten enthält. Wenn z. B. das ltgranularitytablegt eine Dimension wie 8216Date8217 ist, wird das ltmeasuretablegt 8216Internet Sales8217 sein, das die Internet Sales Amount-Spalte enthält, die durch das Internet-Gesamtumsatzmaß summiert wird. Beispielsweise können Sie den Median des Gesamtverkaufs für alle Kunden in Adventure Works wie folgt schreiben: Tip Das folgende Muster: wird verwendet, um Zeilen aus ltgranularitytablegt zu entfernen, die keine entsprechenden Daten in der aktuellen Auswahl haben. Es ist ein schnellerer Weg, als den folgenden Ausdruck zu verwenden: Sie können jedoch den gesamten CALCULATETABLE-Ausdruck durch nur ltgranularitytablegt ersetzen, wenn Sie leere Werte des ltmeasuregt als 0 betrachten möchten. Die Performance der MedianX-Formel hängt von der Anzahl der Zeilen in der Tabelle ab Und die Komplexität der Maßnahme. Wenn die Leistung schlecht ist, können Sie das ltmeasuregt-Ergebnis in einer berechneten Spalte des lttablegt fortbestehen, aber dies wird die Fähigkeit des Anwendens von Filtern auf die mittlere Berechnung bei der Abfragezeit beeinträchtigen. Perzentile Excel hat zwei verschiedene Implementierungen der Perzentilberechnung mit drei Funktionen: PERCENTILE, PERCENTILE. INC und PERCENTILE. EXC. Sie geben alle das K-te Perzentil der Werte zurück, wobei K im Bereich von 0 bis 1 liegt. Der Unterschied besteht darin, daß PERCENTILE und PERCENTILE. INC K als einen Inklusionsbereich betrachten, während PERCENTILE. EXC den K-Bereich 0 bis 1 als exklusiv betrachtet . Alle diese Funktionen und ihre DAX-Implementierungen erhalten einen Perzentilwert als Parameter, den wir K. ltKgt-Perzentilwert im Bereich von 0 bis 1 nennen. Die beiden DAX-Implementierungen von Perzentil erfordern ein paar ähnliche Maßnahmen, die aber unterschiedlich genug sind Zwei verschiedene Satz von Formeln. Die in jedem Muster definierten Maßnahmen sind: KPerc. Der Perzentilwert entspricht ltKgt. PercPos. Die Position des Perzentils in dem sortierten Satz von Werten. ValueLow. Der Wert unterhalb der Perzentilposition. WertHigh. Der Wert über der Perzentilposition. Perzentil. Die endgültige Berechnung des Perzentils. Sie benötigen die ValueLow - und ValueHigh-Maßnahmen, falls das PercPos einen Dezimalteil enthält, da Sie dann zwischen ValueLow und ValueHigh interpolieren müssen, um den richtigen Perzentilwert zurückzugeben. Fig. 4 zeigt ein Beispiel der Berechnungen, die mit Excel - und DAX-Formeln durchgeführt werden, wobei beide Algorithmen von Perzentil (inklusive und exklusiv) verwendet werden. Abbildung 4 Perzentilberechnungen mit Excel-Formeln und der äquivalenten DAX-Berechnung. In den folgenden Abschnitten führen die Percentile-Formeln die Berechnung von Werten durch, die in einer Tabellenspalte DataValue gespeichert sind, während die PercentileX-Formeln die Berechnung auf Werte ausführen, die von einer bei einer gegebenen Granularität berechneten Maßeinheit zurückgegeben werden. Percentile Inclusive Die Percentile Inclusive-Implementierung ist die folgende. Percentile Exclusive Die Percentile Exclusive-Implementierung ist die folgende. PercentileX Inclusive Die PercentileX Inclusive-Implementierung basiert auf folgender Vorlage: ltgranularitytablegt ist die Tabelle, die die Granularität der Berechnung definiert. Beispielsweise könnte es sich um die Datumstabelle handeln, wenn Sie das Perzentil einer Kennzahl auf Tagesebene berechnen möchten, oder es könnte VALUES (8216DateYearMonth) sein, wenn Sie das Perzentil einer Kennzahl auf der Monatsstufe berechnen möchten. Ltmeasuregt ist das Maß für die Berechnung für jede Zeile von ltgranularitytablegt für die Perzentilberechnung. Ltmeasuretablegt ist die Tabelle, die die von ltmeasuregt verwendeten Daten enthält. Wenn zum Beispiel das ltgranularitytablegt eine Dimension wie 8216Date, 8217 ist, dann ist das ltmeasuretablegt 8216Sales8217, das die Summenspalte enthält, die durch das Gesamtbetragsmaß summiert wird. Beispielsweise können Sie die PercentileXInc des Gesamtbetrags der Verkäufe für alle Daten in der Datumstabelle wie folgt schreiben: PercentileX Exclusive Die PercentileX Exclusive-Implementierung basiert auf der folgenden Vorlage, wobei dieselben Markierungen in PercentileX Inclusive verwendet werden: Zum Beispiel Sie Kann die PercentileXExc des Gesamtbetrags der Verkäufe für alle Daten in der Datumstabelle wie folgt schreiben: Halten Sie mich informiert über bevorstehende Muster (Newsletter). Deaktivieren Sie die Datei frei herunterladen. Veröffentlicht am März 17, 2014 vonTouch Umsetzung w Arduino und PureData - MaxMSP Touch ist eine kapazitive Sensing-Technologie von Walt Disney Research entwickelt, die in der Lage, Touch-und Gestenerkennung für praktisch jede Art von Objekt oder Oberfläche bieten. Im Gegensatz zu einer gemeinsamen kapazitiven Erfassung, die die kapazitive Last eines Schwingkreises über eine einzige Frequenz erfasst, berührt Touch einen Oszillator mit variabler Frequenz und nimmt viele Messwerte bei vielen verschiedenen Frequenzen auf. Die Außenweltaktivität mit dem Objekt kann dann durch das resultierende Datenprofil abgeleitet werden. Das Original ist da. DZL und Mads Hobye sind 2 ehrfürchtige Kerle Illutron, das heraus eine sehr kluge Weise herausstellte, diese ordentliche Vorrichtung unter Verwendung eines Arduino und ein Bündel der sehr preiswerten und gemeinsamen passiven Bestandteile zu implementieren. Sie waren so freundlich, ihre Anstrengungen zur Welt hier und hier zu teilen. Und dieses wundervolle belehrbar zu machen. Also beschlossen wir, das kleine Ding auf eigene Faust zu bauen und es mit zwei Umgebungen zu verbinden, die wir lieben: PureData und MaxMSP. Komponenten-Liste für das Touchboard: Widerstände: 10k, 1M, 3,3k Kondensatoren: 100pf, 10nf Diode: 1N4148 Coil-Induktor: 10mH Wir haben beschlossen, eine separate Platine mit Standard-Platine anstelle eines Arduino-Schildes zu bauen, um es möglicherweise tragbar zu machen Andere Mikrocontroller oder verschiedene Layouts der Arduino-Platine (Mikro, Mega und so weiter). Das sind die Schemata: Das RED-Kabel auf der linken Seite ist mit Pin 9 verbunden, der als Oszillator mit variabler Frequenz wirkt. Der GELBE Draht trägt das Ausgangssignal und ist mit dem analogen Pin 0 verbunden. Der BLUE-Draht links ist mit Masse verbunden. Auf der rechten Seite ist das RED-Kabel am Objekt befestigt, während das BLUE-Kabel je nach Anwendung mit Erde oder einem anderen Objekt verbunden werden kann. Die ursprüngliche Implementierung von Disney verwendet einen sehr genauen Sinusgenerator, während wir mit einer viel weniger ausgefallenen Rechteckwelle mit vielen unerwünschten Oberschwingungen leben müssen. Wie DZL herausfand, ist dies kein großes Problem, da das Signal, das nach der Spule ausgewählt wird, stabil genug ist, um verwendet und verarbeitet zu werden. Der ATMEL-Prozessor des Arduino stellt drei programmierbare Hardware-Takte zur Verfügung, die mit den von Touch benötigten Frequenzen arbeiten können und somit das erforderliche Oszillationssignal liefern. Das Programmieren der Hardware-Uhren eines Arduino ist etwas schwieriger als das Schreiben Ihrer durchschnittlichen Skizze, weil wir direkt mit den ATMEL-Registern zu tun haben. Bitte schauen Sie sich diese sehr gut gemacht Tutorial, wenn Sie weitere Informationen benötigen. Grundsätzlich war es, den CTC-Modus für Timer1 einzurichten und das Vergleichsregister in einer for-Schleife zu erhöhen, um schrittweise von der höchsten generierbaren Frequenz (8 MHz) zu den unteren zu wischen. Das ursprüngliche Projekt von DZL und Mads Hobye sendet die digitalisierten Messwerte vom analogen Pin 0 über den seriellen Port im Binärformat. Wir beschlossen, die Dinge ein wenig weniger effizient, aber mehr Menschen (und Patcher) lesbar mit ASCII-Codierung. Jede Datenzeile wird durch den Frequenzindex, ein Leerzeichen, den gemessenen Wert für diese Frequenz und ein Zeilensprungzeichen gebildet. PureData - und MaxMSP-Patches sind sehr ähnlich: Sie lesen die Zeilen der Daten, die vom seriellen Port kommen, speichern die Werte in einem Array und finden den Index des größten Wertes im Array. Um eine neue Geste zu erkennen, muss der Benutzer sie auf dem Objekt ausführen und den Spitzenindex als Referenz aufzeichnen. Der nächste Verweis auf den neuen Peak entspricht dann der erkannten Geste. Wir beschlossen, einen exponentiellen gleitenden Durchschnitt auf die Signalwerte zu addieren, um das Rauschen weiter zu reduzieren und die Erkennungskonsistenz zu verbessern. Für jeden Frequenzindex i. Wird der neue Wert y zum Zeitpunkt n wie folgt berechnet: wobei xi, n der aktuelle Messwert und a ein Faktor im Bereich von 0 bis 1 ist. Kleine Werte einer mittleren kleinen Glättung und schnellen Aktualisierungen, während große Werte einer mittleren Menge von Glättung, aber sehr langsam Updates. Sowohl der Erkennungs - als auch der Glättungsalgorithmus sind sehr einfach, aber umständlich, um innerhalb einer Patcher-Sprache wie PureData oder MaxMSP zu schreiben. Wir fanden es viel einfacher, alle Datenverarbeitung im Inneren des Arduino, die Ausgabe nur Index und Wert des Maximums für jede Iteration zu tun. Es wird unmöglich, die Phantasie Graph, aber die Patches werden viel sauberer und wir nicht verstopfen die langsame serielle Arduino-PC-Kommunikation mit vielen unerwünschten Daten. Sie können den Code für beide Versionen (touchegraph und touchepeak) auf unserem Github-Repository herunterladen.


No comments:

Post a Comment