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.
Blokschema
Onderdelen
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 |
Software
2 microcontrollers (master en slave) werken samen.
Automatisch opladen
Lijnvolgen met 8 analoge lijnsensoren
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; } }
Het nemen van scherpe bochten
Communicatie tussen master en slave
Firmware
State diagram
Video's
21-09-2022
- Lijnvolg regeling nog niet optimaal afgesteld
- Scherpe bochten worden niet betrouwbaar genomen
- 1:00 De robot detecteert het oplaadpunt en stopt
27-09-2022
- Scherpe bochten worden zeer betroubaar genomen
- De robot maakt herhalend scherpe bochten gedurende 4 minuten zonder fouten
Backlinks: