Vorstellung des Microcontrollers RGBDuino UNO

In diesem Beitrag möchte ich dir gerne den Microcontroller RGBDuino UNO vorstellen.

Bezug

Diesen sehr eigenartig gestalteten Microcontroller habe ich über aliexpress.com für knapp 13€ inkl. Versandkosten erstanden. Der Versand dauerte ca. 3 Wochen, dieses ist dem Umstand geschuldet das der Versender aus dem asiatischen Raum stammt.

Diesen Microcontroller gibt es zum einen mit dem Aufdruck eines Manga Bildes und in der Farbe Gelb mit einer Ente.

Artikelbeschreibung des Microcontrollers RGBDuino UNO auf aliexpress.com
Artikelbeschreibung des Microcontrollers RGBDuino UNO auf aliexpress.com

Lieferumfang

Zum Lieferumfang des RGBDuino UNO gehört eine kleine Papschachtel in welcher eine Beschreibung gedruckt ist sowie ein ca. 10cm langes USB Datenkabel.

Links & Resourcen

Auf der Verpackung ist der Hyperlink http://rgbduino.cn/ aufgedruckt unter welchem weitere Informationen bezogen werden können. Jedoch ist diese Adresse zur Zeit nicht erreichbar somit müsste man etwas “googeln” um die Informationen zusammen zutragen.

Aber mein Ziel ist es das du in diesem Beitrag alle Informationen zu dem RGBDuino UNO findest damit du diesen programmieren kannst.

Der Hersteller betreibt jedoch noch das GitHub Repository https://github.com/RGBduino/RGBDuino, dort findest du eine Anleitung sowie einpaar kleine Beispiele für diesen Microcontroller.

Technische Daten des RGBDuino UNO

Auf dem RGBDuino UNO ist ein ATMEL Mega328P mit folgenden Spezifikationen verbaut:

Länge68,6 mm
Breite53,4 mm
Gewicht25 g
Flash Speicher32 KB
(von denen 0,5 KB für den Bootloader reserviert sind)
SRAM2 KB
EEPROM1 KB
CPU Taktgeschwindigkeit16 MHz
Betriebsspannung5 V
Eingangsspannung7 bis 12 V
minimale Eingangsspannung6 V
maximale Eingangsspannung20 V
max. Stromstärke pro I/O Pin20 mA
max. Stromstärke für die
3.3 V Versorgung
50 mA
digitale Eingänge / Ausgänge14
digitale PWM Ausgänge6
analoge Eingänge / Ausgänge6

Aufbau des RGBDuino UNO

Der RGBDuino UNO ist bestückt mit:

  • einem frei programmierbaren Taster,
  • einem Piezo Buzzer,
  • zwei RGB NeoPixel,
  • sowie an jedem digitalen Pin und an 3,3V, 5V eine SMD LED
RGBDuino UNO
RGBDuino UNO

digitale PWM Pins

Der RGBDuino UNO verfügt über 6 digitale PWM Pins. Über diese kannst du ein digitales PWM Signal erzeugen und zbsp. eine LED zum Faden (langsames auf und ableuchten) bringen oder einen kleinen Motor steuern.

Die digitalen PWM Pins sind jeweils mit einer Tilde “~” auf der Platine gekennzeichnet und sind an den Pins 3,5,6,8,9,10,11.

zusätzlicher Schalter für den Piezo Buzzer

Der Piezo Buzzer ist am digitalen Pin D8 angeschlossen. Damit du diesen Pin ggf. für andere Schaltungen verwenden kannst gibt es diesen Schalter.
Wenn die Schalterposition zum Piezo Buzzer zeigt ist dieser AN andernfalls ist dieser AUS.

NeoPixel

Auf der Platine sind 2 zusätzliche RGB NeoPixel verbaut welche an den digitalen Pins 12 und 13 angeschlossen sind.
Wie du diese programmierst erfährst du etwas weiter unten in diesem Beitrag.

NeoPixel auf dem RGBDuino UNO
NeoPixel auf dem RGBDuino UNO

frei programmierbarer Taster

Neben dem Reset Taster für das neustarten des Microcontrollers findest du einen Taster welchen du frei programmieren kannst. Diesen Taster kannst du somit mit einer beliebigen Funktion belegen (natürlich musst du diese zuvor programmieren).

Diesen kleinen Taster kannst du über den digitalen Pin D2 ansprechen, aber dazu später mehr in einem ausführlichen Beispiel.

Taster auf dem RGBDuino UNO
Taster auf dem RGBDuino UNO

erster Start 

