Beginnen met Nextion

Hardware geleverd door Arduino
Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 12 Feb 2017, 22:47

Met "bauds=" heb ik de baudrate op 115200 gezet, en nu kan ik er niet meer bij. Niet met een hardware serial port op 115200 en ook niet meer op 9600 baud. Bestaat er een mogelijkheid om hem te resetten ?
De Nextion Editor kan wel gewoon uploaden.

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 13 Feb 2017, 09:54

Ik heb dit probleem ooit eerder gehad en ben toen volgens mij teruggegaan naar de oude baudrate mbv een terminal programma en een TTL-RS232 kabeltje.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 13 Feb 2017, 11:23

Zo eenvoudig was het bij mij niet. Maar als het jou was gelukt, was het dus een kwestie van gewoon maar proberen.
Met een terminal programma wist ik niet hoe 0xFF te versturen. Eerst probeerde ik een sketch met de normale baudrates, maar dat was niet voldoende. Gelukkig bleek AltSoftSerial voldoende flexibel om de onderstaande sketch te doen, en toen had ik hem weer op 9600 8-)

Code: Alles selecteren
// Try to set the bauds to 9600
// With Arduino Uno.
// Nextion yellow wire to pin 9.
// Nextion blue wire to pin 8.


#include <AltSoftSerial.h>
AltSoftSerial altSerial;
#define SERIAL altSerial


long baudrates[] =
{
  300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600, 115200,
};


void setup()
{
  pinMode( LED_BUILTIN, OUTPUT);
  digitalWrite( LED_BUILTIN, HIGH);

  for( int i=0; i<sizeof(baudrates)/sizeof(long); i++)
  {
    SERIAL.begin( baudrates[i]);
    delay( 100);
    SERIAL.print( "bauds=9600\xFF\xFF\xFF");
    delay( 100);
    SERIAL.print( "bauds=9600\xFF\xFF\xFF");
    delay( 100);
    SERIAL.end();
    delay( 100);
  }

  // Let's get serious and try everything.
  for( long baud = 100; baud <= 250000L; baud += baud/30)
  {
    SERIAL.begin( baud);
    delay( 100);
    SERIAL.print( "bauds=9600\xFF\xFF\xFF");
    delay( 100);
    SERIAL.print( "bauds=9600\xFF\xFF\xFF");
    delay( 100);
    SERIAL.end();
    delay( 100);
  }

  digitalWrite( LED_BUILTIN, LOW);
}


void loop()
{
  SERIAL.begin( 9600);
  delay( 100);
  SERIAL.print( "dim=10\xFF\xFF\xFF");
  delay(400);
  SERIAL.print( "dim=100\xFF\xFF\xFF");
  delay(400);
}


Nu gebruik ik de "baud" om na nexInit() de baudrate hoger te zetten. Dat werkt toch heel wat prettiger dan 9600.
Code: Alles selecteren
  // Step up to higher baud rate
  sendCOMMAND(F( "baud=38400"));
  delay( 50);   // wait until everything is transmitted.
  nexSerial.end();
  nexSerial.begin( 38400);
  delay( 50);
Laatst gewijzigd door Koepel op 13 Feb 2017, 11:34, in totaal 1 keer gewijzigd.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 13 Feb 2017, 11:33

Een andere manier is (dacht ik) om een basis scherm te laden via de SD. Dan zou hij (dacht ik) ook terug gaan naar de oorspronkelijk baudrate. De pest is dat die Chinezen de firmware (nog niet) vrijgeven van die schermen. Begrijpelijk. Anders zou je gelijk die TJC type kunnen gebruiken. En daar er eigenlijk nog geen concurrentie is voor dit soort schermen... Waarom zouden ze...
Er zijn uiteraard wel andere schermen maar dan ga je 2x 3x de Itead prijs betalen. Laat staan de professionele types a la siemens.... 200 euro per letter :smiley-mr-green:
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 13 Feb 2017, 11:42

Het is uiteindelijk een handig scherm. Maar zoals altijd is het nodig om de beperkingen te weten. En ik ben die grenzen blijkbaar aan het aftasten.

Wat dacht je van dit stukje in Set_font_color_pco() in NexText.cpp:
Code: Alles selecteren
    char buf[10] = {0};
    String cmd;
   
    utoa(number, buf, 10);
    cmd += getObjName();
    cmd += ".pco=";
    cmd += buf;
    sendCommand(cmd.c_str());
   
    cmd = "";
    cmd += "ref ";
    cmd += getObjName();
    sendCommand(cmd.c_str());

