SE5 ECEAI/eceai 2024/2025/wijsman-lefranc
Git du projet:
https://gitlab.univ-lille.fr/louis.wijsman.etu/projet-ia-wijsman-lefranc
Séance 1 (09 Sept 2024):
Expérience :
L'objectif de l'expérience est de différencier des essences de bois à partir du spectre d'absorption et du temps de propagation d'un choc dans le bois.
Maquette :
La maquette est constituée de deux capteurs piézoélectriques fixés à une distance \( L \) l'un de l'autre. Une petite masse guidée permet de générer des chocs avec une amplitude variable.
Expérience :
L'expérimentation se fera en faisant varier plusieurs paramètres :
- Amplitude des chocs
- Forme de la planche de bois
- Épaisseur de la planche de bois
Cela permettra de discriminer l'essence du bois.
Séance 2
- Configuration du Raspberry Pi en Wi-Fi pour permettre la liaison SSH.
Séance 3 (23 Septembre 2024)
- Le Raspberry Pi peut maintenant communiquer en TCP avec notre serveur VM sur Capbreton.
- Création du code pour l'acquisition des données via le microcontrôleur.
Communication entre le Raspberry Pi et le serveur (SE5-WIJSMAN-LEFRANC-IA)
VM sur Capbreton : SE5-WIJSMAN-LEFRANC-IA ('172.26.145.111').
Contient un script Python ~/tcp_server/tcp_server.py permettant de récupérer des données depuis le Raspberry Pi.
import socket
# Set up the server IP and port
SERVER_IP = '0.0.0.0' # Listens on all interfaces
SERVER_PORT = 12345
# Create a TCP socket
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind the socket to the server IP and port
server_socket.bind((SERVER_IP, SERVER_PORT))
# Start listening for incoming connections
server_socket.listen(1)
print(f"Server listening on {SERVER_IP}:{SERVER_PORT}")
while True:
# Accept a connection
client_socket, client_address = server_socket.accept()
print(f"Connection from {client_address}")
# Receive the message from the client
message = client_socket.recv(1024).decode('utf-8')
print(f"Received message: {message}")
# Optionally, send a response back to the client
client_socket.send("Message received".encode('utf-8'))
# Close the connection
client_socket.close()
Raspbery pi:
Contient un script Python tcp_com/send_data.py qui permet d'envoyer des donees vers la VM
Système de Mesure
Pour effectuer les mesures, nous avons réalisé le montage suivant :
- Un système de percussion par chute d'une masse le long d'un axe gradué.
Nous utilisons une graduation, car l'objectif est de réaliser des mesures variées en modifiant la force de l'impact (via la hauteur de chute).
En effet, si la hauteur de chute était constante, le modèle de machine learning risquerait d'apprendre uniquement à détecter les différences en fonction de l'intensité de l'impact. Cela le rendrait inutile, car notre objectif n'est pas de discriminer sur la base de la force d'impact, mais de différencier deux matériaux différents indépendamment de cette variable.
- Un système de mesure avec des capteurs piézoélectriques.
Le système de mesure est équipé de plusieurs capteurs piézoélectriques, ce qui nous offre une plus grande flexibilité lors de l'entraînement du modèle.