RoboticsBrno / RB3204-RBCX

🔬 RBCX is a universal controller for hobby robots. It is a successor of RB3201-RBControl. It is used in our robot Robotka on Robo camp 2020.
https://rbcx.robotikabrno.cz/
Creative Commons Attribution Share Alike 4.0 International
4 stars 0 forks source link

[CZ] Požadavky #1

Closed dzarda closed 4 years ago

dzarda commented 4 years ago

IMHO by bylo fajn si napsat, co od toho teda chceme, jaké nedostatky by to mělo zlepšit a do kdy by to mělo nějak fungovat.

dzarda commented 4 years ago

Fwd:

Problémy současného RBControlu:

  • dá se k němu připojit skoro cokoli, ale je to tak složité, že to nedá téměř nikdo - moc pinů různých typů
  • navržen na ruční osazování, které na táboře stále zabere strašně moc času Řeší se nová deska, která v zásadě nebude umět nic navíc (spíš naopak, zredukovali bychom počet motorů jen na čtyři), ale bude mít piny jednoúčelové a podle toho seskupené. To zásadně zjednoduší připojování čehokoli normálního a umožní podstatně jednodušší tvorbu návodů. Navíc bude deska nachystaná z větší části na steojové osazování v číně. Na rozmnožení pinů ESP se použije druhý mikroprocesor (STM32), čímž odpadne I2C expandér a shift registry (druhý procesor je myslím pro většinu lidí podstatně pochopitelnější, než černá magie se shift registry). Na táboře si měly děti postavit roboty na jednosuché soutěže, většinou dálkově řízené, ale s možností automatizace dílčích částí. Což znamená připojit sem tam nějaký senzor, či servo a tím se dostáváme k nepřehlednosti stávajícího RBC.
dzarda commented 4 years ago

No z hlediska použití v programu je snad úplně jedno, jestli mluvim s posuvným registrem nebo s dalším MCU. Posuvnej registr a I2C slave má ale nespornou výhodu, že nemá v sobě kód. Abstrakce pro přístup k pinům by přece měla tohle odstínit.

Mysleme prosím na stránku vývoje FW a važme ji spolu s nutností flashovat další IC v porovnání s cenou součástek na pár kusech desky.

Pokud tam nastávají zásadní realtime požadavky, značně se to pak mění...

Nicméně nejvíc nás asi pálí mechanická podstata desky a vyznatelnost v I/O. To si troufám tvrdit je největší bolest pinheadů, že člověku při zapojování/debugování vůbec nepomůžou s pinoutem. Naskýtá se vybrat pro některé periferie (motory?, senzory?) normální konektory (viz Lego a RJ-11) a normálně nalajnovat pinouty a basta.

cednik commented 4 years ago

Z hlediska softwaru jsou děti od shiftregistrů odstíněné, to problém není. Shiftregistry zabírají tři piny, I2C expandér další dva, to už je 5 versus 2 piny UARTu k procesoru. Hlavní problém jsou ale enkodéry, kde na každý potřebuješ dva piny (× 8 motorů = 16 pinů), které musíš číst rychle, tudíž je k žádnému jednoduchému expandéru nepřipojíš. Procesor si přitom enkodéry zvládne zpracovat a řídit podle nich motory. Vyřeší nám kalibraci měření napětí na baterce, protože kalibrační hodnoty budou uloženy přímo v něm a tudíž pevně vázané na desku (devkit s ESP vyměníš a už měříš špatně). Navíc bude baterka hlídaná, i když budu držet ESP z počítače v resetu. Expandér pro tlačítka a ledky - bez debaty. Expandér pro modelářská serva - další věc, snadno ovladatelná po sběrnici, kterou uvolním piny na ESP. Expandér pro ultrazvukové dálkoměry: tady je finta s 5V, které ultrazvuky pro napájení potřebují a STM má piny 5V tolerant, takže mi odpadávají napěťové děliče.

Ad konektory: K RBC(X) se dají připojit (elektricky) LEGO motory. Jarek nakreslil desku adaptéru s RJ11. Ale došli jsme k závěru, že jako hlavní konektor to nechceme, protože to znamená krimpovat dětem kabely a značně to tvůj systém uzavírá - RJ11 bez těch správných kleští nenakrimpuješ a kromě RBC ty kleště na nic jiného nevyužiješ. Naopak pinheady jsou na všech čínských deskách, koupíš hotové kabely (kvalitu neřešmě) a obyčejnými malými kleštěmi si můžeš nakrimpovat vlastní (kvalitní). Když bude na desce konektor (pinheady) pro I2C (například) jednoznačně popsaný 3V3, GND, SDA, SCL, troufám si tvrdit, že je to dostatečně vyznatelné a pomáhající s pinoutem.

dzarda commented 4 years ago

@yaqwsx zmiňoval, že by mohly být 2 desky spojené B2B konektorem, což by mělo pomoct s evolucí. Core deska by dávala k dispozici hromadu IO a dceřiná může použít jen subset.

JarekParal commented 4 years ago

@dzarda B2B konektorem se myslí něco ve stylu PCI konektoru nebo konektory, které se používají na RAMky v noteboocích?

dzarda commented 4 years ago

Např. https://www.molex.com/molex/products/group/board_to_board_connectors

cednik commented 4 years ago

Dost dobře si nedovedu představit, co by na jednotlivých deskách mělo být. Mohli byste ten nápad prosím trochu rozvést a uvést příklady, @yaqwsx, @dzarda? Dík

yaqwsx commented 4 years ago

Mám základní desku, kde je vše a místo ultimátního pinheadiště je na desce "ultimátní B2B konektor". K ní mám potom druhou desku, která obsahuje pouze konektory/LEDky/Tlačítka. Na základní desku potom můžu nacvaknout buď:

JarekParal commented 4 years ago

Takže by to znamenalo, že na základní desce bude:

A přídavných deskách by pak například byli:

Chápu to správně?

cednik commented 4 years ago

Tak tenhle koncept se mi fakt nelíbí. Znamená to další konektory, další desku, mechanické komplikace a vsaďte se, že na každé "konektorové" desce bude vždycky něco chybět.

JarekParal commented 4 years ago

Uzavírám, jelikož vše již bylo podle mě vyřešeno. Pokud ne, otevřete znovu.