Wenn du den Microcontroller nach dem auspacken an eine USB Buchse anschließt dann wird bereits ein kleines Programm abgespielt. Es leuchten die NeoPixel auf und auf den SMD LEDs welche an den digitalen Pins angeschlossen sind wird ein kleines Lauflicht ausgegeben. Nach einpaar Sekunden wird auf dem Piezo Buzzer das Lied “Freude schöner Götterfunken abgespielt.”

 

Einrichten des RGBDuino UNO unter Microsoft Windows 10

Wenn du den RGBDuino UNO wie ich unter MS Windows 10 programmieren möchtest musst du zunächst den Treiber für den Seriellen Chip CH340G installieren.

Auf dem GitHub Repository https://github.com/RGBduino/RGBDuino findest du zwei Dateien zum download. Jedoch haben beide auf meinem System nicht funktioniert so dass ich mir einen anderen passenden suchen musste. Da ich schon mit dem ein oder anderen Microcontroller dieser Art zutun hatte war die suche recht kurz :).

Auf der Seite http://www.wch.cn/download/CH341SER_ZIP.html findest du eine *.zip Datei zum download. Da diese Seite größtenteils auf Chinesisch ist würde ich empfehlen die Datei zunächst mit einem Virenscanner zu prüfen (“man weiß ja nie”). Wenn du die Datei heruntergeladen hast dann musst du diese nur in ein beliebiges Verzeichnis entpacken, ich nutze hierzu das kostenfreie Tool 7zip. In dem Ordner “CH341SER” findest du nun die Datei “SETUP.EXE” welche du mit einem Doppelklick startest. 

Installation des Treibers für den Chip CH341 / CH340G
Installation des Treibers für den Chip CH341 / CH340G

In meinem Fall wurde der Microcontroller am serielen Port COM5 erkannt.

Programmieren des Microcontroller RGBDuino UNO

Da auf dem Microcontroller ein einfacher ATMEL Mega328P verbaut ist kann dieser wie ein “normaler” Arduino UNO programmiert werden. D.h. du wählst in der Arduino IDE das Board “Arduino UNO” sowie den entsprechenden Port aus.

Zunächst hier eine kleine Tabelle mit den Pins an welche die einzelnen Features angeschlossen sind:

Funktiondigitaler Pin
TasterD2
NeoPixel ID12
NeoPixel IID13
Piezo BuzzerD8

Piezo Buzzer & Taster

Wie man einen Piezo Buzzer programmiert habe ich schon in diversen Beiträgen auf diesem Blog gezeigt. Hier möchte ich dir gerne ein kleines Programm zeigen wie du einen Ton ausgeben kannst wenn du den Taster betätigst.

Ich verwende in diesem Beispiel zusätzlich die Bounce2 Bibliothek um den Taster zu entprellen.

Bibliotheksverwalter der Arduino IDE - Bounce2
Bibliotheksverwalter der Arduino IDE – Bounce2

Was prellen bei einem Taster bewirkt und warum und vor allem wie dieses verhindert wird habe ich im gleichnamigen Beitrag Arduino Lektion 87: Taster entprellen beschrieben.

//Bibliothek um den Taster zu entprellen
#include <Bounce2.h> 

#define buzzer 8 //Piezo Buzzer am digitalen Pin D8 angeschlossen
#define taster 2 //Taster am digitalen Pin D2 angeschlossen

//erzeugen einer Instanz
Bounce btn = Bounce(taster, 25);

void setup() {
  //beginn der seriellen Kommunikation mit 9600 baud
  Serial.begin(9600);
  //der Taster als Eingang über den internen 10k Ohm Widerstand
  pinMode(taster, INPUT_PULLUP);
  //den Pin des Buzzers als Eingang definieren
  pinMode(buzzer, OUTPUT);
}

void loop() {
  //aktualisieren des Objektes
  btn.update();

  //Wenn der Taster gedrückt wird, dann...
  if(btn.fell()){
    //Ausgeben des Textes "fell" auf der seriellen Schnittstelle
    Serial.println("fell");
    //Ausgeben eines Tones mit 800Hz und einer Dauer von 500ms.
    tone(buzzer, 800, 500);
  }

  //Wenn der Taster losgelassen wird, dann...
  if(btn.rose()){
    //Ausgeben des Textes "rose" auf der seriellen Schnittstelle
    Serial.println("rose");
    //Ausgeben eines Tones mit 800Hz und einer Dauer von 500ms.
    tone(buzzer, 800, 500);
  }
}

Video

 

NeoPixel