Dat kan ook zo:
Code: Alles selecteren
    char buf[80];
    sprintf_P( buf, PSTR("%s.pco=%u"), getObjName(), (uint16_t) number);
    sendCommand( buf);

    sprintf_P( buf, PSTR("ref %s"), getObjName());
    sendCommand( buf);

Vervolgens kwam ik er achter dat overal de String wordt gebruikt om de tekst samen te stellen. Voor een klein Arduino board zou de sprintf() mijn voorkeur hebben.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 13 Feb 2017, 11:52

Eens.... maar gaat op zich wel goed vwb de fragmentatie. Ik had nog geprobeert om die namen van de objecten ook in flash te zetten maar dat wil niet tenzij ik de library aanpas
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 17 Feb 2017, 15:12

Ik heb een signaallamp die verschillende kleuren kan hebben. Het is geen drukknop.
Er ligt trouwens wel een hotspot overheen, die hotspot ligt over een groter gebied dan de signaallamp alleen.

Wat is de beste manier om de kleur van de signaallamp te wijzigen ?

Blijkbaar moet ik de achtergrond er in zetten, zodat het vierkante plaatjes worden, en het dan precies op de goede plaats zien te krijgen.
Zal ik dan het plaatje van het component wijzigen ? Of zal ik ze over elkaar heen leggen en met commando 'vis' de juiste laten zien ? Of is er een betere manier ?

Het liefst zou ik ik een kleur willen instellen, zodat ik alle mogelijke kleuren kan maken zoals bij een RGB led.

P.S.: De rand komt van dit: http://www.loc.gov/pictures/item/pa2688.color.226426c/ die heb ik even snel uitgeknipt (mooier maken komt later wel), samen met een foto van een infrarode lamp.
Bijlagen
signaallamp_groen.png
signaallamp_groen.png (24.09 KiB) 9181 keer bekeken
signaallamp_blauw.png
signaallamp_blauw.png (23 KiB) 9181 keer bekeken
signaallamp_rood.png
signaallamp_rood.png (22.94 KiB) 9181 keer bekeken

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 17 Feb 2017, 16:58

Het nadeel (wordt ook wel een beetje veroorzaakt door de beperkingen van de processor capaciteit van de Nextion) is dat je geen transparante achtergronden hebt
Ik las laatst een artikel van iemand die dat eigenlijk als volgt deed:
a) maak een volledig scherm plaatje met all objecten uit
b) maak een kopie van dat scherm maar nu met alle objecten aan
Ik gebruik zelf bijvoorbeeld Visual Blend van Microsoft (de gratis versie) en bewaar dan een bmp van beide.
De scherm in de stand uit wordt nu het standaard achtergrond plaatje van de pagina
a) laad beide images in de Nextion editor
Daarna kun je gerust een toggle button neerzetten en dan wordt het image de standaard uit en dan via "crop image" verklein je hem tot de feitelijke button
Dan bij de stand aan doe je het zelfde alleen nu met de objecten aan. En wederom crop je de image. Dan zie je bij het toggelen van de schakelaar alleen de images veranderen en daar de achtergrond hetzelfde is ben je van het probleem af.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: Beginnen met Nextion

Berichtdoor Koepel » 17 Feb 2017, 18:21

Die manier had ik al begrepen voor een drukknop.

Ik wil echter veel meer kleuren voor mijn signaallampje. Dan ga ik toch maar allemaal plaatjes maken met een stukje achtergrond, die precies op de juiste plaats moet komen. Wanneer ik een andere achtergrond wil, dan kan ik alles weer opnieuw doen.
Het signaallampje moet natuurlijk ook nog kunnen knipperen ;)

De plaatjes maak ik in een hogere resolutie en ik gebruik GIMP, omdat ik dat in Windows en linux heb geïnstalleerd. Alle tussenbewerkingen laat ik er gewoon in zitten in een laag die ik onzichtbaar maak voor het eindresultaat.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Beginnen met Nextion

Berichtdoor nicoverduin » 17 Feb 2017, 18:30

GIMP ken ik niet. Blend wel en volgens mij valt alles wel mee als je meerdere lagen gebruikt.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

VorigeVolgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 10 gasten