CraftDuino v2.0
  • - это CraftDuino - наш вариант полностью Arduino-совместимой платы.
  • CraftDuino - настоящий конструктор, для очень быстрого прототипирования и реализации идей.
  • Любая возможность автоматизировать что-то с лёгкостью реализуется с CraftDuino!
Просто добавьте CraftDuino!

Однопиксельный сканер на Arduino


Пример простого однопиксельного сканера на контроллере Arduino.
В качестве RGB-сенсора используется TCS34725, показания которого в текстовом виде передаются в последовательный порт.

Код сканера

#include <Wire.h>
#include "Adafruit_TCS34725.h"
 
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_154MS, TCS34725_GAIN_4X);
 
int imageSize = 128;
int stepSize = 4096 / imageSize;
 
void setup(void) {
  Serial.begin(9600);
  analogWriteResolution(12);
   
  delay(500);      
       
  if (tcs.begin()) {   
    Serial.println("Start>>");
    runScan();
  } else {
    Serial.println("TCS34725 not detected");
  }
}
 
void runScan()
{
  uint16_t r,g,b,c;
   
  int x,y;
   
  for (x=0; x< 4096; x+=stepSize) {
    analogWrite(DAC0,x);
    delay(500);
    for (y=0; y< 4096; y+=stepSize) {
      analogWrite(DAC1,y);
      delay(10);
      tcs.getRawData(&r, &g, &b, &c);
      Serial.print(r);Serial.print(", ");
      Serial.print(g);Serial.print(", ");
      Serial.print(b);Serial.print(", ");      
    }
    Serial.println();
  }
}
 
void loop(void) {
}


Для превращения полученных значений в картинку — они сохраняются в txt-файл, который затем обрабатывается простым Matlab-овским скриптом:

ftoread = 'img.txt';
fid = fopen(ftoread);
M = textscan(fid, '%f', 'Delimiter',','); 
fclose(fid);
 
rawImg = M{1};
 
r1 = (rawImg - min(rawImg))./max(rawImg)*3;
 
R=r1(1:3:length(r1));
G=r1(2:3:length(r1));
B=r1(3:3:length(r1));
r=reshape(R, [128, 128]);
g=reshape(G, [128, 128]);
b=reshape(B, [128, 128]);
 
rgbImg=cat(3, r, g, b);
imshow(rgbImg);


Ссылки
Building a Single Pixel Scanner

По теме
Самодельный датчик цвета
Датчик цвета из RGB-светодиода и фотоэлемента — реальная фотошоповская пипетка
Лазерный сканирующий микроскоп на Arduino
Gado — робот-сканер на Arduino
Сортировщик конфет M&Ms по цвету при помощи Arduino
ЧПУ для сада Дзэн на Arduino
Сортировщик огурцов на Arduino, Raspberry Pi 3 и TensorFlow
Простой ЧПУ под управлением Arduino

Arduino
Arduino, термины, начало работы
КМБ для начинающих ардуинщиков
Состав стартера (точка входа для начинающих ардуинщиков)
  • 0
  • 13 июля 2017, 09:20
  • admin

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.