Хотели бы вы рисовать одним фломастером различными цветами, а не покупать для этого целую упаковку разных фломастеров? Это можно сделать, если реализовать смеситель цветов с датчиков цвета. И всем этим может управлять Arduino.

Для начала сделайте насосы для чернил, используя 3 обрезанных шприца, гвозди с плоской головкой и швейную нить, как показано на следующем изображении.

Основные цвета (красный, синий, зеленый) будем подавать с помощью трех серводвигателей. Их конфигурация на следующем изображении. Здесь привяжите нити насосов к сервоприводам.

Схема подключения компонентов показана далее. Здесь в качестве датчика цвета мы используем TCS34725.

Самодельный фломастер может выглядеть следующим образом.

Код программы для Arduino представлен далее.
#include <Adafruit_TCS34725.h>
#include <Servo.h>
Servo mA;
Servo mB;
Servo mC;
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);
void setup() {
Serial.begin(9600);
mA.attach(3); //CYAN
mB.attach(5); //YELLOW
mC.attach(6); //MAGENTA
tcs.begin();
}
void loop() {
delay(3000);
float red, green, blue;
tcs.getRGB(&red, &green, &blue);
Serial.print("R: "); Serial.print(int(red));
Serial.print(" G: "); Serial.print(int(green));
Serial.print(" B: "); Serial.print(int(blue));
Serial.println();
float R = int(red);
float G = int(green);
float B = int(blue);
float cyan = 10 - R/25.5;
float magenta = 10 - G/25.5;
float yellow = 10 - B/25.5;
Serial.print("Cyan: ");\
Serial.print(cyan);
Serial.print(" Yellow: ");
Serial.print(yellow);
Serial.print(" Magenta: ");
Serial.print(magenta);
while(cyan>0){
mA.write(0);
delay(1000);
mA.write(90);
delay(1000);
cyan = cyan - 1;
}
while(yellow>0){
mB.write(180);
delay(1000);
mB.write(60);
delay(1000);
yellow = yellow - 1;
}
while(magenta>0){
mC.write(0);
delay(1000);
mC.write(90);
delay(1000);
magenta = magenta - 1;
}
delay(100000);
}
© digitrode.ru