Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Farbsortiermaschine

Komponenten und Verbrauchsmaterialien

Arduino Nano R3
× 1
TCS 34725 RGB-Sensor
× 1
LM2596 Abwärtswandler
× 1
MG-90S-Servos
× 2
MR105ZZ Kugellager (5 x 10 x 4 mm)
× 3
608RS oder 608ZZ Kugellager (8 x 22 x 7 mm)
× 1
6003RS Kugellager (17x35x10 mm)
× 1
M3*15 mm Senkkopfschraube
× 1
M2x10 selbstklebende Schrauben
× 20
RGB-LED (gemeinsame Anode (+))
× 1
220-Ohm-Widerstände
× 3
Drähte
× 1
2,1x5,5mm Klinkenstecker
× 1
Schrumpfschlauch
× 1
Dupont-Konnektoren
× 1
9-V- oder 12-V-Netzteil (mindestens 1 Ampere)
× 1
5 x 22 mm (OD) x 100 mm Reagenzgläser (von Danmu Art)
× 1
Kegelchen!!!!!!!!!!
× 1

Notwendige Werkzeuge und Maschinen

3D-Drucker
Schraubendreher
Abisolierzange
Zange
Lötkolben
Multimeter
Crimpzange

Über dieses Projekt


EINFÜHRUNG.

Die lustige Geschichte ist, dass dieses Projekt nie sein sollte.

Vor ungefähr 3,5 Jahren habe ich angefangen, eine viel funkigere Farbsortiermaschine zu entwerfen und wie viele meiner Projekte endete sie halb fertig mit Staub auf dem Fenstersims (ich bin sicher, niemand sonst kann damit etwas anfangen, haha).

Lange Rede, kurzer Sinn, vor ein paar Monaten habe ich beschlossen, dieses alte Projekt wieder aufzunehmen. Das erste, was ich herausfinden musste, war, wie man Skittles aus einem Reservoir sammelt und ihre Farbe ziemlich zuverlässig überprüft, während das System so kompakt wie möglich gehalten wird (was mir beim ersten Mal nicht gelungen ist). Ich habe es geschafft, mich selbst zu überreden, eine einfachere Farbsortiermaschine zu entwickeln, nur um das Design des Sammelsystems richtig zu machen. Ich dachte dummerweise, es wäre ein Job für 2 Wochenenden, nett, einfach und schnell... Oh Junge!!! lag ich falsch...

Ich habe mir 2 völlig unterschiedliche Designs und viele optimierte Prototypen genommen, um etwas zu bekommen, das auf akzeptable Weise funktioniert (ich habe immer noch von Zeit zu Zeit Probleme mit der Aufnahme).

Auch wenn es nicht perfekt ist, bin ich mit dem Ergebnis sehr zufrieden.

WIE FUNKTIONIERT ES.

Die Maschine kann in 2 Hauptstufen aufgeteilt werden.

Oben befindet sich der Stausee für die unsortierten Kegeln. Am Boden dieses Reservoirs befindet sich der Zuführmechanismus, der dafür verantwortlich ist, Kegel zu sammeln und sie vor dem Farbsensor zu positionieren, wo ihre Farbe überprüft wird.

Der Zuführmechanismus umfasst einen Arm, der den Inhalt des Reservoirs schüttelt, um sicherzustellen, dass die Skittles gut durch die Öffnung des Zuführmechanismus fließen, ohne sich im Reservoir zu verklemmen (leider kommt es immer noch manchmal vor).

Ist die Farbe des Skittles gefunden, kommt die zweite Stufe der Maschine zum Einsatz. Der Reagenzglashalter richtet das rechte Röhrchen vor dem Zuführmechanismus aus, damit der Skittle eingeworfen werden kann.

Der Zyklus kann dann wiederholt werden, bis der Behälter leer ist.

WOLLEN SIE IHR EIGENES MACHEN???

..................https://www.littlefrenchkev.com/farbsortiermaschine.......... ......

MONTAGE.

Sobald Sie die Teile heruntergeladen und ausgedruckt haben, sollten Sie so etwas erhalten:

Beachten Sie, dass die Frontschale in 2 Versionen erhältlich ist. Kein wirklicher Unterschied, sie sehen nur anders aus.

Der Rest der benötigten Teile.

Hier ist ein Video vom Montageprozess. Ich habe sogar versucht, ein Künstler zu sein, indem ich ein Intro mit Slowmo-3D-Druckeraufnahmen gemacht habe!!!

