Innovation technologique en 1ère STI2D
Rapport de projet de synthèse - année scolaire 2020-2021
Lycée Haroun Tazieff à Saint-Paul-lès-Dax

🔸🔸Trieuse de gélules automatique🔸🔸
Auteurs : Mattéo D., Matthias S., Melvyn A. et Yanis L.

Sommaire 🏳

Cahier des charges 🖊

Bonjour aujourd’hui nous allons vous présenter notre projet qui est un robot trieur de gélules. En d’autre termes, ce robot permet de trier différentes couleurs des pilules médicales par exemple, sans aide physique, de manière rapide et efficace car tout est automatisé. Ce robot peut être programmé pour trier autant de couleur que l’on souhaite. Ce projet n’est pas notre invention il a déjà été présenté et réalisé par des personnes. Nous avons eu l'idée de présenter ce projet car le monde est de plus en plus industrialisé; de plus en plus la machine remplace l'Homme pour des besoins d'efficacité ainsi que des besoin de rapidité ce qui nous permettrait d’aider les entreprises.

Pour mener à bien ce projet le robot devra respecter différentes contraintes : suivre l’ordre imposé par la programmation de la carte arduino capter les différentes couleurs des gélules trier les différentes gélules dans les bons récipients

Notre objectif est de susciter l’attention afin de vous convaincre sur l'intérêt et l'utilité de notre projet. Pour réaliser ce projet nous avons besoins de différents matériaux : d’un support (carton rigide...) d’un capteur de deux cerveaux moteurs, d’une batterie,d'un interrupteur connecté directement en liens filaire avec la carte arduino.

Ce projet peut être utilisé dans différents cadres aussi bien dans un cadre médical (pour trier des médicaments ce qui permettra d’aider le personnel médical par exemple) dans un cadre environnemental (pour trier les déchets comme par exemple les bouchons plastiques et les bouchons en métal ce qui permettrait de dépolluer la planète). Ce projet pourrait être alimenté à l'énergie solaire (panneau solaire, éolienne)

cette machine a des avantages : pas besoin de main d’oeuvre, bénéfice pour l’entreprise au long terme prix accessible au petites entreprises qui n’ont pas de gros budget. Cette machine a aussi des désavantages : le fait que cet machine soit automatique supprime des emploies cet machine n’est pas accessible à toutes les personnes à la fabrication, il faut un minimum de connaissances technique il peut y avoir des défaillances techniques contrairement à un emploi.

Modélisation volumique de notre machine 🔷

▶ Modélisation volumique :

▶ Machine une fois finie :

Les exigences de notre machine‼ 🔷

Machines similaires 🔀

Points forts : ✔

- design épuré

- rendement

- peut contenir/trier beaucoup de gélules

Points faibles : ❌

- mécanisme avancés

- avec engrenages

- tri plus long que les autres machines

Points forts : ✔

- tri rapide des gélules

- matériaux peu coûteux

- mécanismes simple

Points faibles : ❌

- contient peu de de gélules

- mécanisme visible

- design sobre

Etape de la réalisation 🕑

-1/ Réfléchir aux éléments nécessaires pour la machine

-2/ Concevoir la machine en prenant en compte les contraintes du circuit

-3/ Assembler le circuit puis le tester

-4/ Modifier dans le programme les couleurs pour que ce soir les mêmes que les gélules

-5/ Assembler le circuit avec la machine

-6/ Profiter d'un triage automatique des gélules



Trieuse de gélules animation 3D 🔄


Code arduino de notre machine ⬇

/*     Arduino Project - Color Sorting Machine
 *
 *  by Dejan Nedelkovski, www.HowToMechatronics.com
 *
 */

#include <Servo.h>
#define S0 2
#define S1 3
#define S2 4
#define S3 5
#define sensorOut 6
Servo topServo;
Servo bottomServo;
int frequency = 0;
int color=0;

void setup() {
  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);
  pinMode(sensorOut, INPUT);
  // Setting frequency-scaling to 20%
  digitalWrite(S0, HIGH);
  digitalWrite(S1, LOW);
  topServo.attach(7);
  bottomServo.attach(8);
  Serial.begin(9600);
}

void loop() {
  topServo.write(115);
  delay(500);
  for(int i = 115; i > 65; i--) {
    topServo.write(i);
    delay(2);
  }
  delay(500);
  color = readColor();
  delay(10);  
  switch (color) {
    case 1:
    bottomServo.write(50);
    break;
    case 2:
    bottomServo.write(75);
    break;
    case 3:
    bottomServo.write(100);
    break;
    case 4:
    bottomServo.write(125);
    break;
    case 5:
    bottomServo.write(150);
    break;
    case 6:
    bottomServo.write(175);
    break;
    case 0:
    break;
  }
  delay(300);
  for(int i = 65; i > 29; i--) {
    topServo.write(i);
    delay(2);
  }
  delay(200);
  for(int i = 29; i < 115; i++) {
    topServo.write(i);
    delay(2);
  }
  color=0;
}

// Custom Function - readColor()

int readColor() {
  // Setting red filtered photodiodes to be read
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  int R = frequency;
  // Printing the value on the serial monitor
  Serial.print("R= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(50);
  // Setting Green filtered photodiodes to be read
  digitalWrite(S2, HIGH);
  digitalWrite(S3, HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  int G = frequency;
  // Printing the value on the serial monitor
  Serial.print("G= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.print("  ");
  delay(50);
  // Setting Blue filtered photodiodes to be read
  digitalWrite(S2, LOW);
  digitalWrite(S3, HIGH);
  // Reading the output frequency
  frequency = pulseIn(sensorOut, LOW);
  int B = frequency;
  // Printing the value on the serial monitor
  Serial.print("B= ");//printing name
  Serial.print(frequency);//printing RED color frequency
  Serial.println("  ");
  delay(50);
  if(R<45 & R>32 & G<65 & G>55){
    color = 1; // Red
  }
  if(G<55 & G>43 & B<47 &B>35){
    color = 2; // Orange
  }
  if(R<53 & R>40 & G<53 & G>40){
    color = 3; // Green
  }
  if(R<38 & R>24 & G<44 & G>30){
    color = 4; // Yellow
  }
  if(R<56 & R>46 & G<65 & G>55){
    color = 5; // Brown
  }
  if (G<58 & G>45 & B<40 &B>26){
    color = 6; // Blue
  }
  return color;  
}