Go Down

Topic: Game Frame mit NodeMCU V3 (Read 1 time) previous topic - next topic

Moto20x

Hi Leute
Ich muss für die Schule ein Arduino Projekt machen. Dabei hab ich mich dazu entschieden denn Game Frame zu bauen. Ich dachte eigentlich dass ich das recht leicht umsetzen kann, allerdings tun sich mir jetzt doch noch ein paar Fragen auf. Weil ich nicht in der Lage bin das Programm dafür selbst zu schreiben will ich das originale Programm von github benutzen (https://github.com/Jerware/GameFrameV2) . Bei dem original Game Frame steckt allerdings ein Teensy 3.x drin. Diesen würde ich gerne durch eine NodeMCU ersetzen weil ich da noch 3 rum liegen habe. Jetzt würde ich gerne wissen ob ich dann noch das original Program nutzen kann wen ich ein RTC und SPI Modul mit einbaue. Kann mir das bitte jemand sagen ?  :)

postmaster-ino

Hi

Schlechte Voraussetzungen, daß Du Das machen MUSST.
Der github-Link sagt mir zumindest nicht direkt, Was Du eigentlich bauen SOLLST.
Etwas mehr Erklärung würden hier zumindest mir helfen.

Meine RTCs werden per I²C angesprochen - wenn die Pins bei Dir noch frei sind, sollte Das kein Problem darstellen.
Bei SPI sieht's ähnlich aus - wenn ncoh frei, geht's wohl.
Wenn schon benutzt, ist's auch kein Beinbruch - dat eher den Vorteil, daß die Schnittstellen sogar genau hierfür benutzt werden.
Dann musst Du bei I²C schauen, daß die Adresse der RTC noch nicht vorkommt und für SPI brauchst Du noch einen SS-pin (Slave-Select) - hier muß darauf geachtet werden, daß immer nur EIN Slave angesprochen wird - sonst arbeiten hier die Ausgangsstufen der beteiligten Slaves (Deren MISO pins) gegeneinander - bis Einer stirbt.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Moto20x

Danke für die schnelle Antwort  mit dem machen müssen hab ich mich schlecht ausgedrückt  :)
Ich hab schon länger vor so ein Ding zu bauen da kommt mir das Schul Projekt  ganz gelegen.

Mit den Pins muss ich jetzt mal genau schauen wie das geht sollte aber glaub ich kein Problem sein. Meine Haupt Sorge wahr eher das die NodeMCU zu wenig Rechen power haben könnte oder einen zu kleinen Programm Speicher. Siehst du da ein Problem ? Ich kenn die Teensy boards überhaupt nicht und kann das deshalb nur schwer einschätzen  :smiley-confuse:

postmaster-ino

Hi

So weit bin ich noch nicht, lese hier auch nur interessiert mit, wenn's um die Käfer mit WLan und 'was weiß ich noch' geht.
Selber nur auf Nano, Uno und Mega unterwegs bin ich Dir hier wohl keine größere Hilfe.

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

amithlon

#4
Nov 17, 2019, 09:42 pm Last Edit: Nov 17, 2019, 09:43 pm by amithlon
Hallo,

ich bin ja sonst optimist, aber warum suchst Du Dir eine Aufagabe, die sehr wahrscheinlich einigen Aufwand erfordert, um das auf einen ESP8266 zu tragen? Ich habe mir jetzt keine komplett Projektbeschreibung gesucht, hast Du einen Link parat?

Gundsätzlich: es sollte machbar sein auf einem ESP8266. Es dürften einige Anpassungen und Änderungen nötig sein. Ich habe nicht geschaut, welche der Libs auf einem ESP8266 kritisch sein könnten. Entropy sagt mir nichts, IRremote muß die für den ESP8266 genommen werden, was IniFileLite macht müßte man dann schauen.
Der Rest könnte so gehen.

Es wird Deine Entscheidung sein, ob Du Dich da durchkämpfst oder einen passenden Teensy beschaffst.
Ein Teensy LC kostet ja auch nicht die Welt.

Gruß aus Berlin
Michael

Moto20x

Ne richtige Beschreibung hab ich leider auch nicht. Ich orientiere mich eigentlich auch nur an dem github Beitrag. Ich wollte es mal so probieren um Geld zu sparen  :) . Ich hab mich eh schon etwas verkalkuliert mit dem ganzen Projekt, ist mal wider teurer geworden als geplant  :o (Wie eigentlich immer wen ich was machen will  :) ). Ich versuch mich jetzt mal durch zu kämpfen und hoffe dass ich es einigermaßen hin bekomme.So lerne ich wenigstens noch etwas mehr. Wen ich komplett am verzweifeln bin Kauf ich halt doch noch den Teensy.

