The Searching Robot - Elfie Boumans

by elfieboumans in Circuits > Arduino

126 Views, 0 Favorites, 0 Comments

The Searching Robot - Elfie Boumans

roboto.png
Red loving robot

Ik heb voor een schoolproject een karakteristiek robotje gemaakt dat kleuren herkent. Zodra dit robotje de kleur rood ziet gaat het enthousiast met een armpje zwaaien. Om het technisch te laten werken moet je een rood object dicht voor het oogje houden. De Arduino weet welke kleur het is door middel van een kleurensensor die ik achter het oogje heb geplaatst.

Het verhaal dat ik heb verzonnen voor dit karaktertje is dat het uit een wereld komt waar weinig kleur en leven vandaan komt. Deze kleine robot zoekt naar een mooi rood hart en het word helemaal enthousiast wanneer het de kleur rood ziet.

Supplies

Elektronische componenten:

Arduino Uno

USB Cable

Strip Board

Prototyping board / PCB (39x30 gaats / 10x7,5cm)

Jumper Wires Set

Micro Servo

Kleurensensor RGB - TCS34725 I2C


Materialen voor behuizing:

PVC ontluchting kap

PVC T-stuk

PVC bocht

Meubelknop hout

Acrylverf

Hammerite verf

Zwarte verf

Bruine verf

Ducttape


Gereedschap:

Soldeerbout met soldeertin

Kleine tang

Striptang

Schaar

Zandpapier

Vijl

IJzerzaag

Lijmpistool

Boormachine

Het Idee

Schets 1.jpg
Schets 2.png
Pardelli_Photography+(13+of+14).jpg

Ik ben begonnen met het brainstormen om tot een leuk idee te komen. Ik had al snel bedacht dat ik een figuur met een gemeen karaktertje wilde maken. Zo ben ik erop gekomen om een robot te maken die een object van een bepaalde kleur uit je hand kan slaan. Ik heb schetsen gemaakt over hoe het eruit zou kunnen zien. Na dit te hebben besproken met de docent en mede studenten van de opleiding ben ik erachter gekomen dat het design niet echt handig is en ik heb besloten dat ik toch niet door wilde gaan met mijn oorspronkelijk idee om de ogen ook van kleur te laten veranderen. Ik ben een schets gaan maken van wat ik nodig zal hebben en hoe dat in mijn nieuwe design van een robotje zou passen.

Testen

Test 1.png
Test 2.png
Test 3.png
Test 4.png

Voor het testen heb ik een tutorial gevonden over hoe je een LED laat branden en hoe je meteen een Arduino kan verbinden met een RGB kleurensensor. Ik kwam als snel problemen tegen omdat de code die erbij zat niet werkte en het programma de kleurensensor niet kon herkennen. Op het internet heb ik een nieuwe code opgezocht en die wilde ook niet werken. Het leek me vervolgens het beste om meer bij de basis blijven. Ik heb een tutorial gezocht over hoe je alleen een kleurensensor de kleuren laat lezen en hoe je apart een Micro Servo kan laten werken. Toen deze codes los van elkaar correct werkten heb ik die vervolgens met elkaar gecombineerd en die nieuwe code deed het meteen. Ik heb ook de waardes van een rode kleur afgelezen zodra ik een rood object ophield tegen de sensor en die vervolgens in de code verwerkt. Zodra de kleurenherkenning bijvoorbeeld een red(R) hoger leest dan een bepaalde waarde zal het motortje gaan bewegen.

De Code:

// imports the colorsensor library and the servo motor library
#include "Adafruit_TCS34725.h"
#include <Servo.h>

// create servo object to control a servo
Servo myservo;  

// variable to store the servo position
int pos = 0;    

// create colorsensor object
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_4X);

void setup() {
  Serial.begin(9600);
  // attaches the servo on pin 9 to the servo object
  myservo.attach(9);
  
  // Detect if a color sensor is attached to the arduino
  if (tcs.begin()) {
    Serial.println("Found sensor");
  } else {
    Serial.println("No TCS34725 found ... check your connections");
    while (1); // halt!
  }
}

