Die AZ-Freundin zum Valentinstag 2020! - AZ-Delivery

Bonjour et bienvenue à La Saint-Valentin Project 2020!

Nous voulions faire quelque chose de très spécial cette année. Puisque chaque homme a besoin des conseils d’une femme de temps en temps, nous nous sommes dit : « Pourquoi ne construisons-nous pas un partenaire qui nous aime souvent comme nous l’imaginons ? ». 😃

Et donc le AZ petite amie! Il en va de même pour les réponses comme "Trésor, une bière est toujours en cours! Brost!" n’est plus une rareté! 😉

Bien sûr, ce projet peut également être utilisé ailleurs. À la fin, vous trouverez quelques idées sur la façon d’utiliser ce projet (par exemple pour mettre un sourire sur le visage de votre ami ou femme). 😊

Voici un petit avant-goût du projet fini :

Le projet terminé dans un logement

 Aperçu du projet terminé

Matériel requis

Pour ce projet, nous avons besoin des parties suivantes :

L’offre de -20% de la Saint-Valentin n’est plus disponible!
Recevoir Ici tous les produits du paquet et pour -20%.




La structure

Nous connectons les différents composants comme indiqué ci-dessous :

Structure du circuit comme diagramme de Fritzing

Amica V2 Affichage de matrice Bouton
Gnd Gnd
Gnd -
D2 D2 S
3v3 Vcc Vcc
D6 D6 Din
D8 Cs
D5 D5 Clk

 

Passer à Breadboard

 

Le cœur du projet est le microcontrôleur Amica V2. Il offre plus de broches que nous avons besoin, fournissant une base fiable et solide, et de nombreuses façons d’étendre le projet.

Pour l’affichage, nous utilisons l’écran de matrice MAX7219 avec 8x32 LED. Cet affichage est adapté pour afficher des symboles simples, et est également souvent utilisé pour afficher des polices de défilement.

Comme un pushbutton nous utilisons un bouton d’arcade avec un diamètre de 3cm dans la construction finale. Cependant, presque n’importe quel pushbutton peut être utilisé. Pour une configuration de test, je recommande notre module bouton KY-004.

 

 

Le logiciel

Une fois que tout a été connecté correctement, nous pouvons copier le code à l’IDE Arduino et le personnaliser en fonction de nos besoins.

Notre exemple se compose de 13 phrases différentes qui sont choisies au hasard et affichées en appuyant sur un bouton.

Le VALUE ARRAYSIZE détermine le nombre d’entrées dont se compose notre liste avec le nom de « résultats ».

Pour s’assurer que le texte disparaît complètement de l’écran après l’affichage, il est recommandé d’ajouter 10 espaces après la phrase.  

 

Voici le code source complet:

 

 

beMyValentine Code Exemple pour le blog AZ-Delivery Post Valentine’s Day 2020
V1.0 par AZcp 14.02.2020 - GNU Lesser General Public License v2.1
Utilise la bibliothèque MD_MAX72XX par Marco Colli / MajicDesigns : https://github.com/MajicDesigns/MD_MAX72XX
Certaines parties de ce code sont basées sur les exemples de la bibliothèque MD_MAX72XX

#include <MD_MAX72xx.H (en)>

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW  si l’affichage est incorrect, FC16_HW par PAROLA_HW ou GENERIC_HW 
#define MAX_DEVICES  4 anzal des modules 8x8, dans notre cas 4

#define CLK_PIN    D5 D5
#define DATA_PIN   D6 D6
#define CS_PIN     D8
#define BUTTON_PIN D2 D2 Ici, le bouton est connecté

MD_MAX72XX Mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);

Bool Dernière = Faux; Cette variable se souvient si le bouton a été pressé

#define ARRAYSIZE (EN) 13 Nombre d’ensembles 
Char Char* Résultats[ARRAYSIZE (EN)] = {   "Oui!           ",   "Non.            ",   « J’en serais heureux.           ",   "De moi . . .           ",   "Très probable.           ",   "Oui, sonne bien!           ",   "Fais que TU veux...           ",   "Si est ta décision...           ",   "Volontiers, le trésor!           ",   "Oui, me plaît tout à fait bien...           ",   "C'est une bonne idée!           ",   "Peut-être ?!           ",   "*Seufz*           "
};

//Est-ce que le capteur était pressé ?
bool badge() {   bool current = digitalRead(BUTTON_PIN);   if (current != lisait) {     lisait = current;     if (lisait) {       return true;     }   }   return false;
}

