Un projet d'échographie opensource http://echopen.org/
L'idée est de construire un premier prototype puis plusieurs dans le but d'une performance artistique avec Shu Lea Cheang avec l'aide de makery.
EN COURS….
chez mouser ~600€
chez radio-spare ~100€
Toutes les infos techniques se trouvent ici. Pour notre premier prototype nous utilisons les cartes suivantes :
cd /ici ou là/ git clone https://github.com/echopen/PRJ-medtec_kit.git cd PRJ-medtec_kit/installation/linux_user sudo apt-get update sh ./echopen_full.sh
ou
sh ./echopen_light.sh
voir ici
la compilation du code donne l'erreur suivante avec la verion 1.05 de l'IDE
MDL-motor_control_v1.ino : 76:52: error: ‘digitalPinToInterrupt’ was not declared in this scope
plus de soucis avec la verion 1.8.2 de l'IDE Arduino
https://github.com/echopen/PRJ-medtec_kit/tree/master/electronic/modules/hardware/MDL-redpitaya
http://redpitaya.readthedocs.io/en/latest/doc/quickStart/SDcard/SDcard.html
Une fois les librairies et logiciels installés il faut éxecuter le scriptinstal.sh qui se situe dans /PRJ-medtec_kit/installation/linux_user/src
cd PRJ-medtec_kit/installation/linux_user/src sh install.sh
Il existe deux programme :
affiche ligne par ligne les mesure effectuées à la manière d'un oscilloscope
affiche une image en niveau de gris à la manière d'une échographie
/!\ Brancher la redpitaya avant d'alimenter les cartes électroniques
via ordinateur
cd functional_code/firmware/MDL-motor_control_v3 sh run.sh 192.168.128.3 probe
via ssh
cd functional_code/firmware/MDL-motor_control_v3 chmod 777 probe scp ./probe root@192.168.128.3:/tmp/ ssh root@192.168.128.3 root cd /tmp/ ./probe
cd functional_code/display/probe_mode_B ./probe_mode_B
Faire fonctionner le patch
Produire du son
Nouveau firmware pour redpitaya : à télécharger ici 20_04_using_true_data_for_emulator.zip et nouvelle version de server : ajout d'un port (7540) uniquement en UDP server.zip et un logiciel de test pour recevoir l'image simple_raspberrypi_display.zip
Pour l'utiliser, il faut brancher la RedPiaya, se connecter au wifi redpitaya et lancer le bash send.sh qui envoie le firmware sur la RedPitaya et un fichier text contenant les données pour l'émulateur. Le bash te connecte aussi directement en ssh à la RedPitaya, il te reste à lancer le firmware ( avec un ./server ). De mémoire il faut installer sshpass (pour linux).
Ensuite pour le client, tu te connecte à l'IP 192.168.128.3 Port 7538 en TCP pour envoyer/recevoir les paramètres. Comme précédemment, à la connexion au server TCP tu reçois les paramètres par défaut de la RedPitaya, mais ils ne se présentent plus de la même façon, tu reçois un pacquet de 15*2 octet codés en int8_t. Les octets paires donnent l'id du paramère et celui qui suit la valeur de ce paramètre, voici l'énumération correspondante au paramétrage :
enum Settings_ID { na = 0, tcp_udp, number_of_bit, decimation, number_of_line, number_of_point_msb, number_of_point_lsb, delay_msb, delay_lsb, angle, tgc_start, tgc_end, emulator, start, settings_size, //use to know automaticly number of settings client_id, ready, //use for RedPitaya end //na };
L'ID 0 ne sert pas au cas où on envoit un buffer à 0, les ID >=15 sont particulier et ne sont pas censé te servir (à par éventuellement le end (18) qui force l'arrêt du firmware si = 1).
Pour changer les paramètres, tu renvoies les données de la même façon, sachant que tu peux envoyer le nombre de paramètres que tu veux, pas obligatoirement les 15. En réponse, la RedPitaya renvoie un buffer de 2*15 octet avec les nouveaux paramétrages pris en compte (ils peuvent changer de ceux que tu à envoyer si tu as dépasser leurs limites). Le nombre de points maximum est 16384.
Pour recevoir des données il faut mettre start à 1, et émulateur à 1 dans ton cas. Si tcp_udp = 0 les données sont envoyées en UDP, sinon en TCP sur le port 7539. ATTENTION pour recevoir les données tu dois lancer un server TCP ou UDP, là tu n'es plus client (pour simplifier l'utilisation de l'UDP). L'émulateur envoie ensuite des pacquts de number_of_point +1 “mots”, mots encodé en int8_t dans le cas ou number_of_bit = 8, et en int16_t dans le cas ou number_of_bit = 12. Avec number_of_point = 256*number_of_point_msb + number_of_point_lsb.
Par défaut la décimation est à 1 je crois, mais il faut mieux se mettre à 8, on travaillera comme ça pour faire des images. En fonction émulateur, delay, angle, tgc_start et tgc_end ne sont pas pris en compte.
Ensuite tu peux arrêter l'envoie de donner avec start = 0.
L'envoi de données se fait sur une autre socket
Code source à télécharger ici : qt_gui.zip
Serveur 092020 multi clients ici : display_server092020.zip et pour la pi avec dernières modifs (socket video sur 7610) displayserveur02102020pi.zip
Coque filet coque_filet.stl + gcode creality ce3_coque_filet.zip
Reception de l'image sur Raspberry pi version ok simple_raspberrypi_display02102020.zip
Boitier PVC boitier_pvc.zip