agmue

Möglicherweise ist GameFrameV2_WiFi für Dich nützlich?
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

amithlon

Hallo,

ich habe mir das zumindest bei https://ledseq.com/product/game-frame/ mal angeschaut. Den mechanischen Kram mal weggelassen (ist sowieso nicht mein Ding):
16x 16 WS2812 habe ich hier ist mit der FastLED Lib auch kein Problem am ESP8266. RTC auch nicht, obwohl ich dann vermutlich die weglassen würde und mir die Uhrzeit aus dem WLAN per NTP holen würde.
IRremote gibt es eine ESP8266 Version der Lib. SDcard usw. ist auch unkritisch.
Sollte also prinzipiell machbar sein. Was man dann darauf laufen läßt, ist ein anderes Problem.

Keine Ahnung, ob ich mir das mal anschaue, die Teile wären hier verfügbar, mit Zeit sieht es im Moment etwas dünner aus...
Du kannst ja anfangen, das mit dem ESP8266 zusammenzusuchen und eben fragen, wenn es klemmt.

Gruß aus Berlin
Michael

Moto20x

Möglicherweise ist GameFrameV2_WiFi für Dich nützlich?

Das schaut interessant aus ich versuche mal den Code auf die NodeMCU zu bekommen.

Keine Ahnung, ob ich mir das mal anschaue, die Teile wären hier verfügbar, mit Zeit sieht es im Moment etwas dünner aus...
Du kannst ja anfangen, das mit dem ESP8266 zusammenzusuchen und eben fragen, wenn es klemmt.


Ich werde heute mal anfangen alles zu übertragen. Eine frage hab ich aber jetzt schon. Kann ich die IRremote überhaupt mit einbinden wen ich die WS2812B nutze? Im original wurden andere LEDs benutzt und ich hab jetzt schon mehrfach gelesen das ein gleichzeitiges betreiben von den LEDs und der IRremote Probleme macht.

agmue

Während der Datenübertragung zu den WS2812B ist der µC taub und empfängt keine IR-Signale. Das gilt für den UNO und die dafür vorhandenen Bibliotheken wegen des zeitkritischen Protokolls. Ob es für den ESP8266 wegen der deutlich höheren Taktrate bessere Lösungen gibt, vermag ich nicht zu sagen.
Wahnsinn und Verstand trennt nur eine dünne Wand. (Daniel Düsentrieb)

amithlon

Hallo,

Das schaut interessant aus ich versuche mal den Code auf die NodeMCU zu bekommen.
Ich werde heute mal anfangen alles zu übertragen. Eine frage hab ich aber jetzt schon. Kann ich die IRremote überhaupt mit einbinden wen ich die WS2812B nutze? Im original wurden andere LEDs benutzt und ich hab jetzt schon mehrfach gelesen das ein gleichzeitiges betreiben von den LEDs und der IRremote Probleme macht.
Ich wollte das mit der IRremoze eigentlich immer mal testen, habe es aber nicht... Es könnte gehen, die FastLED müßte in der aktuellen Version für die WS2812 eigenlich die I2S-Hardware für die Datenübertragung zu den LEDs. Hoffe ich zumindest, ich habe damals noch einen Fork der FastLED benutzt, wo jemand die I2S Ausgabe reingepacht hatte.
I2S dafür ist aber auf dem ESP8266 ohnehin Pflicht, sonst haben Anims bei WLAN-Nutzung Ruckler.

Gruß aus Berlin
Michael

Moto20x

Ich hab jetzt verzweifelt versucht den Code des GameFrame auf den esp zu bekommen,
leider komm ich überhaupt nicht voran und werde überschüttet mit Fehlermeldungen :( .
Ich hab mich glaub ganz schön übernommen mit dem Projekt :smiley-confuse: .

Es gibt allerdings einen licht blick. ich hab mich mal in dem Forum des GameFrame erkundigt und mir wurde ein link zu diesem Projekt geschickt LINK. Dazu gibt es auch noch einen Github Eintrag mit dem passenden Code für den esp.

Leider will das auch noch nicht so funktionieren wie ich gehofft habe. Ich hab jetzt die ganzen Dateien mit .h in meinen libraries Ordner gepackt. Danach wollte ich den LED-PIXELART-MATRIX Code auf meine NodeMCU flashen.

Code: [Select]
//external includes
#include <FastLED.h>
#include <Wire.h>
//#include <OneWire.h>
//#include <DallasTemperature.h>
#include "SD.h"
#include "SPI.h"

//other includes
#include "config.h"
#include "Matrix.h"
#include "animationHandler.h"

//instances
Matrix matrix;
AnimationHandler* anim;


//-------------------------------------------------------------------------

void setup() {
  pinMode(LS_PIN, INPUT);
  pinMode(LS_VCC, OUTPUT);
  pinMode(LS_GND, OUTPUT);
  pinMode(BUTTON_GND, OUTPUT);
  pinMode(BUTTON1_PIN, INPUT_PULLUP);
  pinMode(BUTTON2_PIN, INPUT_PULLUP);
  pinMode(BUTTON3_PIN, INPUT_PULLUP);
  digitalWrite(LS_VCC, HIGH);
  digitalWrite(LS_GND, LOW);
  digitalWrite(BUTTON_GND, LOW);
  delay(200);
  Serial.begin(115200);
  Wire.begin();
  anim = new AnimationHandler(matrix);
}

void loop() {
  anim->animate();
}

//-------------------------------------------------------------------------


Beim hochladen kommt aber immer folgender Fehler

(Ich poste den Fehler extra weil ich sonst über die 9000 Zeichen komme)

Was mach ich den falsch ?

Moto20x

Hier die Fehlermeldung (ich musste sie etwas einkürzen weil sie einfach zu lang ist  :smiley-confuse: )

Code: [Select]
Arduino: 1.8.9 (Windows 10), Board: "NodeMCU 1.0 (ESP-12E Module), 80 MHz, Flash, Disabled, 4M (1M SPIFFS), v2 Lower Memory, Disabled, None, Only Sketch, 115200"

In file included from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:2:0:

C:\Users\Max\Documents\Arduino\libraries\FastLED/FastLED.h:14:21: note: #pragma message: FastLED version 3.003.002

 #    pragma message "FastLED version 3.003.002"

                     ^

In file included from C:\Users\Max\Documents\Arduino\libraries\FastLED/FastLED.h:65:0,

                 from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:2:

C:\Users\Max\Documents\Arduino\libraries\FastLED/fastspi.h:130:23: note: #pragma message: No hardware SPI pins defined.  All SPI access will default to bitbanged output

 #      pragma message "No hardware SPI pins defined.  All SPI access will default to bitbanged output"

                       ^

In file included from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:11:0:

C:\Users\Max\Documents\Arduino\libraries\Matrix/Matrix.h:10:15: error: 'MATRIX_WIDTH' was not declared in this scope

     CRGB leds[MATRIX_WIDTH * MATRIX_HEIGHT];

               ^

C:\Users\Max\Documents\Arduino\libraries\Matrix/Matrix.h:10:30: error: 'MATRIX_HEIGHT' was not declared in this scope

     CRGB leds[MATRIX_WIDTH * MATRIX_HEIGHT];

                              ^

In file included from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:11:0:

C:\Users\Max\Documents\Arduino\libraries\Matrix/Matrix.h:30:5: error: section attribute not allowed for 'errorImage'

     };

     ^

In file included from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:11:0:

C:\Users\Max\Documents\Arduino\libraries\Matrix/Matrix.h:11:20: error: 'MATRIX_ROTATION' was not declared in this scope

     int rotation = MATRIX_ROTATION;

                    ^

In file included from C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:5:0,

                 from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:

C:\Users\Max\Documents\Arduino\libraries\fonts/fonts.h:9:71: error: section attribute not allowed for 'n1'

     bool n1[15] PROGMEM = {0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1};

                                                                       ^

C:\Users\Max\Documents\Arduino\libraries\fonts/fonts.h:10:71: error: section attribute not allowed for 'n2'

     bool n2[15] PROGMEM = {1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 1, 1, 1, 1};

                                                                       ^

                                                                                         ^

C:\Users\Max\Documents\Arduino\libraries\fonts/fonts.h:86:89: error: section attribute not allowed for 'n0'

     bool n0[21] PROGMEM = {1, 1, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1};

                                                                                         ^

C:\Users\Max\Documents\Arduino\libraries\fonts/fonts.h:87:89: error: section attribute not allowed for 'nc'

     bool nc[21] PROGMEM = {1, 1, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 1, 0};

                                                                                         ^

