RCJ 2026 - Mushrooms: Rozdiel medzi revíziami
Zo stránky Galéria Robotov
| (28 medziľahlých úprav od rovnakého používateľa nie je zobrazených.) | |||
| Riadok 10: | Riadok 10: | ||
=== Predchádzajúca história modelu === | === Predchádzajúca história modelu === | ||
Generácia robota je rovnaká akú sme využívali | Generácia robota je rovnaká akú sme využívali, len s par zmenami. | ||
Hlavne zmeny sú: | |||
* Vyčistený kód | |||
* Úplne nové 3D modely tela a vrchu | |||
== Konštrukcia a hardvér == | |||
Robot je okolo 12.5cm vysoký a | Robot sa skladá z 3D vytlačeného tela a dvoch DPS. Na dolnej DPS sú osadené motory so štyrmi omniwheelami, hlavný mikrokontroler a line senzory. Na hornej DPS sú osadené IR senzory a ESP-32. Najvyššie sú osadené mmWave radary. | ||
Robot je okolo 12.5cm vysoký a 22cm široký. | |||
=== Zoznam súčiastok === | |||
H- | *[https://www.tme.eu/sk/details/mc33886pvw/drivery-motorove-a-pwm/nxp/ H-mostík MC33886 4x] | ||
Motor POLOLU 25D 4x | *[https://www.pololu.com/product/3205 Motor POLOLU 25D 4x] | ||
DC-DC menič LM2596 1x | *[https://techfun.sk/produkt/lm2596-step-down-menic-dc-dc/ DC-DC menič LM2596 1x] | ||
LED červená 32x | *[https://www.tme.eu/sk/details/osr5cas3c1a/diody-led-smd-farebne/optosupply/ LED červená 32x] | ||
Logic shifter TXS0108BE 1x | *[https://techfun.sk/produkt/logicky-konverter-8-kanalov-txs0108e/ Logic shifter TXS0108BE 1x] | ||
Lineárny regulátor LM7895 1x | *[https://www.tme.eu/sk/details/l7805cv/stabilizatory-napatia-neregulovane/stmicroelectronics/ Lineárny regulátor LM7895 1x] | ||
Lineárny regulátor AMS1117 2x | *[https://www.tme.eu/sk/details/ld1117s33tr/stabilizatory-napatia-neregulovane-ldo/stmicroelectronics/ Lineárny regulátor AMS1117 2x] | ||
Multiplexor CD74HC 3x | *[https://www.tme.eu/sk/details/cd4067bpwr/multiplexory-a-analogove-prepinace/texas-instruments/ Multiplexor CD74HC 3x] | ||
Fototranzistor KDT00030 24x | *[https://www.tme.eu/sk/details/kdt00030tr/fototranzistory/onsemi/ Fototranzistor KDT00030 24x] | ||
IR senzor | *[https://www.tme.eu/sk/details/tsop34830/ir-prijimacie-moduly/vishay/ IR senzor TSOP 4830 11x] | ||
IR senzor | *[https://www.tme.eu/sk/details/tsop4838/ir-prijimacie-moduly/vishay/ IR senzor TSOP 4038 24x] | ||
Mikrokontroler Teensy 4. | *[https://www.sparkfun.com/teensy-4-1-with-copy-protection.html Mikrokontroler Teensy 4.1 1x] | ||
Mikrokontroler ESP-32 1x | *[https://techfun.sk/produkt/esp32-wroom-32d-vyvojova-doska-wifi-a-bluetooth/ Mikrokontroler ESP-32 1x] | ||
Gyroskop BNO055 1x | *[https://eu.mouser.com/ProductDetail/Adafruit/2472?qs=N%2F3wi2MvZWDmk8dteqdybw%3D%3D Gyroskop BNO055 1x] | ||
I²C switch TCA9548A 1x | *[https://www.tme.eu/sk/details/tca9548apwr/dekodery-multiplexory-spinace/texas-instruments/ I²C switch TCA9548A 1x] | ||
I/O expander MCP23017 2x | *[https://www.tme.eu/sk/details/mcp23017-e_so/integrovane-obvody-interface-ostatne/microchip-technology/ I/O expander MCP23017 2x] | ||
*[https://eu.mouser.com/ProductDetail/Acconeer/XM125?qs=amGC7iS6iy8ql%2Fsw4HBAJQ%3D%3D mmWave radar XM125 6x] | |||
=== 3D modely, výkresy, náčrty konštrukcie a dielov === | |||
[[Image:Mushrooms_Model.png|400px]] | |||
*[[Media:Model_Robota_Mushrooms.zip]] | |||
=== Schémy, návrhy plošných spojov, elektronika === | |||
[[Image:Mushrooms_schema.png|400px]] | |||
[[ | * Schéma dolnej DPS [[Súbor:Dolna DPS schema.pdf|náhľad|alt=Schéma zapojenia dolnej DPS|Schéma zapojenia dolnej DPS]] | ||
* Schéma hornej DPS [[Súbor:Horna-DPS shcema.pdf|náhľad|alt=Shéma zapojenia hornej DPS|Shéma zapojenia hornej DPS]] | |||
==== Popis zapojenia elektroniky ==== | |||
Robot je zapojený na 11.1V v 3S zapojení 3.7V Li-Ion bateriek, potom napätie je znížené pre dané senzory. | Robot je zapojený na 11.1V v 3S zapojení 3.7V Li-Ion bateriek, potom napätie je znížené pre dané senzory. | ||
Teensy 4.1, je náš hlavný procesor ktorý komunikuje spolu s ESP32 využitím I2C. Spolu tieto procesory zisťujú: | Teensy 4.1, je náš hlavný procesor ktorý komunikuje spolu s ESP32 využitím I2C. Spolu tieto procesory zisťujú: | ||
pozíciu lopty: 35 IR senzorov (11 na dolnej doske, 24 na hornej), | * pozíciu lopty: 35 IR senzorov (11 na dolnej doske, 24 na hornej), | ||
Detekcia čiary: 24 fototranzistorov, | * Detekcia čiary: 24 fototranzistorov, | ||
Zistenie pozicie: 6 mmWave senzorov a gyroskop BNO055. | * Zistenie pozicie: 6 mmWave senzorov a gyroskop BNO055. | ||
Tieto senzory sú spracované cez viacero multiplexorov. | * Tieto senzory sú spracované cez viacero multiplexorov. | ||
DC motory sú riadené cez H-Bridge obvody použitím PWM signálov a su priamo napojené na 11.1V | * DC motory sú riadené cez H-Bridge obvody použitím PWM signálov a su priamo napojené na 11.1V | ||
=== Softvér === | === Softvér === | ||
Programovanie: Arduino IDE; | * Programovanie: Arduino IDE; | ||
3D modelovanie: Autodesk Inventor, Autodesk Fusion; | * 3D modelovanie: Autodesk Inventor, Autodesk Fusion; | ||
Vývoj dosiek: Eagle, Kicad | * Vývoj dosiek: Eagle, Kicad | ||
* Kusok Kodu: | |||
=== | void fillZerosBetweenOnes(int arr[], int size, int maxGap, int &total) { | ||
int temp[size]; | |||
memcpy(temp, arr, size*sizeof(int)); | |||
for(int i=0; i<size; i++){ | |||
if(temp[i]!=1) continue; | |||
for(int gap=1; gap<=maxGap; gap++){ | |||
int end=(i+gap+1)%size; | |||
bool allZero=true; | |||
for(int k=1; k<=gap; k++){ | |||
if(temp[(i+k)%size]!=0){ allZero=false; break; } | |||
} | |||
if(allZero&&temp[end]==1){ | |||
for(int k=1; k<=gap; k++){ | |||
int idx=(i+k)%size; | |||
if(arr[idx]==0){ arr[idx]=1; total++; } | |||
} | |||
} | |||
} | |||
} | |||
} | |||
=== Fotodokumentácia === | |||
[[Image:Mushrooms_Bots_Together_AW.jpg|400px]] | |||
[[Image:Mushrooms_Bots_Together_Glowing_WOAH.jpg|400px]] | |||
[[Image:Mushrooms_TopPCB_Bottom.jpg|400px]] | |||
[[Image:Mushrooms_BottomPCB_Top.jpg|400px]] | |||
[[Image:Mushrooms_BottomPCB_Bottom.jpg|400px]] | |||
[[Image:Mushrooms_WHAT_THE_HELLLL.jpg|400px]] | |||
[[Image:Mushrooms_HUUUUUUH.jpg|400px]] | |||
__notoc__ | __notoc__ | ||
Aktuálna revízia z 20:46, 20. apríl 2026
Mushrooms
Škola/klub: Stredná priemyselná škola elektrotechnická Prešov
Kontakt: oli.kosiba@gmail.com
Kategória: soccer lightweight / infrared
Predchádzajúca história modelu
Generácia robota je rovnaká akú sme využívali, len s par zmenami. Hlavne zmeny sú:
- Vyčistený kód
- Úplne nové 3D modely tela a vrchu
Konštrukcia a hardvér
Robot sa skladá z 3D vytlačeného tela a dvoch DPS. Na dolnej DPS sú osadené motory so štyrmi omniwheelami, hlavný mikrokontroler a line senzory. Na hornej DPS sú osadené IR senzory a ESP-32. Najvyššie sú osadené mmWave radary. Robot je okolo 12.5cm vysoký a 22cm široký.
Zoznam súčiastok
- H-mostík MC33886 4x
- Motor POLOLU 25D 4x
- DC-DC menič LM2596 1x
- LED červená 32x
- Logic shifter TXS0108BE 1x
- Lineárny regulátor LM7895 1x
- Lineárny regulátor AMS1117 2x
- Multiplexor CD74HC 3x
- Fototranzistor KDT00030 24x
- IR senzor TSOP 4830 11x
- IR senzor TSOP 4038 24x
- Mikrokontroler Teensy 4.1 1x
- Mikrokontroler ESP-32 1x
- Gyroskop BNO055 1x
- I²C switch TCA9548A 1x
- I/O expander MCP23017 2x
- mmWave radar XM125 6x
3D modely, výkresy, náčrty konštrukcie a dielov
Schémy, návrhy plošných spojov, elektronika
- Schéma dolnej DPS Súbor:Dolna DPS schema.pdf
- Schéma hornej DPS Súbor:Horna-DPS shcema.pdf
Popis zapojenia elektroniky
Robot je zapojený na 11.1V v 3S zapojení 3.7V Li-Ion bateriek, potom napätie je znížené pre dané senzory. Teensy 4.1, je náš hlavný procesor ktorý komunikuje spolu s ESP32 využitím I2C. Spolu tieto procesory zisťujú:
- pozíciu lopty: 35 IR senzorov (11 na dolnej doske, 24 na hornej),
- Detekcia čiary: 24 fototranzistorov,
- Zistenie pozicie: 6 mmWave senzorov a gyroskop BNO055.
- Tieto senzory sú spracované cez viacero multiplexorov.
- DC motory sú riadené cez H-Bridge obvody použitím PWM signálov a su priamo napojené na 11.1V
Softvér
- Programovanie: Arduino IDE;
- 3D modelovanie: Autodesk Inventor, Autodesk Fusion;
- Vývoj dosiek: Eagle, Kicad
- Kusok Kodu:
void fillZerosBetweenOnes(int arr[], int size, int maxGap, int &total) {
int temp[size];
memcpy(temp, arr, size*sizeof(int));
for(int i=0; i<size; i++){
if(temp[i]!=1) continue;
for(int gap=1; gap<=maxGap; gap++){
int end=(i+gap+1)%size;
bool allZero=true;
for(int k=1; k<=gap; k++){
if(temp[(i+k)%size]!=0){ allZero=false; break; }
}
if(allZero&&temp[end]==1){
for(int k=1; k<=gap; k++){
int idx=(i+k)%size;
if(arr[idx]==0){ arr[idx]=1; total++; }
}
}
}
}
}
Fotodokumentácia