// reads color view
void loop() {
  float red, green, blue;

  delay(60);  // takes 50ms to read

  tcs.getRGB(&red, &green, &blue);
  
  // turn off LED
  tcs.setInterrupt(true);  
  
  // prints RGB value color sensor
  Serial.print("R:\t"); Serial.print(int(red)); 
  Serial.print("\tG:\t"); Serial.print(int(green)); 
  Serial.print("\tB:\t"); Serial.println(int(blue));
  
  //turns on servo if R is above value and R under the value
  if(red > 130; green < 100){
   // goes from 40 degrees to 80 degrees smoothly
   for (pos = 40; pos <= 80; pos += 1) { 
      // in steps of 1 degree
      // tell servo to go to position in variable 'pos'
      myservo.write(pos); 
      // waits 9ms for the servo to reach the position             
      delay(9);                       
    }
    // goes from 60 degrees to 40 degrees
    for (pos = 60; pos >= 40; pos -= 1) { 
      // tell servo to go to position in variable 'pos'
      myservo.write(pos);
      // waits 15ms for the servo to reach the position              
      delay(9);                       
    }
  }


}

Bouwen

Bouwen 1.jpg
Bouwen 2.jpg
Bouwen 3.jpg
Bouwen 4.jpg

Toen ik in de Hornbach op onderzoek uitging naar spullen voor de behuizing raakte ik geïnspireerd door de PVC buizen. Ik heb 2 buizen bij elkaar gezocht. Als eerste wilde ik het bestaande gat in het midden gebruiken om het armpje in te laten bewegen maar uiteindelijk vond ik het toch handiger om de usb kabel daar aan de achterkant doorheen te laten gaan. Ik heb er twee gaten in gemaakt voor de arm en het oog. Vervolgens ben ik de onderdelen gaan vijlen en schuren zodat de verf beter ging plakken aan de behuizing. Ik ben erachter gekomen dat Hammerite verf goed werkt voor een 'roestige' look. Uiteindelijk heb ik alle kabeltjes los erin geplaatst om te kijken of alles goed past en werkt, zodat ik door kon gaan naar de volgende stap.

Solderen

Fritzing afbeelding.PNG

Voor het solderen heb ik een plek gereserveerd op school. Omdat dit mijn eerste keer solderen zou zijn heb ik om veel hulp gevraagd van de toezichthouder. Voordat ik begon heb ik de tip gekregen om een schema te maken van waar de kabeltjes precies moesten. Het solderen werd een stuk makkelijker omdat ik op een Stripboard gebruikte en daardoor hoefde ik de gangetjes niet nog eens zelf te maken. Ik ben begonnen met de Colour Sensor vast zetten. Voor de bedrading heb ik de plastic uiteindes afgestript met een striptang zodat ik de koperdraad kon vastzetten aan het Stripboard. Na het solderen heb ik mijn werk getest door het aan de stroom te zetten, en tot mijn geluk werkte alles meteen.

Samenstellen & Conclusie

inside roboto.png

In de laatste stap heb ik de inhoud in de behuizing vastgezet met ducttape en heb het aan de stroom gezet. Alles lijkt het te doen. Ter conclusie heb ik veel geleerd van dit project. Ik heb geleerd hoe ik goed moet solderen. Ik ben erachter gekomen hoe Arduino werkt en hoe ik het kan gebruiken. Ik heb geleerd hoe ik met kabels om kan gaan om vervolgens er mooie dingen mee te maken. Ik heb vele gereedschappen moeten gebruiken die ik nog nooit eerder heb durven aan te raken. Ik ben erachter gekomen dat ik het proces veel leuker vond dan ik eigenlijk dacht dat ik het zou gaan vinden. Ik heb eigenlijk wel zin om dit soort processen in de toekomst verder door te ontwikkelen, zoals in projecten waarin werkende objecten uit games in real life worden gemaakt. Ik vind het ook leuk om naast mijn innerlijke creatieveling mijn innerlijke technicus te vinden.