Für den betrieb der NeoPixel benötigst du eine zusätzliche Bibliothek. Diese habe ich bereits auch im Beitrag Arduino Lektion 31: 12bit RGB NeoPixel Ring sowie im Projekt Arduino Projekt: Abfalleimer mit Bewegungssensor verwendet.

Diese Bibliothek findest du zum bequemen installieren über den Bibliotheksverwalter.

//Bibliothek zum betreiben der NeoPixel
#include <Adafruit_NeoPixel.h>

/**
   Da die NeoPixel auf dem Board jeweils an einzelne Pins angeschlossen sind,
   müssen diese einzeln angesprochen werden.
*/
#define neoPixel1 12
#define neoPixel2 13

/**
   Es ist jeweils nur 1 NeoPixel am digitalen Pin angeschlossen.
   Bei einem Stripe würde hier eine deutlich größere Zahl stehen.
*/
#define NUMPIXELS 1

//Initialisieren der Objekte zum ansteuern der NeoPixel
Adafruit_NeoPixel pixel1(NUMPIXELS, neoPixel1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel pixel2(NUMPIXELS, neoPixel2, NEO_GRB + NEO_KHZ800);

//Definieren von RGB Farbwerten welche auf den NeoPixel dargestellt werden sollen
int colors[7][3] = {
  {255, 255, 0}, //gelb
  {255, 0, 0},  //rot
  {0, 255, 0},  //grün
  {0, 0, 255},  //blau
  {255, 0, 255}, //pink
  {255, 128, 0}, //orange
  {0, 255, 255}, //türkis
};


void setup() {
  //beginn der Kommunikation mit den NeoPixel
  pixel1.begin();
  pixel2.begin();
}

void loop() {
  //Löschen der NeoPixel Farbwerte
  pixel1.clear();
  pixel2.clear();

  //Für jeden Wert im Array mit den RGB Farbwerten mache...
  for (int i = 0; i < 7; i++) {
    //erster Wert im Array ist "rot"
    int red = colors[i][0];
    //zweiter Wert im Array ist "grün"
    int green = colors[i][1];
    //dritter Wert im Array ist "blau"
    int blue = colors[i][2];

    //Da es "nur" einen NeoPixel andem digitalen Pin gibt wird hier die Zahl 0 übergeben.
    pixel1.setPixelColor(0, pixel2.Color(red, green, blue));
    //Helligkeit des NeoPixels auf den Wert 64 setzen.
    //Mögliche Werte sind zwischen 0 und 255,
    //wobei der Wert 255 so hell ist das dieses in den Augen schmerzt.
    pixel1.setBrightness(64);
    //Anzeigen des Farbwertes
    pixel1.show();

    pixel2.setPixelColor(0, pixel2.Color(red, green, blue));
    pixel2.setBrightness(64);
    pixel2.show();

    //eine kleine Pause von 175 ms.
    delay(175);
  }
}

Video

 

Vergleich mit dem MakerUNO

Wer meinen Blog bereits etwas verfolgt wird sicherlich den MakerUNO in Erinnerung haben. Diesen Microcontroller habe ich im Beitrag Maker UNO – Überblick und Test vorgestellt.

Der RGBDuino UNO kommt mal abgesehen vom aufdruck mit den selben Features daher und ist somit eine nette Kopie des Maker UNO. Der Maker UNO ist durch eine Kickstarter Kampanie finanziert worden und hat somit einen tiefen Hintergrund in der Entwicklung. 

Des Weiteren verfügt der Maker UNO zusätzlich an den digitalen Pins 12 & 13 über eine SMD LED, diese fehlt beim RGBDuino UNO. Jedoch verfügt der RGBDuino UNO zusätzlich noch über 2 NeoPixel somit bietet dieser somit min. ein Feature mehr als der Maker UNO. Auch der Piezo Buzzer am Maker UNO ist deutlich lauter als beim RGBDuino UNO.

Maker UNO & RGBDuino UNO
Maker UNO & RGBDuino UNO

Das Herzstück beider Microcontroller ist ein ATMEL Mega328P mit maximal 16 MHz Taktgeschwindigkeit.

Fazit

Der RGBDuino UNO ist fast ein vollwertiger Arduino UNO ersatz mit netten Features wäre da nicht die doch recht umständliche Installation, würde hier ein vernünftiger Serieller Chip verwendet worden sein so könnte dieses wirklich per “Plug’n Play” betrieben werden. Die NeoPixel, der Buzzer sowie der Taster sind recht gut verarbeitet. Beim Maker UNO ist jedoch der Buzzer deutlich lauter aber das ist wie ich finde nicht wirklich entscheidend.

Kommentar hinterlassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.