//Le texte devient gesrollt
void scrollText(const char *p)
{   uint8_t charWidth;   uint8_t cBuf[8];  //this should O.K. for tous built dans fonts   mx.clear();   while (*p != '\0')   {     charWidth = mx.getChar(*p++, sizeof(cBuf) / sizeof(cBuf[0]), cBuf);     for (uint8_t i = 0; i <= charWidth; i++)  //allow space between characters     {       mx.trans-forme(MD_MAX72XX::TSL);       if (i < charWidth)         mx.setColumn(0, cBuf[i]);       delay(50);     }   }
}

//Le coeur est représenté
void hearts()
{   mx.clear();   mx.setRow(0, 0, 0b00000000);   mx.setRow(0, 1, 0b01100000);   mx.setRow(0, 2, 0b11110000);   mx.setRow(0, 3, 0b11110000);   mx.setRow(0, 4, 0b11101010);   mx.setRow(0, 5, 0b11011111);   mx.setRow(0, 6, 0b10001110);   mx.setRow(0, 7, 0b00000100);   mx.setRow(1, 0, 0b00000000);   mx.setRow(1, 1, 0b00000110);   mx.setRow(1, 2, 0b00001111);   mx.setRow(1, 3, 0b00001111);   mx.setRow(1, 4, 0b01010111);   mx.setRow(1, 5, 0b11111011);   mx.setRow(1, 6, 0b01110001);   mx.setRow(1, 7, 0b00100000);   mx.setRow(2, 0, 0b00000000);   mx.setRow(2, 1, 0b01100000);   mx.setRow(2, 2, 0b11110000);   mx.setRow(2, 3, 0b11110000);   mx.setRow(2, 4, 0b11101010);   mx.setRow(2, 5, 0b11011111);   mx.setRow(2, 6, 0b10001110);   mx.setRow(2, 7, 0b00000100);   mx.setRow(3, 0, 0b00000000);   mx.setRow(3, 1, 0b00000110);   mx.setRow(3, 2, 0b00001111);   mx.setRow(3, 3, 0b00001111);   mx.setRow(3, 4, 0b01010111);   mx.setRow(3, 5, 0b11111011);   mx.setRow(3, 6, 0b01110001);   mx.setRow(3, 7, 0b00100000);
}

//La luminosité est réglée - le pouls l'effet
void intensity()
{   mx.clear();   //Grow et get brighter   for (int8_t i = 1; i <= MAX_INTENSITY; i++)   {     mx.control(MD_MAX72XX::INTENSITY, i);     hearts();     delay(10);   }   for (int8_t i = MAX_INTENSITY; i >= 1; i--)   {     mx.control(MD_MAX72XX::INTENSITY, i);     hearts();     delay(10);   }   mx.control(MD_MAX72XX::INTENSITY, 1);
}


void setup()
{   pinMode(BUTTON_PIN, INPUT_PULLUP);   mx.begin();
}

void loop()
{   if (badge()) //si le capteur était pressé   {     delay(200);     intensity();     delay(100);     intensity();     delay(500);     mx.control(MD_MAX72XX::INTENSITY, MAX_INTENSITY);     scrollText(results[random(ARRAYSIZE)]);     delay(500);   }
}

Après que le code de source sur notre Amica V2 hochgeladen devienne, les coeurs devaient apparaître ainsi qu'être indiqués l'une des phrases fixées.

Vue frontale de la boîte finie

Avec cela l'appareil est disponible. Maintenant, nous pouvons poser une question, et recevons en appuyant sur un bouton une réponse.

Projet terminé avec script courant

Un boîtier convenant

Pour tous ont l'accès à un monteur de laser, dans peu nous mettons à la disposition le fichier d'un boîtier convenant au téléchargement.

Avec peu de destin et créativité, un récipient convenant pour quelques composants, par exemple, une boîte de pralines en forme de coeur dans nous se trouve, donc, certainement quelque part une fenêtre pour le display, et masquent une ouverture pour le capteur.

Alimentation en courant

Le module peut être fait avec une simple partie de secteur USB comme un chargeur de smartphone. Ce qui voudrait renoncer, donc, au câble, une petite banque de power USB peut utiliser. Ce qui a déjà un peu plus de Bastelerfahrung, peut aussi utiliser un accumulateur et un régulateur de coffre - donc, cela ferait sauter les cadres ce Blogs.

Possibilité d'utilisation alternative

Puisque les phrases peuvent être adaptées à volonté, beaucoup d'autres possibilités d'engagement sont imaginables.

Il serait donc possible d’utiliser le jour de fiançailles, le mariage, le lieu d’apprendre à vous connaître, ou des phrases comme "Je pense à vous" ou "Nos vacances 2019 à Malte a été si inoubliable romantique". Le tout est ensuite emballé dans un boîtier en forme de cœur, avec batterie et module de charge - vous avez déjà un cadeau fait maison, romantique et unique.

 

J’espère que vous avez aimé le blog d’aujourd’hui. Je dis au revoir jusqu’au prochain post!

YourS Moritz Spranger

 

 

Esp-8266Projekte für anfänger

35 commentaires

Andreas Wolter

Andreas Wolter

@Sebastian: das ist eine implizite Typkonvertierung. Das Warning ist erst einmal nicht ganz so dramatisch, da die Arduino IDE das selbst lösen kann. Sie könnten probieren, vor das char* results ein const zu setzen.
const char* results[ARRAYSIZE] = {

Grüße,
Andreas Wolter

Sebastian

Sebastian

Hallo,

ich bekomme nur Warning, wenn ich den Code einspielen will:

warning: ISO C++ forbids converting a string constant to ‘char*’ [-Wwrite-strings]
22 | "Ja! ",

Hans-Jürgen Purps

Hans-Jürgen Purps

Hallo Herr Spranger,
habe Ihr Projekt umgesetzt – hat super funktioniert. Nun hab ich mir gedacht, dieses Projekt zu nutzen um eine Aufgabe umzusetzen, die nicht ganz einfach ist. Ich habe 20 Infrarotsensoren in einem Abstand von 2,75 cm angeordnet die wahlweise aktiviert und damit ausgelesen werden sollen. Es wird immer nur ein Sensor aktiviert dem dann der entsprechende “char” aus dem Array zugeordnet werden soll. (z.B. Sensor 18 wird aktiviert – dann soll “Leiste 18” angezeigt werden auf der LED- Matrix). Hab schon viel ausprobiert, aber noch keinen Lösungsansatz. Können Sie mir da weiter helfen ?

Willem

Willem

Hallo,
Habe mich bei dem Wetter in meinem kühlen Keller verzogen und ein bißchen mit dem Code gespielt.
Hier die Definitionen für die vier Bords, die ich am häufigsten gebrauche. Ich weiß das es auch sauberer geht, aber für Quick und Dirty geht es.
// Pindefination für ESP Amica Node
//#define CLK_PIN D5
//#define DATA_PIN D6
//#define CS_PIN D8
//#define BUTTON_PIN D2 // Hier wird der Button angeschlossen
// Pindefination für ESP8266
//#define CLK_PIN 14 //D5 GPIO14
//#define DATA_PIN 12 //D6 GPIO12
//#define CS_PIN 15 //D8 GPIO15
//#define BUTTON_PIN 4 // Hier wird der Button angeschlossen D2 GPIO04
// Pindefination für ESP32
//#define CLK_PIN 18 //D5 GPIO18
//#define DATA_PIN 23 //D6 GPIO13
//#define CS_PIN 5 //D8 GPIO05
//#define BUTTON_PIN 4 // Hier wird der Button angeschlossen GPIO04
// Pindefination für Arduino
#define CLK_PIN 13
#define DATA_PIN 11
#define CS_PIN 10
#define BUTTON_PIN 8 // Hier wird der Button angeschlossen
Willem

Frederick

Frederick

Kommt die Vorlage für das Gehäuse (gerne auch für einen 3D Drucker) noch?

Alexander Daehne

Alexander Daehne

Wenn jemand dafür ein Gehäuse erstellen könnte für den 3D Drucker wäre das Mega ……..

Max Müller

Max Müller

Ich fühle mich ein wenig allein gelassen von AZ-D.
Habe schon zweimal eine Mail dorthin geschickt. Bekomme Standard-Antwort-Mail zurück. Keine wirkliche Hilfe.
Schade, sehr schade.

Dieter

Dieter

Hallo Leute, für den ESP8266 gibt es andere Pinbelegung. Daher den #define am Anfang des codes so:
#define CLK_PIN 14
#define DATA_PIN 12
#define CS_PIN 15
#define BUTTON_PIN 4 // Hier wird der Button angeschlossen

lauque

lauque

#define BUTTON_PIN 0 // jpl = D3
mit diese definition funktioniert den taste bei mir.
und alles ok

lauqué

lauqué

Guten tag ich habe heute den dritte Geräte bekommen danke Az-delivery. Ich have den library neu installiert Wie Folks, und das Programm kompiliert ohne Probleme und den display zeigt den erste Meldung. Aber jetzt den button geht nicht….. ich habe probiert mit pin3 das gleiche es geht nicht.

4711engel

4711engel

Hallo,
schönes Projekt, was nun auch bei mir läuft.
Nun freut sich aber meine lose Verkabellung auf ein Gehäuse. Gibt es schon die angekündigte Vorlage für den Laser-Cutter?
Würde mich sehr darüber freuen.

Karsten Stock

Karsten Stock

@ Falk Danke für die Info, hat bei Mir jetzt auch geklappt. Warum auch immer?!

Falk

Falk

Hallo an Alle, die wie ich den Fehler D6 was not declared in this scope haben.
Bei mir hat eine erneute Installation im Boardverwalter diesen Fehler behoben. Jetzt funktioniert alles problemlos.
MfG

Boxerchris

Boxerchris

Ich habe die gleichen Fragen wie andere in diesem Blog.
Wo kann ich Antworten dazu nachlesen?

Karsten Stock

Karsten Stock

Hallo zusammen,
ich habe das gleiche Problem wie einige andere auch:
Fehlermeldung: D6 was not declared in this scope
Habe die Bibliothek und Board in der Arduino IDE so
drin wie im EBook und Listing beschrieben.
Jemand eine Idee was man da Falsch macht?

Vielen Dank im voraus, Karsten

Joachim Fulbrecht

Joachim Fulbrecht

Hallo Zusammen,
habe das Teil gerade zusammengebaut. Ich kann allen sagen, die Probleme mit dem Amica und Windows 10 haben: läuft. Ich hatte auch anfängliche Probleme mit dem Amica. Habe mir dann von AZ-Delivery das kostenlose eBook zum Amica geladen, habe den Treiber wie dort beschrieben installiert und die Arduino-IDE wie beschrieben eingerichtet. Danach lief alles wie geschmiert.
Nun bin ich dabei ein bißchen rumzuspielen und möchte mir alles in Fritzing dokumentieren. Kann mir jemand verraten, wo ich das fzpz für das 8×32 dot matrix display herbekomme. Ich finde nur 8×8.
Danke und Grüße
Achim

Menno

Menno

In my case the “D6 was not declared in this scope” error was my own stupid fault: I was accidentally trying to compile for ESP32 instead of for ESP8266.
Hope this helps someone else as well.

Herbert

Herbert

Das Projekt ist ja ganz interessant, aber irgendwie habe ich Probleme den sketch zu kompilieren. Muss man da was bestimmtes machen?

Manfred Koyro

Manfred Koyro

Ich habe mir das kompl. Set für den Valentinstag bestellt.
Alles wie beschrieben verkabelt.
2 Mal überprüft.
Beim anschließen an den PC leuchtet die ganze LED – Anzeige.
Nach dem Hochladen des Codes bleibt es in Zeile 12 stehen: (#define DATA_PIN D6)
Fehlermeldung: D6 was not declared in this scope
Habe ich etwas falsch gemacht?
Kann mir jemand helfen?
Danke im Voraus.

Jean-pierre Lauqué

Jean-pierre Lauqué

hello,
es hat funktioniert fur 10 minuten und jeztz blink enweder 1 oder 2 oder 3 nodule fonktionieren den vierte fast nicht.

soll ich alles zuruck schieken?

Menno

Menno

Compilation errors galore:

Arduino: 1.8.9 (Linux), Board: “NodeMCU-32S, 80MHz, 921600”

Max7219-matrix:12:20: error: ‘D6’ was not declared in this scope
#define DATA_PIN D6
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino:16:43: note: in expansion of macro ‘DATA_PIN’
MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
^
Max7219-matrix:11:20: error: ‘D5’ was not declared in this scope
#define CLK_PIN D5
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino:16:53: note: in expansion of macro ‘CLK_PIN’
MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
^
Max7219-matrix:13:20: error: ‘D8’ was not declared in this scope
#define CS_PIN D8
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino:16:62: note: in expansion of macro ‘CS_PIN’
MD_MAX72XX mx = MD_MAX72XX(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino: In function ‘bool button()’:
Max7219-matrix:14:20: error: ‘D2’ was not declared in this scope
#define BUTTON_PIN D2 // Hier wird der Button angeschlossen
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino:39:30: note: in expansion of macro ‘BUTTON_PIN’
bool current = digitalRead(BUTTON_PIN);
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino: In function ‘void setup()’:
Max7219-matrix:14:20: error: ‘D2’ was not declared in this scope
#define BUTTON_PIN D2 // Hier wird der Button angeschlossen
^
/home/menno/Arduino/Max7219-matrix/Max7219-matrix.ino:133:11: note: in expansion of macro ‘BUTTON_PIN’
pinMode(BUTTON_PIN, INPUT_PULLUP);
^
exit status 1
‘D6’ was not declared in this scope

This report would have more information with
“Show verbose output during compilation”
option enabled in File → Preferences.

Jean-pierre Lauqué

Jean-pierre Lauqué

hello mit den geliferet esp8266 es geht nicht aber mit eine nano das ich habe fonktioniert perfect.
bitte um hilfe so das den esp8266 funktioniert
Danke

Falk

Falk

Hallo, ich bekomme immer folgende Fehlermeldung

exit status 1
‘D6’ was not declared in this scope

Wer kann bitte helfen?

Patrick

Patrick

Wann können wir denn mit der Vorlage für den lasercutter rechnen?

Jean-pierre Lauqué

Jean-pierre Lauqué

ich habe probiert den sketch aber ich vermiss die libraries.
es were good dass sie dies task besser erklären.
Danke

Ulrich  Engel

Ulrich Engel

Super Projekt, dass ich gerne nachbauen werde. Die Teile habe ich schon gekauft.
Natürlich soll es auch gut aussehen. Und dazu möchte ich auch so eine Holzbox verwenden.
Wo bekomme ich diese her? Leider habe ich keinen Laser-Cutter.

Freue mich über Rückmeldung.
Viele Grüße aus Berlin
Ulrich Engel

Helge

Helge

Ich schaffe es beim besten Willen nicht, meinen Amica V2, mit meinem Windows 10 Rechner zu verbinden, wer hat noch einen Tipp für mich?

Grüße aus Hannover
Helge

ralfdoma

ralfdoma

Ist ja ganz nett beschrieben. Ich bin leider blutiger Anfänger am Arduino.
Hier fehlt alles zur Umstellung der Arduino IDE auf den Amica (esp8266),
die Installation der Bibliothek und all den Einstellungen dort. Das hab ich zwar alles geschafft, samt Hochladen des Sketches. Trotzdem leuchten alle LEDs des Displays permanent, egal ob ich den RST drücke, den externen Button des Aufbaus oder sonstwas.

Helge

Helge

Mein Amica V2, lässt sich per USB nicht mit meinem Rechner verbinden. Benötige ich noch besondere Treiber o.ä.?

Heinz-Joachim Strobach

Heinz-Joachim Strobach

Früher hatte ich einen Kassettenrekorder mit einem Band, auf dem “Ja” und “Nein” in ungeordneter Folge aufgesprochen waren. Wenn ich unschlüssig war, war das eine tolle Entscheidungshilfe. Sie hat zu 99% funktioniert.
Hier habe ich es mit einem NODEMCU gebaut. Elektronisch ist das natürlich besser. Ein toller Spass. Mit unterschiedlichen Texten auch ein Spass für Kinder.

Andreas

Andreas

Da wir im Maker-Space Zugriff auf einen Lasercutter haben, freue ich mich schon auf die Datei, für ein passendes Gehäuse für dieses Projekt, zum Download. Hoffentlich bekomme ich das mit, wenn die Datei bereit gestellt wird. Vielleicht kann man mir dir ja auch einfach per E-Mail zusenden.

Lieben Gruß,
Andreas

Himmerlich

Himmerlich

Auf dieses Projekt habe ich schon lange gewartet. Es lässt sich leicht aufbauen und hochladen. Beim Hochladen kam eine Fehlermeldung: D8 …sind nicht definiert. Ich habe die D gelöscht und schon klappte es. Der Aufbau ist auch recht einfach. Mein 4er Display leuchtet schön rot, aber es tut sich nichts, wenn ich auf den Button drücke. Können Sie mir helfen? Ich habe als Prozessor einen ESP8266 Amica aber ohne V2 verwendet. Kann es daran liegen? Mit einem Wemos D1 habe ich das gleiche Ergebnis. Ich würde mir Ihr Set auch kaufen, wenn ich es erst einmal so hinbekomme.
Viele Grüße
Wolfgang

Andreas

Andreas

Wenn möglich stellt ein Ähnliches bundle bitte mit Taster und Kiste zur Verfügung. Erst dann macht das richtig Sinn für mich. 😉 Besonders, da ich keinen Laser Cutter habe.

Jan

Jan

Hallo, ich bräuchte einmal die Datei für den Laser, finde diesen leider nirgends.
Gruß

Paul

Paul

Hehe, ein witziges Projekt.
Ich habe mir vor einiger Zeit schon so ein Display bei euch bestellt.
Mit MQTT ausgestattet setzte ich es flexibel als Statusanzeige im Smarthome einsetzten.

Als Gehäuse habe ich mir dieses hier drucken lassen.

https://www.thingiverse.com/thing:2811071

Laisser un commentaire

Tous les commentaires sont modérés avant d'être publiés

Articles de blog recommandés

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery