Home > Technologie > Arduino Entriegelungsmuster

Arduino Entriegelungsmuster

0
Advertisement

Arduino Entriegelungsmuster

Das war eine persönliche Herausforderung, ich wollte etwas ähnliches wie das Android Unlock Pattern in weniger als 30 Minuten entwerfen.
Grundsätzlich setzen Sie die Punkte, die Sie gehen müssen (zB gehen Sie zu Punkt 1,1, dann Punkt 50,50). Dankbar, weil es wirklich schwer wäre, genau den Punkt zu treffen, können wir Grenzen setzen (Punkt 1 ist zwischen 1,1 und 10,10). Dies macht es viel einfacher, 'hit' den Punkt. Darüber hinaus müssen wir sicherstellen, dass Sie zum vorherigen Punkt, so dass Sie nicht auf das Muster der falsche Weg um.

Schritt 1: Was Sie benötigen.

Arduino Entriegelungsmuster

Arduino Entriegelungsmuster

Arduino Entriegelungsmuster

Sie wollen ein Arduino, ein LCD (hier ist es ein nokia 3310/5510 Display) und ein Nintendo DS Touchscreen haben. Kaufen Sie die Breakout-Board für die, es ist wirklich schwierig, es anders zu verdrahten. Sie wollen auch einige einige Drähte.

Schritt 2: Wie es funktioniert.

Das Ziel war, das in weniger als einer halben Stunde zu erreichen. Im Moment ist es ein sehr hässliches Stück Code. Es ist auch nicht sehr sicher. Ich habe noch einen Weg, um Menschen zu verhindern, dass der Code durch Berühren überall auf dem Display zu implementieren. Es gibt derzeit einen Timer, der setzt, wenn Sie den ersten Punkt berühren und neu initialisiert die Skizze, wenn Sie nicht schnell genug sind, aber Sie wirklich, sollte wirklich nicht diese für etwas, das Sie richtig sichern möchten. Wenn ich Zeit habe, werde ich versuchen, eine Bibliothek dafür zu machen, aber dann wieder, mit Prüfungen während des ganzen Jahres, ist die Zeit ein Thema.

Bitte verwenden Sie diese nicht für sicheres Material. Es ist zum Spaß.
Aber das ist auch nicht viel:

Schritt 3: Verdrahtung

* DS-Touchscreen auf Analog 1,2,3,4

* LCD zu Digital 7,6,5,4,3

Wenn Sie nicht wissen, wie diese zu verbinden, Google herum.
Es gibt keinen Sinn in mir, etwas zu erklären, das bereits tausendmal erklärt worden ist.
Denken Sie daran, Google ist Ihr Freund.

Schritt 4: Code

Arduino Entriegelungsmuster

Dies ist der Code. Beachten Sie am Ende, wie ich Punkte definieren und wie die Booleschen sind 'trued', um sicherzustellen, dass alles gut ist.

#include "PCD8544.h"

Int y1 = A0;
Int x2 = A1;
Int y2 = A2;
Int x1 = A3;

Boolescher Punkt1;
Boolescher Punkt2;
Boolescher Punkt3;
Boolescher Punkt 4;
Boolescher Punkt5;

Boolean unlocked;

Int i = 0;

// Pin 7 - Serieller Taktgeber (SCLK)
// Pin 6 - Serieller Datenausgang (DIN)
// Pin 5 - Daten- / Befehlswahl (D / C)
// Pin 4 - LCD-Chipauswahl (CS)
// Pin 3 - LCD-Reset (RST)
PCD8544 nokia = PCD8544 (7, 6, 5, 4, 3);

// eine Bitmap einer 16x16 Obst-Ikone
Statisch unsigned char __attribute__ ((progmem)) logo16_glcd_bmp [] = {
0xf0, 0xf0, 0xf0, 0xf0, 0x30, 0xf8, 0xbe, 0x9f, 0xff, 0xf8, 0xc0, 0xc0, 0xc0, 0x80, 0x00,
0x20, 0x3c, 0x3f, 0x3f, 0x1f, 0x19, 0x1f, 0x7b, 0xfb, 0xfe, 0xfe, 0x07, 0x07, 0x07, 0x03, 0x00,};
#define LOGO16_GLCD_HEIGHT 16
#define LOGO16_GLCD_WIDTH 16

Void setup (void) {

PinMode (11, AUSGANG);
DigitalWrite (11, HIGH);

Nokia.init ();
// Sie können den Kontrast ändern, um die Anzeige anzupassen
// für die beste Betrachtung!
Nokia.setContrast (50);
// schalten Sie alle Pixel ein (ein praktischer Test)
Nokia.command (PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYALLON);
Verzögerung (500);
// zurück zum Normalem
Nokia.command (PCD8544_DISPLAYCONTROL | PCD8544_DISPLAYNORMAL);

aufrechtzuerhalten.

Int readX () {
PinMode (y1, INPUT);
PinMode (x2, OUTPUT);
PinMode (y2, INPUT);
PinMode (x1, AUSGANG);

DigitalWrite (x2, LOW);
DigitalWrite (x1, HIGH);

Verzögerung (5); // Pause zum Einschalten der Leitungen

Return analogRead (y1);
aufrechtzuerhalten.

Int readY () {

PinMode (y1, OUTPUT);
PinMode (x2, INPUT);
PinMode (y2, OUTPUT);
PinMode (x1, INPUT);

DigitalWrite (y1, LOW);
DigitalWrite (y2, HIGH);

Verzögerung (5); // Pause zum Einschalten der Leitungen

Return analogRead (x2);
aufrechtzuerhalten.

Void Schleife (void) {

Int x = readX ();
Int y = readY ();

Nokia.setCursor (0, 0);
Nokia.print ( "Unlock entriegeln");
Nokia.setCursor (0, 10);
Nokia.print ( "Muster");
Nokia.display ();

Wenn (x & lt; = 970 & x & gt; = 870 & amp; y = 250 & y> = 150) {
Point1 = true;
Nokia.setCursor (0,25);
Nokia.print ( "Springender Punkt 2");

aufrechtzuerhalten.

If (point1 == true) {
I ++;
Nokia.setCursor (0,40);
Nokia.print (i);
aufrechtzuerhalten.

Wenn (Punkt 1 = & ndash; wahr & x <= 200 & x> = 90 & y <= 930 & y> = 830) {
Point2 = true;
Nokia.setCursor (0,25);
Nokia.print ( "Springender Punkt 3");
aufrechtzuerhalten.

Wenn (Punkt 2 == wahr & x = 165 & x> = 90 & y <= 250 & y> = 120) {
Point3 = true;
Nokia.setCursor (0,25);
Nokia.print ( "Gehe zu Punkt 4");
aufrechtzuerhalten.

Wenn (punkt = = wahr & x & lt; = 999 & x & gt; = 865 & gt; = 950 & y> = 800) {
Point4 = true;
Nokia.setCursor (0,25);
Nokia.print ( "Gehe zu Punkt 5");
aufrechtzuerhalten.

Wenn (Punkt 4 == wahr & x & lt; = 970 & x & gt; = 870 & amp; y = 250 & y> = 150) {
Point5 = true;
Unlocked = true;
Point1 = false;
Nokia.clear ();
Nokia.setCursor (0,25);
Nokia.print ( "Unlocked");

aufrechtzuerhalten.

Wenn (i> = 150) {
Point1 = false;
Point2 = false;
Point3 = false;
Point4 = false;
Point5 = false;

Nokia.setCursor (0,25);
Nokia.print ( "zu langsam!");
aufrechtzuerhalten.

aufrechtzuerhalten.

Related Reading