Enfin sur tablette android !

Après des semaines de recherches et des échanges avec les équipes techniques d’AppGameKit, l’Hubibox fonctionne sur une tablette android. Une avancées importante pour le projet !

Du coup je reprends le code et effectue quelques aménagements pour un meilleure intégration tablette. Puis je teste. Je voudrais en profiter pour corriger progressivement certains bugs.

Je suis satisfait de la réécriture récente d’une partie de l’algorithme du jeu Bubble, cette fonction récursive de détection des éléments en grappe à effacer n’était vraiment pas au point ! Puis je me suis ensuite attaqué à la correction des mouvements des ‘dominos’ du jeu Tetrixe et c’est maintenant parfait (jusqu’au prochain bug détecté !).

Le tour des machines et systèmes.

Depuis le début de ce projet, j’essaye le programme sur des plateformes différentes. L’idée est de trouver la moins onéreuse, la plus petite, pratique et performante. Ce qui correspond à des heures de recherches souvent infructueuses et décevantes. Ce n’est pas le plus fun. Bilan de mois de tests.

Windows.

Celui qui convient le mieux c’est Windows. C’est de loin le plus souple, le plus complet, et de tous le plus expérimenté. De plus, le matériel est toujours bien reconnu. La licence de Windows est certes payante, mais elle se retrouve sur d’ancienne machine et ne coûte plus rien. L’ordinateur contenu dans le meuble de la borne physique n’est pas le plus récent mais tenait parfaitement la route sous son Windows 7. Je l’ai passé sous Ubuntu, Windows 7 ne recevant plus de correctifs. Windows c’est du plug’n play, du solide. Le programme était même exécuté directement depuis la clef USB ! Sur l’ordinateur Tablette tout en un, c’est vraiment super sympa. Ce type d’ordinateur à écran tactile n’a pas trop fonctionné commercialement parlant, c’est bien dommage.

Linux.

Sur le meuble borne, au début Ubuntu ne parvenait pas a arrêter la machine. Mais finalement un correctif y parvient maintenant. Sous Linux, le programme de l’Hubibox ne peut lire les vidéos sans lancer un logiciel tiers, le lecteur VLC. Vraiment dommage et déçu. Cela fonctionne mais n’est pas très esthétique. L’utilisateur peut quitter l’application en cours de route par inadvertance. L’OS est très stable et l’interface plaisante à utiliser. Ensuite il faut toujours aimer taper des lignes de commandes pour mettre à jour le système de temps en temps. Linux reste quand même un système rarement utilisé en grand public.

Installé sur le Raspberry PI4, c’est un pétard mouillé, çà décolle pas vraiment car la carte est trop nouvelle et je n’ai pas une version AppGameKit suffisamment finie pour me convaincre de réaliser tout en open source. Encore la vidéo à lancer avec VLC et c’est encore plus bidouille. La carte chauffe et je ne suis pas parvenu à lancer l’application. Et Zut. Tout placer dans une petite boîte juste à relier à la TV, l’idée était très séduisante.

Android.

En ce qui concerne Android, le système est très bon pour gérer les dispositifs tactiles et se perfectionne au fil des années. Ensuite les différents systèmes de sécurité et la gestion des fichiers ne facilitent pas la résolution des problèmes lors du développement. Quelquefois, il peut y avoir une mauvaise surprise et un sacré défi à relever.

Ainsi sur ma tablette chinoise 10 pouces achetée pour le développement, je me suis vu des pierres et pas mal de désillusions avant de parvenir à une résultat finalement prometteur. Ouf !

Sur les box Google ou Android TV le programme tourne encore mieux. Le matériel embarqué est souvent beaucoup plus puissant. Cela pèche toujours sur la quantité de RAM ou la possibilité de retenir l’heure (pas de réseau WiFi, pas de RTC donc pas de date et d’heure hors connexion !). Mais je vois que les configurations commencent à s’étoffer au fil du temps. En plus elles décodent de plus en plus facilement les vidéos. Il est a noté que ma box UGOOS de 2Go de Ram possède un module RTC intégré.

Bilan

Jamais de solution miracle Sous Android le matériel géré est séduisant par son coût, sa compacité et sa gestion du tactile. Bien souvent en cours de développement des mauvaises surprises peuvent surgir . Windows convient le mieux, mais le matériel tactile comme les tablettes ne possèdent plus l’OS, ce qui est bien dommage. Linux apporte toujours une grande stabilité et la promesse d’un tout open source, mais la distribution d’AppGameKit n’est pas encore tout à fait adaptée à ce nouveau Raspberry 4.

3d vers 2d

Pour le jeu ‘Volconian’ j’ai construit un modèle 3D. Il est ensuite animé et rendu en 2d. J’ai repris en main Lightwave, j’en ai profité pour améliorer certains graphismes des jeux de l’hubibox. Au passage j’ai corrigé certaines parties du code. J’ai également revu mes quatre dernières productions musicales…

J’ai reçu le PI4. Il chauffe pas mal malgré le dissipateur thermique et pour l’instant impossible de lancer une application AGK. Il devrait y avoir une mise à jour du logiciel en septembre.

Comment une nouvelle partie est ajoutée au programme de l’Hubibox

Dans un premier temps, je réfléchis à l’algorithme du programme et effectue des recherches. Ensuite je commence à produire les premiers graphismes. Ils sont dérivés des précédents, pour coller à l’aspect général.

Ces éléments en main j’écris la structure de base du code de cette partie qui est directement incluse dans le code existant de l’Hubibox. Je tends alors de plus en plus vers mon idée en écrivant de plus en plus des lignes de code. Je teste petit à petit le fonctionnement, débusque les bugs les plus déroutants. Trouve des solutions pour un bon fonctionnement de l’ensemble. Généralement je peaufine ou j’ajoute des graphismes.

J’essaye toujours d’aller à l’essentiel. Je suis seul pour réaliser mon idée, et souvent de nombreuses heures sont nécessaires. J’entrecoupe souvent ces séances de réalisations. C’est mon véritable boulot qui fait la coupure. Et au final certaines journées sont très longues. Le tout est de pouvoir terminer l’idée, la partie concernée. De nombreux développeurs amateurs se lancent des défis trop importants et ne terminent jamais leur projet.

La musique est produite en cours de réalisation. Elle aide et encourage la création. Une fois écrit le code est à tester de nombreuses fois. L’ordinateur insulte de ses messages signalant les erreurs. Le débogage n’est pas facile, comprendre ce qui cloche et converser avec un ordinateur demande beaucoup de pratique et de sang-froid. Cette étape fastidieuse est plus agréable lorsque la musique est en place. Dans d’autres parties comme les diaporamas je produis la musique à la fin.

Tout ce temps passé, est du temps de ma vie. Et j’ai beaucoup de choses à faire. Ce ne semble pas être un gros projet et pourtant il consomme des heures. Comme c’est le travail d’une seule personne. Il me ressemble. Un programme d’auteur.

Le Raspberry 4 est sorti

La célèbre ‘carte ordinateur’ est mise à jour et je la testerai en embarquant le programme de l’Hubibox. Le processeur central est plus rapide, le processeur vidéo également, mais ce qui m’intéresse plus particulièrement c’est la Ram. Ainsi j’ai opté pour une carte de 4 Go contenue dans un petit boitier. Elle est déjà en rupture de stock. Je l’ai commandé en vue de tests en septembre. Le programme ne lisait pas les vidéos sur les précédentes versions. Espérons que je trouverai une solution pour combler cette lacune.

Retour sous Android

J’ai repris une grande partie du code de la borne, zut, l’Hubibox pour changer l’accès au dossier des données. De ce fait elle fonctionne également sous Android. Cette version est similaire à la version Windows en ce qui concerne la lecture des vidéos (oui çà fonctionne !). Je l’ai testé sur ma box Android Ugoos 2Go de Ram qui est connectée à ma TV. Le dispositif de pointage est la souris-télecommande sans fil. Pour cette configuration j’ai désactivé les passerelles bluetooth écrite en c++ (pas de Robot ou Boite à cadeaux). C’est assez véloce.

J’ai également testé sur une Box Android sur laquelle était installée une des premières versions. Et tout fonctionne à merveille.

Rotule rotation horizontale.

Je réalise une rotule automatique pour mon trépied vidéo. L’idée est de réaliser un rotation horizontale souple. Une Arduino nano est couplée à un servomoteur. Un module bluetooth permet l’utilisation de mon téléphone portable en sans fil pour commander la rotation. Le tout est alimenté par un bloc de piles.

Le 09.05.2019

Finalement la solution du servomoteur ne convenait pas . Le couple était largement satisfaisant mais le déplacement était trop trop rapide. Impossible de ralentir tout en conservant un mouvement souple. Du coup virage vers une autre solution:

J’ai remplacé le servomoteur par un moteur continu et sa roue (en jaune). Au dessous de la plaque pivotante – sur laquelle est placée le caméscope – se trouve une poulie de diamètre plus important. Le mouvement est fluide. J’ai la place de poser mon téléphone qui commande le dispositif sans fil. La je suis dans l’attente de la livraison d’un bloc de 6 piles et d’une vis de fixation pour le caméscope.

Du côté de Linux

J’ai changé le système d’exploitation de l’ordinateur du meuble. J’ai opté pour du Linux, plus précisément Ubuntu. La raison de ce changement est la fin des mises à jour de sécurité et du support de Windows 7 en janvier 2020. Du coup, j’ai évidemment testé le programme de la borne.

Déjà, j’ai été surpris de l’évolution des interfaces graphiques de Linux. Gnome se rapproche du traditionnel bureau de Windows 7. Le programme fonctionne parfaitement, enfin presque. Une fois de plus, la lecture des vidéos est problématique.J’ai adapté le code pour pouvoir lancer un programme externe : VLC. Impossible d’inclure les vidéos au plus près du programme comme c’est la cas sous Windows. C’est moins propre, mais ça fonctionne. Ubuntu est une distribution gratuite au contraire des systèmes Windows.

Tout le reste fonctionne bien. Ensuite il faudrait écrire une version linux des programmes passerelles en c++ qui communiquent avec la BorneBox ou le BorneBot. Ce qui relève d’un nouveau challenge. Et je me pose la question si j’investis du temps ou pas la dessus.