Tal Input til Processing

Fra HTX Arduino
Spring til navigation Spring til søgning

Hvis man ønsker indtaste tal i et Processing-program, så kan det være en besværlig proces at fange de enkelte key-events, og få dem konverteret til et tal.

En hjælp til at løse dette problem kan være et text-input-felt, som det der findes i biblioteket [1]. Biblioteket kan rigtigt mange ting, hvilket kan opleves under dets eksempler.

For at kunne anvende biblioteket skal man have det importeret. Det gør man under Sketch - Import Library - Add Library.

Program-ideen

Programmet indeholder 3 elementer på skærmen:

  • Et tekst-input felt, hvor man skal skrive tallet
  • En knap man skal klikke på for at konvertere teksten til et tal
  • Et text-output som viser tallet, eller hvis konverteringen er svigtet, så en fejlmelding

Programmet ser ud som følger:
Tal input til Processing

Koden til programmet

Programmet består af følgende kode:

import controlP5.*;

ControlP5 cp5;

Textfield textfield;
Button button1;
float number = 0.0;

void setup() {
  size(500, 300);
  PFont font = createFont("arial", 24);

  // Kontakt til ConptrolP5 Biblioteket
  cp5 = new ControlP5(this);

  // Tekst-feltet hvor tallet skal indtastes
  textfield=cp5.addTextfield("input");
  textfield.setPosition(50, 80)
    .setSize(150, 50)
    .setFont(font)
    .setColor(color(255))
    .setColorCursor(color(255))
    .setAutoClear(false)
    .setLabel("")
    ;

  // Knappen der er knyttet til funktionen generate()
  button1=cp5.addButton("generate");
  button1.setPosition(230, 85)
    .setSize(180, 40)
    .setLabel("Læs tallet")
    .setFont(font)
    ;
  textFont(font);
}

void draw() {
  background(0, 151, 156);
  fill(255);
  if (Float.isNaN(number)) {
    text("Tallet er indtastet forkert", 50, 200);
  } else {
    text(number, 50, 200);
  }
}

public void generate() {
  // Tallet hentes som en tekststreng i tekst-feltet input
  String input = cp5.get(Textfield.class, "input").getText();
  input = input.replace(',', '.');  // Accepter dansk komma
  number = float(input);
  textfield.clear();
}

Referencer

  1. ControlP5 [1]


Programmering
Programmeringsbegreber Initialisering - Sekvens - Algoritme - Hexadecimal - Det Binære Talsystem - HEX-fil - ASCII - Interrupt - Events - Styresystem - Autocomplete - Selvstudie Programmering - Hour Of Code - Stepwise Improvement - Syntaks - Prog-links - Microcontroller - ChatGPT
Grundlæggende C C float - C double - C-løkker - Datatyper - Konstanter - Regnearter - Funktioner - Return - Returværdi - Rekursion - Semikolon
Variabel Typer boolean - byte - int - unsigned int - word - long - unsigned long - short - float - double - char - unsigned char - string - char array - String - object - Array - 2-dimensionelt Array - void
Program-klassikere Polling - State-machine - Trykknap - Forkant - Bagkant - Prel
Arduino Arduino til Programmering - C til Arduino - Programmering Shield - Arduino PC-software - Arduino Udviklingsmiljø - Arduino Pin Library - Funktion - Arduino Seriel - Arduino String - Arduino String Split - Arduino StateChangeDetection - setup() - loop() - Compilerdirektiver - Asynkron kommunikation - millis() - micros() - Scratch for Arduino - Send fra Arduino til Excel - [[]] - [[]]
Processing Grafik i Processing‎ - Keyboard i Processing - Mus i Processing‎ - Tid i Processing‎ - Draw() - Setup() - Tal Input til Processing - Syntaksfarvning - Kommunikation fra Arduino til Processing - Kommunikation fra Processing til Arduino
javaScript Javascript input‎ - Javascript output‎ - Javascript strukturer‎ - Javascript syntaks‎ - Tid i javaScript - Objekt‎ - AJAX
Serverprogrammering PHP - MySQL - Task Scheduler - WeMOS
PIC JAL - [[]]
Scratch for Arduino S4A Installation - S4A programmering - S4A undervisningsforløb - S4A begrænsninger
Program Dokumentation Algoritme - Flowchart - Pseudokode - Datastruktur - Dataabstraktion - Pulsplaner - Program-kommentar - Teori - Test - UML