ERSTEINRICHTUNG.

Das erste, was die Maschine beim Einschalten tut, ist, beide Servos in ihre Ausgangsposition zu bringen. Wenn Sie die Maschine zum ersten Mal starten, müssen Sie sicherstellen, dass sich das Zahnrad/die Welle zum Sammeln der Kegel in der obersten Position befindet und dass der Rohrhalter mit dem Zuführmechanismus ausgerichtet ist.

FEHLERBEHEBUNG.

Wenn Sie sich entscheiden, diese Sortiermaschine selbst herzustellen, können einige häufige Probleme auftreten. So können Sie sie lösen.

LED blinkt rot - keine Startsequenz:

Nach der Bewegung in die Ausgangsposition sollte die Maschine ihre Startsequenz durchlaufen. Wenn dies nicht der Fall ist und die LED stattdessen rot blinkt, haben Sie Probleme damit, dass Ihr RBG-Sensor nicht gefunden wird. Es liegt entweder ein Problem mit Ihrer Verkabelung vor oder der Sensor ist defekt.

Röhren sind nicht richtig ausgerichtet:

Ursache 1

Während der Startsequenz bewegt sich der Röhrchenhalter 5 Mal, einmal für jede Farbe. Möglicherweise stellen Sie fest, dass die Rohre nicht so gut auf den Zuführmechanismus ausgerichtet sind. Dies könnte daran liegen, dass die Servos nicht superpräzise sind oder an einigen Abweichungen in den Druckabmessungen.

Dies kann durch Software korrigiert werden, indem das Variablenarray color_angle modifiziert wird. Jeder Wert in diesem Array stellt die Servoposition für jede Farbe dar. Durch Ändern dieser Werte können Sie genau einstellen, wo die Röhre für jede Farbe stoppt.

Ursache 2

Aufgrund von Drucktoleranzen kann es auch zu Spiel in den Zahnrädern des Rohrhalters kommen. Je nachdem, in welche Richtung sich die Rohre drehen, kann ihre Trägheit dazu führen, dass sie ihre Stoppposition überschreiten. Dies kann auch durch Software korrigiert werden, indem die Vor- und Rückspül-Anti-Spiel-Variable modifiziert werden. Diese Werte werden zu den Farbwinkelwerten hinzugefügt oder von ihnen entfernt, je nachdem, in welche Richtung sich der Halter dreht, um dieses Spiel auszugleichen.

Farbmischung:

Wenn Sie eine Farbmischung feststellen, müssen Sie die Arrays color_limit_values ​​ändern. Jeder Wert in diesem Array repräsentiert die minimalen und maximalen Werte für Rot, Grün und Blau. Um eine bessere Vorstellung von den Werten zu haben, laden Sie die Maschine mit nur einer Farbe, schließen Sie die Maschine an Ihren Computer an und öffnen Sie den seriellen Monitor. Jedes Mal, wenn ein Skittle überprüft wird, sollten Sie seine gelesenen RGB-Werte und die Farbe erhalten, die das Programm davon hält. Dies sollte Ihnen eine bessere Vorstellung davon geben, welche Art von Werten mit jeder Farbe verbunden werden sollten.

EINIGE COOLE FUNKTIONEN.

(Nun, ich denke, sie sind es sowieso!)

Die RGB-LED:

An der Unterseite der Maschine ist eine RGB-LED angebracht. Während des Sortiervorgangs ändert es die Farbe, um der Farbe des fallengelassenen Skittles zu entsprechen. Es durchläuft kontinuierlich jede einzelne Skittle-Farbe, sobald das Reservoir leer ist.

Es leuchtet auch beim Start rot, wenn ein Problem mit dem Sensor erkannt wird.

Spielausgleich:

Der Röhrenhalter wird mit ein paar Stirnrädern gedreht. Aufgrund der Drucktoleranz ist es sehr schwierig, das Spiel in den Zahnrädern vollständig zu beseitigen. Dadurch neigt der Röhrenhalter dazu, seine Idealposition zu überschreiten. Der Code ermöglicht es, dies zu kompensieren, indem der Halter um einen bestimmten Betrag früher gestoppt wird, je nachdem, in welche Richtung sich der Halter dreht.

Verspätung mit Extra:

Der Code enthält eine "set_led(ms, color)"-Funktion. Es verhält sich genau wie die Funktion "delay (ms)", ermöglicht jedoch der LED, während der Verzögerung sanft zu ihrer neuen Farbe zu wechseln. Es ist ein Vergnügen, die Farben der LED zu ändern, während sich der Röhrenhalter in seine Position dreht!

ZUSÄTZLICHE HINWEISE.

Hinweis 1:Ich habe meine Maschine in Schwarz gedruckt, dies hat einen Einfluss darauf, welche Farbwerte der Sensor liest, insbesondere wenn keine Kegel vom Zuführmechanismus gesammelt werden.

Hinweis 2:Nach mehrmaligem Durchlaufen des Sortiervorgangs scheinen die Skittles-Farben schwerer lesbar zu sein. Ich vermute, dass dies daran liegt, dass sie nach mehrmaligem Reiben im Reservoir ihren Glanz verlieren oder wenn sie von Hand etwas klebriger werden (klingt eklig!). Versuchen Sie beim Kalibrieren der Farbwerte 'frische' Skittles zu verwenden.

Hinweis 3:Bitte stellen Sie sicher, dass Sie alle notwendigen Vorsichtsmaßnahmen beim Umgang mit Lebensmitteln treffen. Dazu gehört, dass Sie sicherstellen, dass Sie lebensmittelechtes Druckfilament verwenden.

Hinweis 4:Ich versuche, einige laufende Arbeiten und mein Vorhaben auf Instagram zu posten. Wenn es dein Ding ist, kannst du hier nachschauen:https://www.instagram.com/little_french_kev/


Code

  • LFK_sorting_machine
LFK_sorting_machineC/C++
Hier ist der Arduino-Code für die Sortiermaschine .
#include #include "Adafruit_TCS34725.h"#include/* Basierend auf Beispielcode für die Breakout-Bibliothek Adafruit TCS34725 */// =======================Variablen im Zusammenhang mit dem RGB-Sensor=========================Adafruit_TCS34725 tcs =Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_24MS, TCS34725_GAIN_1X); // RGB-Sensor einrichtenint color =0;//0-schwarz, 1-gelb, 2-grün, 3-orange, 4-rot, 5-violett previous_colour =color;int black_count =0; // Anzahl der leeren/unbekannten colorint start_measurment_angle =88; // Servoposition zum Ausrichten von Kegel vor sensorint measurment_sweep =2; //Anzahl der durchgeführten Maßnahmen. verwendet, um errorint measurment_angle_increment =4 zu mitteln; //Winkelinkrement zwischen Messungen//Grenzwerte[] ={min_red_values, max_red_values, min_green_values, max_green_values, min_blue_values, max_blue_values}uint16_t black_limit_values[] ={0, 200, 0, 200, 0, 200};uint16_t yellow_limit_values {850, 2200, 800, 2200, 400, 1100};uint16_t green_limit_values[] ={400, 800, 700, 1400, 300, 700};uint16_t orange_limit_values[] ={650, 1800, 300, 850, 210, 600 };uint16_t red_limit_values[] ={400, 950, 150, 450, 150, 400};uint16_t purple_limit_values[] ={150, 400, 150, 450, 150, 500};//=======================Variablen im Zusammenhang mit RGB-LED=========================Byte R_pin =5; Byte G_Pin =6;Byte B_Pin =11;int aktueller_roter_Wert =255;int aktueller_grüner_Wert =255;int aktueller_blauer_Wert =255;const int orange[] ={0, 230, 255};const int rot[] ={0, 255, 255};const int green[] ={255, 0, 255};const int yellow[] ={0, 170, 255};const int lila[] ={0, 255, 40};//=======================Variablen im Zusammenhang mit Feeder-Servos =========================int release_delay =220;const int color_angles[] ={10, 46, 82, 118, 154};//{10, 46, 82, 118, 154}; //int holder_offset =0; // Offset-Einstellung für Röhrenhalter . zwischen 0 und 36 gehalten werden const int rückwärts_anti_backlash =2;const int forward_anti_backlash =2;Servo feeder_servo; // Feeder-Servo deklarieren holder_servo; // Rohrhalter Servo erklären //===================================SETUP ========================================void setup (void) { Serial.begin (9600); pinMode (R_pin, AUSGANG); // LED-Pin einstellen PinMode (G_pin, OUTPUT); pinMode (B_pin, AUSGANG); analogWrite (R_pin, 255); // LED-AnalogWrite ausschalten (G_pin, 255); analogWrite (B_pin, 255); feeder_servo.attach(3); // Feeder-Servo an Pin 3 befestigen holder_servo.attach (2); // Halterservo an Pin 2 befestigen feeder_servo.write (0); holder_servo.write(color_angles[0]); int weiß[] ={0, 0, 0}; // lokale Weißwerte variabel int black[] ={255, 255, 255}; // lokale Schwarzwerte-Variable set_led (1000, weiß); // LED einschalten (weiß) if (tcs.begin ()) {// prüfen, ob Sensor Serial.println ( "Found sensor"); Startsequenz(); } else {Serial.println ("Kein TCS34725 gefunden ... überprüfen Sie Ihre Verbindungen"); Während (1) // schnelles rotes Blinken, wenn der Sensor nicht gefunden wurde { set_led (300, rot); set_led(300, schwarz); } }} //===================================SCHLEIFE ========================================void loop (void) { if (black_count <10) { feeder_servo.write (0 ); // Servoposition nach oben für Kegelsammelverzögerung einstellen (450); // Verzögerung, um dem Feeder-Servo genügend Zeit zu geben, um in Position zu kommen previous_colour =color; get_color(); // Kegelfarbe lesen if (Farbe ==0) { black_count ++; // Wenn keine Farbe gefunden wird, inkrementieren Sie den Blackcount-Shake (); // gibt dem Reservoir etwas mehr Shake, auch wenn kein Kegel vorhanden ist} else if (colour ==6) { black_count ++; // wenn die Farbe unbekannt ist, inkrementiere die Schwarzzahl - keine Kegelfreigabe} else { // wenn die Farbe gefunden wurde move_holder (); // Rohrhalter bewegen release_skittle (); // Kegel loslassen black_count =0; } } sonst { end_loop (1000); }}//===================================FARBE ERHALTEN ========================================void get_colour() { uint16_t r, g, b, c; //, colorTemp , Lux; uint16_t total_r =0; uint16_t total_g =0; uint16_t total_b =0; feeder_servo.write(start_measurment_angle); // Bewegung zum Start der Messwinkelverzögerung (200); Serial.println("----------------"); for (int i =0; i <=measurment_sweep; i++) //Schleife für jeden Takt { tcs.getRawData(&r, &g, &b, &c); // Farbdaten abrufen feeder_servo.write (start_measurment_angle + i * measurment_angle_increment); // Servowinkel für die nächste Messung erhöhen total_r +=r; // Rotwert zum Gesamtrotwert hinzufügen total_g +=g; // Grünwert zum Gesamtgrünwert hinzufügen total_b +=b; // Blauwert zur gesamten Blauwertverzögerung hinzufügen (15); } total_r /=measurment_sweep; //Durchschnittswerte über alle Messungen total_g /=measurment_sweep; total_b /=measurment_sweep; Serial.print (total_r); Serial.print ( " "); Serial.print (total_g); Serial.print ( " "); Serial.print (total_b); Serial.print ( " "); Serial.println(" "); // Werte vergleichen, um die Farbe zu bestimmen. if ((total_r =yellow_limit_values[0]) &&//check for yellow (total_r =yellow_limit_values[2]) &&(total_g  =yellow_limit_values[4]) &&(total_b =green_limit_values[0]) &&//Prüfe auf grün (total_r =green_limit_values[2]) &&(total_g  =green_limit_values[4]) &&(total_b =orange_limit_values[0]) &&//Prüfe auf orange (total_r =orange_limit_values[2]) &&(total_g  =orange_limit_values[4]) &&(total_b =red_limit_values[0]) &&//Prüfe auf Rot (total_r =red_limit_values[2]) &&(total_g  =red_limit_values[4]) &&(total_b =purple_limit_values[0]) &&//Prüfe auf lila (total_r =purple_limit_values[2]) &&(total_g  =purple_limit_values[4]) &&(total_b  

Schaltpläne

Die Verkabelung ist ziemlich einfach. Stellen Sie einfach sicher, dass Ihr Abwärtswandler 5 V ausgibt, bevor Sie etwas daran anschließen !!!!!

Herstellungsprozess

  1. EEG-Maschine
  2. Automaten
  3. Nähmaschine
  4. Fernsehen
  5. Spindellager &Lagerqualität
  6. Teile der Drehmaschine
  7. Drehmaschine verstehen
  8. Bestandteil der Fräsmaschine
  9. Maschine verstehen
  10. JW-Maschine