Lijnvolgrobot met supercondensatoren

Ron wilde een lijnvolgrobot maken met een Arduino en kwam op het idee om deze te voeden met supercondensatoren. Deze supercondensatoren hebben een zeer hoge capaciteit en werken op een lage spanning (100 farad, 3V). De capaciteit van deze supercondensatoren is vele malen lager dan een accu. Dit betekent dat deze lijnvolger niet lang kan rijden op één lading en snel weer op zal moeten laden.
Naast de supercondensatoren wilde ik graag meerdere lijnsensoren gebruiken die het liefst analoog gelezen worden.

projects:lijnvolgrobot_supercap_schema.png

Onderdeel Type Link
Microcontroller 1 Arduino Pro Micro
Microcontroller 2 Arduino Pro Micro
Lijnsensor 8x IR Line Tracking Module TinyTronics
Supercondensatoren 3V 50F VINATECH WEC3R0 506QG Reichelt
Motoren + encoder + wiel DC 6V Encoder Motor Gear N20 Aliexpress
LED strip COB Pixel LED Strip 5V 332LEDs/M Aliexpress
Motor driver DRV8833 TinyTronics
Gelijkrichter DB107 - 1A 1000V TinyTronics
DC-DC oplader
DC-DC boost 5V
Afstandssensor VL6180 Time-of-Flight TinyTronics
Knoppen
Plaatmateriaal Vederplex 4mm Bauhaus
Potentiometer 10kΩ Cermet Potentiometer - Type 3386P TinyTronics

2 microcontrollers (master en slave) werken samen.

Zie hieronder het stukje code waarmee de positie van de lijn wordt berekend. Hierbij worden 8 analoge waarden van 0 tot 255 ingeladen, en daarmee wordt de gemiddelde lijnpositie berekend.

Bron:http://theultimatelinefollower.blogspot.com/2015/12/interpolation.html?m=1

int calcLinePos(){
  //Source: http://theultimatelinefollower.blogspot.com/2015/12/interpolation.html?m=1
 
  byte values[8];
  for(byte i=0;i<8;i++){
    values[i]=sensorValues[i];
  }
 
  int num = 
  -27*(values[0]-values[7])*2+
  -19*(values[1]-values[6])*2+
  -11*(values[2]-values[4])*2+
   -4*(values[3]-values[3])*2;
 
  int denom = (values[0]+values[1]+values[2]+values[3]+values[4]+values[5]+values[6]+values[7])/2;
 
  if(denom==0){
    return 0;
  }else{
    return num/denom;
  }
}

projects:lijnvolgrobot_supercap_state_diagram.png

  • Lijnvolg regeling nog niet optimaal afgesteld
  • Scherpe bochten worden niet betrouwbaar genomen
  • 1:00 De robot detecteert het oplaadpunt en stopt
  • Scherpe bochten worden zeer betroubaar genomen
  • De robot maakt herhalend scherpe bochten gedurende 4 minuten zonder fouten





  • projects/lijnvolgrobot_supercap.txt
  • Last modified: 10/10/2024 10:20
  • by ron