Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Projets de programmation


Index du Forum » Projets de programmation » teaser usb -- utiliser une calto comme écran pour son PC
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

teaser usb -- utiliser une calto comme écran pour son PC

Posté le 26/03/2023 23:08

C'est une démo de mon nouveau driver USB dans gint 2.10 : des caltos comme écrans virtuels !


La Graph 90+E et la fx-CG 50 sur cette photo se comportent comme des écrans auxiliaires, on peut y glisser la souris, des fenêtres, etc. On peut aussi contrôler le PC en utilisant le clavier de la calto.

Niveau implémentation, j'ai créé deux écrans virtuels dans sway (mon gestionnaire de bureau), que j'expose avec un serveur VNC. Ensuite un client VNC (dont le code est à gauche sur la photo et ici sur le dépôt) récupère les images, qu'il transfère aux calculatrices en utilisant la libfxlink (nouvellement disponible avec le fxSDK 2.10).

Sur la calto, un add-in assez simple (dont le code source est ici sur le dépôt) récupère les images et renvoie des mises à jour sur l'état du clavier, lequel est relayé au serveur VNC.

Petite vidéo explicative avec les visuels juteux (en anglais mais il y a les sous-titres) :


Et voilà, enjoy!

Sources et instructions d'utilisation : Dépôt Gitea Lephenixnoir/cg-virtual-monitor


Potter360 Hors ligne Rédacteur Points: 1221 Défis: 2 Message

Citer : Posté le 26/03/2023 23:11 | #


Omgg incroyable :o :o :o
C'est fucking propre wow, je sens que ça va m'aider dans mes projets ça éhé
Globalement, coder. Mal, mais coder.
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 26/03/2023 23:15 | #


J'ai fait ça "plutôt bien", dans le sens où c'est reproductible (le temps que j'ajoute toutes les instructions) et les programmes sont pas écrits complètement à l'arrache. J'ai testé que ça freeze/crashe pas quand on débranche une calto, couple le client VNC, etc. Bon courage si ça t'aide. Effectivement pour ton histoire de N64 perso j'avais pas pensé jusqu'ici à faire une capture vidéo via un serveur VNC. Je sais pas trop si c'est efficace par contre, là je me suis pas posé la question parce que mon PC il en a vu des pires (c'est du 396x224 lol !) mais sur ton Pi faudra voir.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Farhi Hors ligne Membre Points: 1305 Défis: 0 Message

Citer : Posté le 27/03/2023 02:19 | #


Juste incroyable ! Je tire mon chapeau !
"La créativité est contagieuse faites la tourner"
Albert Einstein
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 27/03/2023 11:30 | #


C'est vraiment un superbe développement, comme dit rapidement hier dans la shout.
Bravo Lephé, c'est du super boulot.

On peut penser à vraiment beaucoup de choses qui pourraient profiter de cette possibilité de communiquer efficacement entre la calculatrice et le PC:
- Effectivement "déporter" l'écran, soit du PC vers la machine, ou inversement et pourquoi pas jouer à Rogue Life en upscaled sur le PC (fxlink pourrait alors chopper l'image et l'upscaler au vol (note que je réfléchi à ça aussi pour la capture de la cible fxascg.
- Utiliser le PC comme un mode serveur, pour du multijoueur
- Pourquoi pas utiliser le PC comme une ressource externe de calcul si disponible (je sais ça sert à rien, mais c'est marrant comme concept ) : la machine regarde si elle est connectée, et si oui elle sous-traite des calculs au PC pour alléger sa charge
- ultimement une connexion avec GDB (je sais que tu en rêves aussi Lephé )
...
et certainement encore plein d'autres trucs sympa auxquels on ne pense pas encore.

Je suis vraiment impressionné (et teasé), bravo à toi.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 28/03/2023 00:17 | #


Merci ! Oui il y a pas mal d'options si on est assez inventif. J'ai mis à jour le post principal avec les explications et une vidéo que j'ai enregistrée ce soir. La mise à jour de gint devrait arriver demain, comme ça vous pourrez vous lancer dans tous les projets en question !
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 28/03/2023 02:03 | #


J'ai pu mettre en place le serveur sur mon PC sans trop de problèmes :
- TigerVNC
x0vncserver -rfbauth ~/.vnc/passwd -rfbport 5910 -Geometry 394x224+0+150 pour lancer le serveur

C'est tout simplement magnifique et très fluide. C'est là qu'on se rend compte que l'écran de la 90+E est vraiment pas mal et que son potentiel est fou. Je n'ai pas pu m'empêcher de mettre une vidéo YouTube dessus, regardez moi ce résultat (la vidéo est en non-répertoriée) :


Et rien que pour ça, franchement merci !

C'est très impressionnant, même si je n'ai pas beaucoup d'utilité en tête (si ce n'est un rpi branché en USB, histoire de profiter de l'écran de la calculatrice @Potter360 )
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !


Lephenixnoir Hors ligne Administrateur Points: 24229 Défis: 170 Message

Citer : Posté le 28/03/2023 08:02 | #


Merci ! Est-ce que x0vncserver te crée un nouvel écran ou utilise juste un coin de l'original ?

Pendant que j'y suis est-ce que je peux lier ta vidéo dans le README ?
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Slyvtt Hors ligne Maître du Puzzle Points: 2309 Défis: 17 Message

Citer : Posté le 28/03/2023 08:57 | #


Moi j'ai pensé à une d'autres utilisations possibles :
- se servir de sa CG50 comme d'un streamdeck pour OBS par exemple, pour ceux qui font des vidéos.
- ou comme un pavé numérique externe pour ceux qui sont sur portable sans pavé numérique
- ou bien comme mini écran de status/sensors monitor

Franchement on va trouver plein d'idées.

Effectivement couplé à un Pi, ca peut être vraiment génial aussi.
There are only 10 types of people in the world: Those who understand binary, and those who don't ...
Tituya Hors ligne Administrateur Points: 2141 Défis: 26 Message

Citer : Posté le 28/03/2023 16:02 | #


Au final voici les étapes que j'ai suivie :
git clone https://gitea.planet-casio.com/Lephenixnoir/cg-virtual-monitor
sudo pacman -S libvncserver
sudo pacman -S tigervnc

cd cg-virtual-monitor/vnc-client
cmake -B build
make -C build
cd ../cgvm-addin
fxsdk build-cg -s

vncpasswd
x0vncserver -rfbport 5910 -rfbauth ~/.vnc/passwd -Geometry 396x224+{offset_x}+{offset_y}

# Dans un autre terminal
./cgvm_vnc --calc


x0vncserver utilise une partie de l'écran principal ($DISPLAY), le -Geometry permet de spécifier l'offset par rapport au haut gauche de l'écran.
Je suis en train de regarder pour utiliser Xvnc à la place, j'arrive à correctement lancer le serveur mais je n'ai aucune idée de comment y afficher des choses
Bretagne > Reste du globe
(Et de toute façon, vous pouvez pas dire le contraire)
Projet en cours : Adoranda

Mes programmes
Hésite pas à faire un test !



LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 65 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd