Matériel
Produits
- Sprite 4K
- Arduino Uno
- Carte micro SD
- Écran
- Câble HDMI
- Câble 3x0.34mm²
Accessoires
- Câble USB-B
- Alimentation pour Arduino
Outillage
- Pince coupante
- Pince à dénuder
- Kit cosses et pince à sertir
Branchements
Câbler la prise I/O sur l'Arduino comme suit :
Borne de la prise I/O | Description | Pin Arduino | |
| 1 : L | Alimentation 5V | non connecté. |
2 : R | Sprite RX | 3 (SoftwareSerial TX) | |
| 3 : | Sprite TX | 2 (SoftwareSerial RX) | |
4 : ⏚ | Masse 0V | GND |

Configuration du Sprite
- Ouvrir le menu (bouton Setup de la télécommande)
- Configurer
- Play Mode : Video Control Mode
- Control Mode : Serial Control
- Baud Rate : 9600
- Address : Do not use Address
- Serial Feedback : Full Reporting (optionnel)
- Mettre sur la carte micro SD au moins 2 fichiers vidéos nommés 000.mp4 et 001.mp4 (ou autre extension vidéo)
- Mettre la carte micro SD dans le Sprite
Code
Utilise la librairie Proyectil MedeaWiz de Misael Reyes
- Installer la bibliothèque Proyectil MedeaWiz depuis le Library Manager de l'IDE Arduino
- Uploader le code ci-dessous
- Ouvrir le moniteur sériel
- Configurer le moniteur sériel : No Line Ending et 115200 baud
Le code suivant, inspiré du code d'exemple Sprite_Serial_Control_Tets.ino de la bibliothèque Proyectil MedeaWiz, permet de tester les fonctions de base du Sprite en saisissant des caractères dans le moniteur sériel de l'IDE. L'Arduino se comporte donc comme une télécommande.
/*
Sprite Serial Control Test Program
Romain Corthésy
2026-01-29
Based on : https://github.com/misa3L994/Sprite_Serial_Control/blob/main/examples/Sprite_Serial_Control_Tets/Sprite_Serial_Control_Tets.ino
Programa de prueba para la cabecera medeaWize.h
Misael Reyes
25/ENE/2023
*/
#include "medeaWiz.h"
#include <SoftwareSerial.h>
byte answerVal;
Sprite sprite = Sprite();
SoftwareSerial Serial1(2, 3); // RX, TX
char c;
void setup()
{
Serial.begin(115200); // Serial debug
Serial1.begin(9600); // Serial to Sprite
sprite.begin(Serial1);
menu('?'); // print the menu options.
}
void loop()
{
answerVal = sprite.answerSprite();
if (answerVal != 0)
{
Serial.print("Response : 0x");
Serial.print(answerVal, HEX);
if (answerVal == 0xEE)
{
Serial.print(" (end of file)");
}
Serial.println("");
}
if (Serial.available())
{
c = Serial.read();
menu(c);
}
}
void menu(char op)
{
// Menu
switch (op)
{
case '?':
case 'h':
Serial.println("Serial Control Sprite Basic Commands:");
Serial.println(" ? Display Menu options. ");
Serial.println(" L Play file 000 in loop");
Serial.println(" F Play file 000, full volume ");
Serial.println(" 1 Play 001 file");
Serial.println(" p Play");
Serial.println(" a pause");
Serial.println(" > Next");
Serial.println(" < Previous");
Serial.println(" + Volume UP");
Serial.println(" - Volume DOWN");
Serial.println(" c Query total file count");
Serial.println("");
break;
case '1':
Serial.println("Play 001");
sprite.play(0x01);
break;
case 'L':
Serial.println("Play loop");
sprite.playLoop(0x00);
break;
case 'F':
Serial.println("Play file at full volume");
sprite.setFullVolume();
sprite.play(0x00);
break;
case 'p':
Serial.println("Play");
sprite.play();
break;
case 'a':
Serial.println("Pause");
sprite.pause();
break;
case '>':
Serial.println("Next");
sprite.playNext();
break;
case '<':
Serial.println("Previous");
sprite.playPrevious();
break;
case '+':
Serial.println("Volume UP");
sprite.volUp();
break;
case '-':
Serial.println("Volume Down");
sprite.volDown();
break;
case 'c':
Serial.println("Query total file count");
sprite.qTFiles();
break;
}
}
Aller plus loin
La bibliothèque Proyectil MedeaWiz contient également – en plus des fonctions "standards" comme play(), pause() ou mute() – une fonction sendCmd() qui permet d'envoyer les commandes définies à la page 35 du Manuel de l'utilisateur du Sprite 4K : MedeaWiz® Sprite® 4K.pdf [en].
Ces commandes donnent un contrôle plus poussé du Sprite sans augmenter sensiblement la complexité du code. Il suffit d'appeler la fonction sendCmd() avec en paramètre la valeur hexadécimale de la commande.
/*
Sprite Serial Control Test Program with sendCmd()
Romain Corthésy
2026-02-03
*/
#include "medeaWiz.h"
#include <SoftwareSerial.h>
Sprite sprite = Sprite();
SoftwareSerial Serial1(2, 3); // RX, TX
void setup()
{
Serial1.begin(9600); // Serial to Sprite
sprite.begin(Serial1);
}
void loop()
{
sprite.sendCmd(0x02); // Play file 002.mp4
delay(5000);
sprite.sendCmd(0xFC, 0x02); // Make 002.mp4 the new looping file
delay(5000);
sprite.sendCmd(0x05); // Play file 005.mp4
delay(5000);
}