In file included from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:0:

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:62:29: error: 'ANIMATION_DURATION' was not declared in this scope

     int animationDuration = ANIMATION_DURATION;

                             ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h: In constructor 'AnimationHandler::AnimationHandler(Matrix&)':

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:72:21: error: 'SD_PIN' was not declared in this scope

       if (!SD.begin(SD_PIN)) {

                     ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h: In member function 'byte AnimationHandler::drawAnimation()':

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:148:11: error: 'DEBUG' was not declared in this scope

       if (DEBUG) Serial.println("Number of Frames:" + String(frames));

           ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:184:18: error: 'AUTO_CLOCK_DURATION' was not declared in this scope

             if  (AUTO_CLOCK_DURATION != 0) {

                  ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h: In member function 'int AnimationHandler::readFromConfig(String)':

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:210:15: error: 'DEBUG' was not declared in this scope

           if (DEBUG) Serial.println(line);

               ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:213:15: error: 'DEBUG' was not declared in this scope

           if (DEBUG) Serial.println(line);

               ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:215:15: error: 'DEBUG' was not declared in this scope

           if (DEBUG) Serial.println(output);

               ^

In file included from C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino:12:0:

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h: In member function 'int AnimationHandler::readBMP(String)':

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:245:11: error: 'DEBUG' was not declared in this scope

       if (DEBUG) {

           ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h: In member function 'void AnimationHandler::timemode(bool)':

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:342:26: error: 'AUTO_CLOCK_DURATION' was not declared in this scope

         if (autocycle && AUTO_CLOCK_DURATION != 0) {

                          ^

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h: In function 'int countFrames(String, String)':

C:\Users\Max\Documents\Arduino\libraries\animationHandler/animationHandler.h:366:51: error: 'FILE_APPEND' was not declared in this scope

   File configfile = SD.open(path + "/config.ini", FILE_APPEND);

                                                   ^

C:\Users\Max\Desktop\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX-master\LED-PIXELART-MATRIX\LED-PIXELART-MATRIX.ino: In function 'void setup()':

LED-PIXELART-MATRIX:22:11: error: 'LS_PIN' was not declared in this scope

   pinMode(LS_PIN, INPUT);

           ^

LED-PIXELART-MATRIX:23:11: error: 'LS_VCC' was not declared in this scope

   pinMode(LS_VCC, OUTPUT);

           ^

LED-PIXELART-MATRIX:24:11: error: 'LS_GND' was not declared in this scope

   pinMode(LS_GND, OUTPUT);

           ^

LED-PIXELART-MATRIX:25:11: error: 'BUTTON_GND' was not declared in this scope

   pinMode(BUTTON_GND, OUTPUT);

           ^

LED-PIXELART-MATRIX:26:11: error: 'BUTTON1_PIN' was not declared in this scope

   pinMode(BUTTON1_PIN, INPUT_PULLUP);

           ^

LED-PIXELART-MATRIX:27:11: error: 'BUTTON2_PIN' was not declared in this scope

   pinMode(BUTTON2_PIN, INPUT_PULLUP);

           ^

LED-PIXELART-MATRIX:28:11: error: 'BUTTON3_PIN' was not declared in this scope

   pinMode(BUTTON3_PIN, INPUT_PULLUP);

           ^

Multiple libraries were found for "SD.h"
 Used: C:\Users\Max\AppData\Local\Arduino15\packages\esp8266\hardware\esp8266\2.5.0\libraries\SD
 Not used: C:\Users\Max\Documents\Arduino\libraries\SD
 Not used: C:\Program Files (x86)\Arduino\libraries\SD
exit status 1
'LS_PIN' was not declared in this scope

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

postmaster-ino

Hi

Die Matrix.h scheint nicht Die zu sein, Die Du brauchst.
Zumindest werden Dinge in dieser Datei angemeckert.
Z.B.:
C:\Users\Max\Documents\Arduino\libraries\Matrix/Matrix.h:10:15: error: 'MATRIX_WIDTH' was not declared in this scope

MATRIX_WIDTH gibt's schlicht nicht, somit klappt Das, was der Sketch machen will, mit dieser Lib nicht.

In den Fehlermeldungen sollte stehen, wenn mehrere dieser Dateien gefunden wurden - wie z.B., daß bei Dir drei SD.h gefunden werden und Welche davon benutzt wurde.

Da die 'Matrix.h' in "" steht - ist Diese IM Projekt-Ordner vorhanden?

MfG
anscheinend ist Es nicht erwünscht, einen Foren-internen Link als 'Homepage' einzubinden, damit JEDER nur einen Klick von combie's Liste zum Thema State-Maschine entfernt ist.
... dann eben nicht ...

Moto20x

Also ich hab im Projekt Ordner am Anfang die matrix.h aus dem github Beitrag eingefügt. Beim hochladen bekam ich dan aber den Fehler das er Matrix.h nicht finden konnte. Ich dachte das es nur ein schreib Fehler ist da im Code Matrix steht und die Datei matrix heist. Also hab ich den Ordner und die beiden Matrix Dateien zu Matrix mit großem M umbenannt dachte damit ist das Problem behoben. Scheint aber nicht so zu sein. Ich hab auch das Gefühl das er die config.h nicht läd in der werden nämlich die Pins definiert und in der Fehlermeldung sagt er ja immer das die alle nicht definiert sind.

Go Up