Projet

Général

Profil

Théo Canaud

Stage du 23 Mai au 1 Juillet.

Le Fablab Coh@bit est une sorte d'association permettant d'aidé les personnes qui cherches à commencer un projet où à le finaliser. Les personnes pouvant venir demander de l'aide sont des anciens stagiaires au Fablab, des étudiants à l'IUT, ou bien des personnes qui n'ont rien à voir avec le Fablab Coh@bit. En effet, le Fablab possède du matériels et des machines (découpeuse laser, imprimantes 3D, etc...) pouvant être utilisé comme bon le semble tant que l'on demande l'autorisation aux gérants.

Le fait que le Fablab Coh@bit est une association permet aux gérants de celui-ci de former les nombreux stagiaires qui ci présente.
Mais former les stagiaires n'est pas la seul activité qu'ils y pratique, des projets autre que ceux proposer par les gérants peuvent voir le jour à la demande d'une entreprise ou à la demande de l'IUT; par exemple l'un des deux projets sur lesquels j'ai pu travailler consistait à créer une station de capteurs de température et d'humidité afin de surveiller l'état d'une réserve de livres anciens d'une faculté de médecine, le projet ayant été passer de stagiaire en stagiaire, lorsque je suis arriver il arrivait bientôt à son aboutissement.

Ce projet était une demande de Romain Wenz, conservateur au service du patrimoine documentaire de l'Université de Bordeaux.

Lundi 23 Mai

Matin

On a commencé par me présenter rapidement les différents projets qui sont en cours ou qui ont été fini avant mon arriver.
On m'a créé un compte redmine afin d'accéder aux fichiers personnel du site et à des informations supplémentaire concernant les projets, cela me permet aussi de travailler.
Puis on m'a ensuite assigner au projet Thermo-Blibli , j'ai donc lu le wiki qui a été fourni par ceux qui travaillais déjà sur ce projet, ce projet consiste à utiliser des dispositifs de mesure DIY (créer dans le Fablab) communicants l'évolution de la température et de l'hygrométrie dans les réserves de livres anciens de l'Université de Bordeaux.

Après-midi

Travail de réflexion en duo avec Aurélien sur le code du projet Thermo-bibli, un problème rencontrer avec la récupération de la date et de l'heure.

Mardi 24 Mai

J'ai observer et écouter la fin de la programmation du projet Thermo-bibli.

  • (Problème concernant la récupération de la date et de l'heure résolu, les deux données récupérés avaient un écart de temps, après vérification la date et l'heure récupérer n'était pas celle du bon fuseau horaire).

Mercredi 25 Mai

J'ai appris à utiliser l'application Freecad et donc à modéliser un objet simple.

Lundi 30 Mai

Réarrangement du wiki Thermo-Bibli.

Le projet Thermo-Bibli avec ses capteurs, sa carte et ses batteries:

Mardi 31 Mai

  • Finition du réarrangement du wiki et vérification par Pierre.
  • Visionnage d'une conférence de Jancovici.

Mercredi 1 Juin

  • Visionnage d'une film documentaire sur les tableaux et sculptures du mathématicien Man Ray.

Jeudi 2 Juin

Wiki Thermo-Bibli réellement enfin fini.

Vendredi 3 Juin

  • Continue à travailler dans le projet Thermo-Bibli, cette fois dans le côté programmation avec Aurélien et Quentin.

Mardi 7 Juin

Début de la programmation en Python. (Projet Robot-Go-Ouest)

Objectif:
  • Créer un graphique affichant les valeurs récupérer dans le fichier

Mercredi 8 Juin

  • Apprentissage du langage Python, et tout particulièrement, la création d'un graphique à partir des données d'un fichier csv.
  • Impression 3D d'un cube dans un cube en modélisant grâce à Freecad.

Jeudi 9 Juin

Continuation de la programmation en Python (recherche de documentation pour comprendre comment créer des graphiques l'un à côté d'un autre)

Graphique de base sans aucunes informations

Vendredi 10 Juin

Recherche de documentation pour mieux comprendre comment utiliser la fonction .append de la bibliothèque matplotlib.pyplot afin d'afficher les informations contenues dans le fichier rawData.csv .

Lundi 13 Juin

Réussite de l'affichage des informations contenue dans le fichier rawData.csv, maintenant il faut réussir à afficher une courbe pour chaque capteur.

Nouvelle connaissances: (SageMath, cryptage symétrique et asymétrique)

Mardi 14 Juin

Création d'un plan pour la suite de la programmation et de son optimisation.

Mercredi 15 Juin

Optimisation du code et création de tableaux.

Jeudi 16 Juin

Fin de la création du tableau grâce à Numpy.

Vendredi 17 Juin

Ajout de le possibilité de pouvoir choisir le dossier RawData dont on souhaite afficher le graphique + message d'erreur si dossier incorrecte.
Reste à afficher les autres colonnes du fichier RawData afin d'afficher les données des 8 capteurs.

Ajout mentionner:

while True:
        choice = input("Choisis un fichier csv de 1 à 1862: \n")
        print("\n")

        if float(choice) in range(1, 1863):
            rawdata = '../RawDataFiles/RawData' + choice + '.csv'
            with open(rawdata, newline='') as csvfile:
                reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
                for row in reader:
                    t = np.zeros([1,9])
                    t[0] = row
                    tab = np.append(tab ,t , axis = 0)
            break

        elif choice > '1862' or choice < '1':
            print("{} n'est pas un nombre valide.\n".format(choice))

Lundi 20 Juin

  • Recherche comment ajouter les courbes des autres capteurs au graphique.
  • Visionnage d'un reportage sur l'utilisation des réseaux sociaux par les hommes politique pour contrôler l'opinion publique.

Mardi 21 Juin

Test de différentes solutions afin d'ajouter les courbes des colonnes 2 à 8 du fichier .csv (les infos du capteur) dans le graphique.

Mercredi 22 Juin

  • Les courbes de chaque capteurs sont afficher.
  • Prochaine étape: créer une fonction boolean afin de vérifier si l'affichage des courbes est possible.

Changements du code:

while True:
        choice = input("Choisis un fichier csv de 1 à 1862: \n")
        print("\n")

        if float(choice) in range(1, 1863):
            rawdata = '../RawDataFiles/RawData' + choice + '.csv' #Définit le fichier à ouvrir

            with open(rawdata, newline='') as csvfile:
                reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
                x = [row for row in reader]
                int_x = np.array(x, int)
                column_index = [2,3,4,5,6,7,8,9]

                for col in column_index:
                    column_values = np.empty(0)
                    for array in range(len(int_x)):
                        column_values = np.append(column_values, np.array(int_x[array][col-1]))
                    plt.plot(column_values)
            plt.show()
            break

        elif choice > '1862' or choice < '1':
            print("{} n'est pas un nombre valide.\n".format(choice))

Jeudi 23 Juin

Apprentissage de l'utilisation de la fonction boolean.

Vendredi 24 Juin

Avancement de la fonction permettant d'afficher une colonne spécifique du fichier .csv.

Lundi 27 Juin

Fin de la programmation du code d'affichage du graphique des tension récupérer par les capteurs électro-physiologique placés sur la plante.

from secrets import choice
import numpy as np
import matplotlib.pyplot as plt
import csv

#fonction choix du capteur à afficher : 
#bool true si capteur veux être utiliser sinon false (tableau)
def function():
    while True:
        print("\n")
        choice = input("(1) Choisis un fichier csv de 1 à 1862: ")
        print("\n")

        if float(choice) in range(1, 1863):
            rawdata = '../RawDataFiles/RawData' + choice + '.csv'   #Définit le fichier à ouvrir

            choice2 = input("(2) Choisir un capteur à afficher en particulier dans le tableau? oui/non \n")
            print("\n")

            if choice2 == "oui":
                while True:
                    ccapteur = int(input("(3) Choisis parmis les capteurs (1, 2, 3, 4, 5, 6, 7, 8): "))
                    print("\n")

                    if ccapteur in (1,2,3,4,5,6,7,8):   #Affiche le capteur sélectionner
                        with open(rawdata, newline='') as csvfile:
                            reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
                            x = [row for row in reader]
                            int_x = np.array(x, int)
                            column_index = [ccapteur + 1]

                            for col in column_index:
                                column_values = np.empty(0)
                                for array in range(len(int_x)):
                                    column_values = np.append(column_values, np.array(int_x[array][col-1]))
                                plt.plot(column_values)
                        plt.show()
                        exit()

                    elif ccapteur != (1,2,3,4,5,6,7,8):
                        print("{} n'est pas un nombre valide.\n".format(int(ccapteur)))

            elif choice2 == "non":  #Ouvre le csv file et affiche tout les capteurs
                with open(rawdata, newline='') as csvfile:
                    reader = csv.reader(csvfile, quoting=csv.QUOTE_NONNUMERIC)
                    x = [row for row in reader]
                    int_x = np.array(x, int)
                    column_index = [2,3,4,5,6,7,8,9]

                    for col in column_index:
                        column_values = np.empty(0)
                        for array in range(len(int_x)):
                            column_values = np.append(column_values, np.array(int_x[array][col-1]))
                        plt.plot(column_values)
                plt.show()
                break

        elif choice > '1862' or choice < '1':
            print("{} n'est pas un nombre valide.\n".format(choice))

#Fonction d'affichage du graphique
def printFig(axe_x , axe_y , title = "new plot" , xlabel = "Temps" , ylabel = "Tension"):
    plt.plot(axe_x , axe_y)
    plt.xlabel(xlabel)
    plt.ylabel(ylabel)
    plt.title(title)
    plt.show()
    return 0

#print(x)
#print("y = " + str(y))

def final():
    function()
    #printFig()

final()

Mardi 28 Juin

Visite de mon professeur pour lui présenter ce que j'ai fait durant le stage.

Mercredi 29 Juin

J'ai imprimé les supports (9 supports) pour les capteurs des stations Thermo-bibli, le hotspot et les 2 bloque files (une pour chaque station).

10 capteurs au total seront placer dans les stations (5 dans chacune).

Hotspot :

Supports :

Bloque files :

Jeudi 30 Juin

Fin de l'impression des support pour capteurs.

Et impression du capot de la première station en cours, impression du 2ème capot ce soir.

Vendredi 1 Juillet

En ce dernier jour de stage j'ai récupérer le premier capot (le deuxième sera fait plus-tard au final), le capot a été trempé dans un sac rempli d'alcool pur à 99% afin de devenir translucide.

Capot :

Ensuite nous avons fixer avec Aurélien les capteurs aux supports que nous avons imprimer précédemment.

Capteurs + supports :

Puis toujours avec Aurélien, nous avons préparer les cartes PCB que nous allons brancher aux capteurs de la station.

Étapes de la préparation :
  • 1. Nettoyer la carte PCB avec du vinaigre blanc (utiliser une brosse à dent ou un torchon)
  • 2. Verser de l'acétone sur un chiffon et frotter bien la carte PCB
  • 3. (Attention à bien utiliser des gants lors cette étape) Laisser tremper la carte PCB dans une bassine en plastique avec un fond d'étain chimique à froid

Voici le résultat :