Système d'exploitation pour Arduino pour les écrans tactiles

Bonjour, je me pose une question : y a t'il un système d'exploitation pour Arduino pour écran tactile ? J'ai fait quelques recherches et je suis tombé sur JOS, qui n'est pas un système d'exploitation mais plutôt une interface menu ( voir aussi

). Je m'intéresse au système d'exploitation car ce serait plutôt bien, de faire une sorte de tablette sur Arduino ! Bon, les microcontrôleurs sont lents par rapport aux ordinateurs, mais on pourrait déjà faire des dessins, peut être avoir un éditeur de texte simple ou encore un lecteur de musique etc.. Pouvez-vous me dire s'il y en a un ou plus et si possible le nom, le dite pour le télécharger et s'il faut payer pour télécharger le prox du système ?

Merci d'avance.

Il faut oublier cette idée.
Un OS a besoin au minimum d'un support de masse pour y stocker des exécutables, de la mémoire RAM en quantité suffisante pour y loger ces mêmes exécutables lorsqu'ils sont lancés, sans parler de la gestion des entrées / sorties.
Avec un ARDUINO, on peut tout au plus écrire une application dédiée, même si cette application peut réaliser plusieurs fonctions.

Solution : RASPBERRY PI !

1 Like

on trouve des petites tablettes (ou smartphone) android à moins de 100€ ou d'occasion à moins de 50€ sans doute, je ne suis pas sûr que ce soit intéressant de réinventer la roue...

1 Like

D'accord, merci pour la rapidité de vos réponses, je n'en espérait pas tant, mais pour le problème de place mémoire, l'Arduino zéro a assez de place mémoire en RAM la place de stockage Flash est plus grande place mémoire et j'ai une idée pour y remédier : on peut très bien coder l'Arduino zéro pour lire des fichiers stockés dans une carte mémoire micro-SD ou SD, ce qui prendrait normalement pas beaucoup de mémoire Flash à l'Arduino zéro. Vous trouvez ?
C'est fesable ?

Et ensuite ?
Un fichier exécutable ne s'exécute pas à partir d'un fichier sur une SD. Il faut le charger en mémoire RAM.

1 Like

et en flash?

1 Like

Oui, bien sûr, mais il faudrait pour cela écrire un chargeur en FLASH, que le code soit chargé à une adresse bien précise, que l'édition de liens soit faite pour que le code démarre à cette adresse, etc.
Totalement inabordable pour un débutant comme l'est certainement l'OP.

1 Like

On peut exécuter un programme en RAM? Le pointeur programme ne pointe pas dans la RAM mais dans la flash. Non?
Il est dit dans la datasheet:

The AVR architecture has two main memory spaces, the Data Memory and the Program Memory space. In addition, the ATmega48A/PA/88A/PA/168A/PA/328/P features an EEPROM Memory for data storage.
Je suppose que si on veut exécuter un programme en RAM, ce ne peut être qu'un programme interprété, comme sur SD, l'interpréteur se trouvant sur la flash.

Je ne parle pas forcément d'AVR. Personne n'est obligé de rester figé au temps des dinosaures.

Un STM32 peut parfaitement charger du code en RAM et l'exécuter.

1 Like

Oui et un AVR de base pour gérer un écran graphique c'est vite limité de toutes façons...

1 Like

Je rectifie : on peut charger du code en RAM d'un STM32 à l'aide d'un JTAG, et le faire s'exécuter. Cette technique est généralement utilisée à des fins de test en production.
On peut aussi placer certaines portions de code (handlers d'interruptions par exemple) en RAM, pour plus de rapidité d'exécution. Le code est en FLASH au départ, et il est recopié en RAM par le startup.
Mais le STM32 n'est pas le seul à avoir ces capacités, je dirais même que l'AVR me semble être le seul à en être dépourvu.

1 Like

en écrivant un bootloader ce serait envisageable avec un AVR mais le bootloader prendrait une très grosse partie de la mémoire laissant donc peu de place pour les applications. C'est sans doute pour cela que personne ne l'a fait... aucun intérêt pratique et bcp de boulot

D'accord, merci, mais je prends un exemple pour voir si ça c'est possible :
Matériel :
-une carte programmable (Arduino Uno, zéro, méga 2560 ...)
-un écran tactile compatible avec la carte programmable, avec un port SD pour sctocker des fichiers
-Un ordinateur pour programmer zvec l'application arduino IDE avec la derniere version l, gestionnaire de carte correspondant inclus
-un câble pour relier l'Arduino à l'ordinateur

Explications :
IDE Arduino ouvert, câble branché, on commence à coder. Pour commencer, il faut un objectif : Je veux avoir deux applications , une de dessin, et l'autre la barre des tâches, toutes les deux stockés dans la carte (micro) SD.On veut aussi qu'elles soient exécutés l'une après l'autre, comme application dessin ligne de code 1 ensuite application barre des tâches ligne de code 1 puis application dessin ligne de code 2 etc.. Pour ça il faut déjà au préalable avoir codé les applications dans la carte SD en extension .txt par exemple.
pour le code de la carte programmable (de préférence rapide) on code (d'une manière compréhensible) :
unsigned long lignedecodeaexecuterpourappdessin;
char* lignedecodeaappliquer;
void setup () {
si (carte micro SD non présente)
{Repeter a l'infini : attendre une seconde
}
}
void loop () {
ouvrir dessinapp.txt ;
lire jusqu'à la ligne de code lignedecodeaexecuterpourappdessin;//une variable
enregistrer la ligne de code dans la variable lignedecodeaappliquer ;
Si (lignedecodeaappliquer == afficher un point à x = 1 y = 1)
{afficher un point à x = 1 y = 1;}
Sinon si (lignedecodeaappliquer == afficher un point à x = 1 y = 2)
{afficher un point à x = 1 y = 2 ;}
//etc. Même fonctionnement pour l'autre app
}// Fin du programme

Donc inutile ici.
Problème : mettre toutes les possibilités dans la condition si alirs sinon si alors... Ça va certainement prendre beaucoup trop de place mémoire Flash !

Au fait, c'est quoi ou qui un "OP" ?
C'est celui ou celle qui démarre une discussion dans un forum ? Donc ici, moi ?

Si tu veux mettre un autre système d'exploitation, il y a un miniXP qui fonctionne sur Uno. Le l'ai mis en ligne il y a 215 jours déjà:
https://youtu.be/2psuuRf4Kbo

rien compris ) pourquoi ce serait inutile... Comment allez vous dire (interface utilisateur) je veux paint ou je veux le jeu XYZ et aller le chercher sur la carte SD pour le mettre en flash ?

"Original Poster" en langue de Shakespeare. Donc oui, c'est vous.


ps: @vileroi n'y a-t-il pas une erreur sur la date de la vidéo ? :slight_smile: (j'ai pas regardé pour 215 jours mais ~7 mois semblent OK)

Tu as raison, je crois que c'est plutôt 580 jours

Un langage interprété, puisque l'exécution se fait ligne par ligne.
Et un scheduler par dessus le marché :woozy_face:
Je ne pense pas que tu te rendes bien compte de l'ampleur de la tâche, et de la lenteur du produit final (charger une ligne depuis la SD, l'exécuter, passer à la suivante, etc.).

D'accord. À la base je voulais un petit système d'exploitation pour écrans tactiles qui coûterait par exemple 2€ et ensuite on ne payerais pas ! Par contre windows 10, on peut l'acheter et ensuite il faut payer l'abonnement 365 par exemple pour avoir publisher, excel ,etc..
Et pas n'importe quel système d'exploitation je ne voudrais pas forcément un compliqué meilleur pour la bureautique qui a inclurait par exemple une application de dessin de traitement de texte avec une barre des tâches en fond d'écran. Évidemment on pourrait mettre un peu plus d'application de bureautique !

Mais j'ai compris on va pas faire ça sur un Arduino c'est trop long en revanche on pourrait peut-être programmer un vieux ordinateur ou une vieille tablette si c'est possible. Donc abandonner les Arduino pour ça !

:face_with_raised_eyebrow: Je ne suis pas débutant, j'ai pas mal de livres sur les Arduino, @hbachetti !
J'ai commencé il y a 4-5 ans et j'apprends vite, même si j'insiste souvent ( ex : sur ce sujet ) !

Je vais créer donc des applications individuelles, stockés dans la mémoire Flash.

Maîtriser ARDUINO ne veut pas dire maîtriser les systèmes d'exploitation.

En partant de ZÉRO ? Certainement pas. C'est un projet pour une vie entière, et peut-être plusieurs.
Par contre il existe des systèmes d'exploitation pour machines obsolètes, avec OpenOffice ou LibreOffice inclus.
Voir : Linux, OpenBSD, etc. Il suffit de chercher.

J'ai un nouveau problème, mais je vais créer un autre sujet ! Il est en lien avec l'écran tactile mais pas avec un système d'exploitation.
Dans un prochain message, je vous donnerai le lien.

P.s. : @vileroi , si c'est bien toi qui à posté la vidéo, peux-tu m'indiquer un lien pour télécharger miniXp ?