Zdravim,
programuju si jeden ulehcovaci programek pro praci - emulator modemu. Takovy SW mezikus mezi jeden HW a Scadu.
Pouzivam lazarus a sdpo (zname tez jako 5dpo). Oboji je posledni verze, co jsem nasel. Potom mam com0com verze 1.8 (novejsi mi nefunguje, je tam neco zmeneno a scada se tvari jako ze ten port je nezapisovatelny).
Kdyz komunikuju s HW pomoci USB prevodniku na 232 tak je vse v poradku. Pokud komunikuju se Scadou pomoci 2 USB prevodniku, tak je taky vse v poradku.(scada jednim usb vysila, muj program druhym usb prijima, tyto usb prevodniky jsou klasicky spojeny krizenym kablem)
Pokud vsak spojim scadu s mym programem pomoci com0com portu, tak napriklad ze zpravy ATDT123456789 mi do programu dojde pouze ADT2468. Zkousel jsem i jine komponenty, ale v podstate vsechny vychazeji z jedne zakladni (tusim ze tcomport). A vsechny delaji totez.
V eventech OnRx...... mam napsano pouze vypsani znaku do mema.
Nevi nekdo nejakou fintu jak zachytit vsechny znaky?
Program cely je pouze otevreni portu na 9600/8/N/1 (jina rychlost neni mozna) - toto je v form.create
A pote jenom OnRxChar - tam je memo1.lines.add(sdpo1.readdata[1])
Hezky den
Příspěvky odeslané z IP adresy 81.30.248.–
Zdarec vsem,
mam pro Vas malou radu ohledne ATTiny26 (L). Pokud pouzivate timery a preruseni na udalost compare, jste asi zvykli psat napr. TIMERx_COMPA_vect. Pokud nestudujete dukladne popis zprav z kompileru v AVR Studiu (v mem pripade 4.19) tak zjistite ze kompiler sice program zkompiluje bez chyb (pripadne jsou pouze warningy, kde je i zmineno ze ISR se odkazuje kdovikam) ale program v avr nejede. Je to tim ze v Toolchainu je chybka (nebo zamerne) v definici preruseni pro timery. Misto COMPA je tam jenom CMPA. Stejne je tomu pro COMPB (CMPB). Staci vsak dopsat pismeno O do slova CMPA/CMPB a vse je jak ma byt dle "zaziteho standardu" pro ostatni avr. Snad to nekomu pomuze k vyreseni problemu proc to nefunguje
#3 liborb
Děkuji mooc.
Kdyby člověk věděl jak se tomu řika tak by stačil kamoš google.
http://www.greatis.com/…ridhint.html
A i source pro lamy jako ja
Ještě jeden dotaz.
StringGrid ma automaticke autoposunutí.
Při kliknuti na uplně pravou bunku v tabulce se bunky automaticky posunou v vpravo.
Jak to vypnout.
Pry jde odchytávat zprávu a zrušit její následky.
Zdravim.
Delphi jsem poprve spustil před 4 dny takže uplna lama.
Potřebuji uděůat seznam AP a vybral jsem si na to StringGrid
Par info našel google.
To co se snažim udělat jsem už zkoušel v Excelu a i v HTML.
Stravíl jsem u toho dost času a spalil jsem se.
Vždy něco nebylo možno udělat.
Proto bych měl par dotazu než se do toho pustim abych se zas nespalil.
Pujde udělat, aby se po kliknuti na bunku spustil nějaky EXE program.
Pujde udělat, aby se po kliknuti na bunku spustil prohližeč s určitou zadanou www strankou.
Pujde seznam uložit do ini souboru
To Hanisss :
to je ale problem vstupniho signalu. Da se to filtrovat budto SW tim ze poberes treba 10 hodnot a zprumerujes, zas tak pomale to neni a asi nepotrebujes extra rychlost vzhledem k prodleve na RC filtru na PWM vystupu, nebo HW, treba kondikem vhodne kapacity
jinak male upozorneni na co jsem pri hrani s ADC prisel ja. Jestli pouzivas vice vstupu, tak po prepnuti na jiny vstup je potreba chvilku pockat a pak teprve spustit mereni. Jinak to dela bordel a ukazuje nesmysly. Viz http://programujte.com/?akce=diskuze&kam=vlakno&tema=16631-m8-a-2-kanaly-z-adc-ovlivnujou-se
projdi si datasheet k procesoru, kolem citacu
je tam jeden registr TIMSK - tam si zvolis ktere preruseni chces pouzivat
tedy ve tvem pripade to bude TIMSK|=(1<<OCIE0)|(1<<TOIE0)
v hlavnim programu pak musis povolit globalne preruseni prikazem sei()
musis pouzit knihovnu # include <avr/interrupt.h>
a samotnou obsluhu preruseni udelas pres
ISR (TIMER0_COMP_vect) pro udalost kdy TCNT0 je rovno OCR0
ISR(TIMER0_OVF_vect) pro udalost preteceni TCNT0
ja bych se zucastnil par poznamkama
1) ADC7 NENI vystup ale vstup. Jestli to chces brat jako vystup tak pouze jako PA7, port A bit 7. Tedy ma-li to byt "tvrdy" vystup musis nastavit 7. bit v DDRA na 1
2) frekvence zmen ti bude udavat "cistotu" vystupniho signalu za RC filtrem. Da se rict ze bude platit, cim vyssi frekvence, tim cistejsi ( = hladsi) signal na vystupu
3) chovani OCx podle bitu znamena toto. Mas naprogramovany citac, ktery ti na zaklade hodnoty v TCNTx nahazuje/shazuje OCx. Tedy dle datasheetu 0,0 = nic s vystupem OCx nedela, 0,1 = hodi pulz (doufam, ze se nepletu) na OCx, 1,0 = shodi OCx, 1,1 = nahodi OCx. Jenze tohle te nezajima, protoze ty budes pracovat s PA7, takze nechas nastaveni 0,0.
4) ty potrebujes generovat PWM v SW, tedy asi nejlip nastavit citac na CTC rezim, povolit preruseni od COMPARE a od OVERFLOW. Pri udalosti COMPARE treba nahodis PA7, pri udalosti OVERFLOW shodis PA7, nebo naopak
JoDiK napsal:
To Hlašky v CMD :
Pokud ten příkaz funguje jak má, mělo by pomoct přesměrování do zařízení nulPříkaz parametry > nul
Tak tototo jsem moc nepochopil.
Děla mi to třeba u tohoto.
@Echo Off
set cesta="HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
reg add %cesta% /v ProxyOverride /d "<local>" /f
pause
Myslim ze je vhodne si zadat do vyhledavace magicke slovo HTPC a uvidis sam.
Je spousta SW, placeneho i neplaceneho, windows i linux. Nektere umi jenom prehravat media, jine umi zivou televizi (kabelovku, satelit, terestrial).
Umi to samozrejme i nahravani poradu (hlavne musi byt pc pod elektrikou, zapne se samo), timeshift, streaming a spoustu dalsiho.
Ovladani muzes provadet budto klavesnici a mysi, nebo specialni malinkou klavesnici s touchpadem, klasickym dalkovym ovladacem z nejakeho zarizeni, dalkovym ovladacem urcenym primo pro htpc, uz jsem videl nekde i ukazku ovladanim pomoci kamery, jinak je snad ke kazde tv/sat karte dalkove, ktere lze pouzit taky ( i sw pro prehravani).
Moznosti je spousta.
Asi nejvetsi vyhodou (pro me) je ze nemusis porizovat novou tv s tim smesnym fullhd rozlisenim, htpc dokaze realtime predelat onen film/tv do libovolneho rozliseni, ktere jde zobrazit na tv s klasickym rozlisenim.
Ze SW bych asi ukazal Media portal (windows), XBMC (linux, windows), MythTV (linux), MCE (soucasti windows 7/vista, doplnek do xp)
Mediaportal verze 1.x je resenim server-klient. Da se oboji provozovat na 1 pc, ovsem jejich spojeni se stupidni SQL databazi je nechutne pomale, neumi USALS pro sat. A maji tam par veci, kterymi se marne snazi aktivne branit proti nelegalnimu prijmu napriklad satelitnich tv. Umi udelat jeden server a vice klientu, takze na server si das silnejsi masinu a klienti staci treba mini itx s atomem, via apod.
Mediaportal verze 2.x je pouze media prehravac (pokud se nic nezmenilo), neumi zivou televizi
XBMC je podobne jako mediaportal 2.x pouze prehravac medii
MythTV reseni server-klient, podobne jako u mediaportalu 1.x je mozno mit 1 server a vice klientu, asi jako jediny prehravac zive televize a medii ma USALS pro satelit (progdvb a podobne neumi media). Proti pouzivani je typicka vlastnost linuxu - chybejici ovladace karet, je nutno vybirat hardware podle seznamu. Ale i to neni zaruceno ze pojede (vlastni zkusenost)
MCE je na tom podobne jako mediaportal 1.x, taky neumi USALS.
Staci zagooglit na to co jsem napsal do nazvu tematu a v prispevku "VUSB"
a vypadne tohle http://www.obdev.at/products/vusb/index.html
Ja konkretne upravoval projekt HIDkeys (k nalezeni na tech strankach).
Zapojeni funguje i bez zenerek na datovych vodicich mezi usb a mcu. Mcu muze byt napajeno 5V. Jeste je potreba dat nejaky odpor (cca od 1k2 do nevim kolik, aktualne mam trimr a nastaveno 2k2) mezi 5V (muze byt i z USB, ale lepsi je z napajeni AVR) a D-. Tedy budto mezi prvnim a druhym pinem USB konektoru (5V a D- jsou vedle sebe) nebo lepe mezi Vcc a INT0 vstupem AVR.
Lepsi je to z toho duvodu, ze PC detekuje pritomnost zarizeni prave pritomnosti pullup odporu na pinu D-. Takze po odpojeni napajeni AVR bude pc hlasit, ze zarizeni nebylo rozpoznano.
Proc mi ale nefunguje AVR pri napajeni z USB to netusim. Ale uz po tom nepatram, napajene to bude ze zdroje;
Jo nepouzivat pro to avr ktere nejsou stavene na minimalni frekvenci 12MHz, tam to opravdu nepojede. Zkousel jsem i premluvit interni RC clanek, tak jako to je na malych ATTiny (treba znamy capslocker) a taky se nedarilo.
Pri prvni kompilaci budou problemy, bude to hlasit spoustu chyb. Ale staci si otevrit okno GCC a do projektu pridat vsechny soubory tykajici se toho usb, tedy do head files dat vsechny soubory s priponou h (iarcompat.h, usbdrv.h), do source files soubory s priponou c a s (usbdrv.c, usbasm.s) a do other files soubor usbasm.asm
Pak to projde, je mozno vymazat usbdebug a vse co je s nim spojeno ve zdrojacich, je toho asi 5 zaznamu
Caute lidi,
zkousel jste nekdo "znasilnovat" usb hid klavesnici s AVR?
Ja se ted o to pokousim. Mam na bastl poli poskladane avr, kondiky, krystal, tlacitko, 2 odpory (68R pro D+ a D-) a 1 odpor mezi +5V z usb a D- a usb konektor.
Sosnul jsem si program hidkeys primo ze stranek vusb.
Naladoval do M8 a ono to najede tak 1x z 200 pokusu.
Vcera se zadarilo a najelo to pri kazdem pripojeni. V programu jsem diky tomu nasel par chyb v obsluze tlacitek, ale stejne jsem to potom predelal na svoje. Cele odpoledne, kdy jsem si s tim hral, to fachcilo
Dneska zapnu masinu pripojim vcerejsek a ejhle. Bud neni zarizeni rozpoznano, nebo je rozpoznano ale na treti refresh seznamu HW se zobrazi ze zarizeni nelze spustit (kod 10) nebo ze zarizeni vyhlasilo chybu (kod 43).
Zkontroloval, rozebral a zapojil jsem to uz snad 100x
Co bych jeste mel udelat, aby to jelo jako vcera? Poradte pls
2k2 se tam daval pro posileni sbernice
jeste bych ten 2k2 nechal a zkusil prehodit D+ a D- na procesoru, jestli nahodou nedoslo k zamene
Jinak by opravdu mely vsechny USB AVR chodit s bootloaderem. Mozna budou jenom jinak nastavene fuses, doporucuju zkontrolovat, jestli je vubec bootloader aktivni
K vyssi proudove zatezi >>existuji tranzistory, a nebo hodne oblibene ULN2xxx (treba 2003, 2004, 2803)
K TPICxxxx >> po zbeznem nahledu do datasheetu nevidim zadny problem.
Privedu bit na vstupni pin, nahodim a shodim hodiny
opakuju 8x
potom nahodim a shodim hodiny na RCK pro zapsani do registru a tedy objeveni na vystupech
Tedy zalezi na ovladacim SW. Budto bude potreba 11 bitu = 10 pro data na 10 segmentu a 1 hodinovy,
nebo 20 = 10 pro data a 10 pro hodiny pro kazdou segmentovku zvlast
Segmenty bych ja osobne z pasku nestavel, radeji bych dal diody. Pasky se casem odlepuji a je treba je opravovat. Se zapajenou diodou lze hnout jenom hrubou silou. Navic vyjdou levneji a sviti vic.
Zacal jsem si stavet HTPC, chtel jsem tam soupnout informacni LCD. Jenze po vypnuti by lcd neukazovalo nic, coz mi vadilo. Tak jsem si tam naprogramoval hodiny.
Pro zajemce o vyrobu vlastnich hodin prikladam pouze rutinu pro nastaveni casovace 2 do asynchronniho rezimu a obsluhu preruseni. Dalsi bizuterii jako nastavovani casu, vykreslovani na zobrazovaci prvek, doplneni kalendare atd. nechavam na programatorovi.
AVR potrebuje pouze krystal a kondiky na pinech TOSC1 a TOSC2
volatile char hodiny=0;
volatile char minuty=0;
volatile char sekundy=0;
void RTC_Init()
{
OCR2=31;
TCCR2 = (1<<CS22) | (1<<CS20) | (1<<WGM21) | (1<<CS21);
ASSR = (1<<AS2);
TIMSK |= (1<<OCIE2);
}
ISR (TIMER2_COMP_vect)
{
sekundy++;
if(sekundy>59)
{
sekundy-=60;
minuty++;
}
if(minuty>59)
{
minuty-=60;
hodiny++;
}
if(hodiny>23)
{
hodiny-=24;
}
}
Ja to resim takto
Mam jeden pulzni vystup napojeny na externi preruseni a hlidam si nabeznou hranu (ale lze i dobeznou).
Jakmile nastane udalost, zkontroluju druhy pulzni vystup. Pokud je v urovni H, jde o otoceni na jeden smer, pokud na urovni L, jde o druhy smer.
Tohle reseni je jednoduche. Neresi vsak to, ze druhy pulzer by mel slouzit jako potvrzovaci. Neresi vypadek jednoho pulzeru a tim padem jaksi nefunkcnost. Jenze se jedna o prime ovladani, takze kdyz se neco podela, je to hned videt (kurzor v menu se pohybuje porad na stejnou stranu). Kdybych delal hlidani napriklad prutokomeru, muselo by se brat v uvahu i pulzovani na druhem vystupu.
ovladani tlacitkem
obsluha_preruseni
{
//nastal stisk tlacitka, predpoklad je ze mas odfiltrovane zakmity
rezim = rezim+1
if rezim > maximalni_pocet_rezimu pak rezim=prvni_rezim_jaky_chces_mit
}
no a v hlavnim programu pak pred zapisem na port zkontrolujes hodnotu promenne rezim a podle toho se zaridis
treba vypnes ledky na portu a zacnes pracovat s portem b, dtto port c
pro program 4 bych zvolil 4B promennou (long, dword), treba stav_led, nastavil prvni bit na 1, ostatni na 0 a pak jenom shiftoval vlevo (nasobil 2)
potom port a by byl prvnich 8 bitu (port a = stav_led)
port b druhych 8 bitu (port b = stav_led shiftr 8) - nevim jak je to v basicu
port c tretich 8 bitu (port c = stav_led shiftr 16)
jakmile dosahnes hodnoty 16 777 216 nastavis onu promennou stav_led na 1 (zacinas od zacatku)
beru to tak ze nemas barvy na stridacku
pokud ano, resil bych to asi tabulkou
@dawe
dej priklad co delas, jestli ty ledky tak tam je to jednoduche
jestli neco jineho tak nevim co presne napsat
pro zmenu smeru blikani ledek (viz tvuj priklad) treba tohle, jenom velice hruby nastrel
obsluha_ext_preruseni ()
{
if smer==vlevo
smer = vpravo
else smer = vlevo
}
hlavni_cyklus()
{
if smer==vlevo
port=hodnota_pro_levy_smer
else
port=hodnota_pro_pravy_smer
}
tohle si pred kazdym zapisem na port zkoukne hodnotu vlajky smer a podle toho se zaridi, vlajka smer se zmeni pri stisku tlacitka ve funkci obsluhy ext preruseni
da se to udela relativne jednoduse, ale bude to vypadat desne
v preruseni si nastav nejaky priznak
treba sepnuto = 1
pote v probihajicim procesu musis tento priznak kontrolovat, pokud je nahozen, proces ukoncit, priznak vymazat a zacit proces druhy
Nejak nechapu ten priklad cos uved, ale asi jsi mel na mysli ze pobezi doleva, kdyz bezi doprava
Na toto se pouziva tzv externi preruseni. Muzes si na nem, u avr, nastavit reakci na nabeznou nebo sestupnou hranu.
Jak je tomu u PICu, ARMu, aj. netusim. Koukni do datasheetu k MCU, ktery chces pouzit
to mi pripomina jedno cviceni na sucho, overit si posloupnost prikazu atd...
zkratka lcd simulator
http://www.dinceraydin.com/djlcdsim/djlcdsim.html
@nemo
je dobre si z techto radicu vycitat status a podle nej se zaridit
dnes ti to chodi, udelas si kopii, das tam ten stejny typ a budes se potykat se stejnym problemem
takhle si prectes status primo z lcd a uz te nezajima jestli je pauza mezi daty 1ns nebo 1h
par dotazu
1) proc nastavujes port C jako vystupni, kdyz potrebujes aby minimalne pin na kterem je LM35 byl vstupni
2) proc nastavujes ze mas referencni napeti na Aref, kdyz na nem mas jenom kondik, tedy 0V
3) return ADCW = vratit hodnotu obsahu registru ADCW
4) proc kdyz pouzivas float, pouzivas pro odeslani na lcd funkci ITOA
5) na avr neni dobre pouzivat float, je to pomale - osobni zkusenost, lepsi je pouzivat treba 32bit int a desetinne mista mit treba jako jednotky a desitky, priklad 3,14 zapsat jako 314, ale pri zobrazovani pamatovat na to ze pred poslednimi 2 misty je treba udelat desetinny znak
6) init portu D je zrejme zbytecny, predpokladam ze se to provadi v modulu LCD.h
A o jaky prekladac se jedna?
Avr studio + winavr tohle urcite zna
nechybi nahodou jako prvni vec ve zdrojaku napsat
#include <avr/io.h>
to co jsem napsal je jenom rutina pro nastaveni a obsluhu AD prevodniku
vic nic
zbytek programu chybi
jeste dodam ze fyzicky rozsah AD je 0-5V
A co se nedari?
zprovoznit ADC?
int zmerit_adc(char kanal)
{
ADMUX=kanal | (1<<REFS0); //ad prevodnik vref=avcc a kondikem na aref pinu
char adcpomocna=50; //cekani na prepnuti MUXu, hodnota muze byt i mensi, treba otestovat
while(adcpomocna--);
sbi(ADCSRA,ADSC); //start mereni
while (!(ADCSRA & 16)); //cekani na konec mereni
return ADC;
}
void ADC_init()
{
ADCSRA=128; //zapnuti ad prevodniku
}//init adc
rozsah prevodniku je 0-1023, je treba si to potom prepocitat na pozadnovane hodnoty
Tak vypada to ze jsem to vyresil
Nejspise jsem neco prehlidnul v datasheetu nebo nevim.
Zkratka kod v prvnim prispevku je spatne
Spravny kod, pri kterem se jednotlive vstupy neovlivnuji vypada takto
int zmeradc(char kanal)
{
//kanal 0 - napeti aku 0-20V
//kanal 1 - napeti ze solaru 0-25V
//kanal 2 -
//kanal 3 -
ADMUX=kanal | (1<<REFS0); //0b01000000+kanal; //ad prevodnik vref=avcc a kondikem na aref pinu
char prodleva=50; //prodleva pro zapsani adresy vstupu a pockani na prepnuti MUXu
while(prodleva--);
sbi(ADCSRA,ADSC); //start mereni
while (!(ADCSRA & 16)); //cekani na konec mereni
//ADCSRA|=(1<<ADIF); //tohle jsem mel a nemel, a chova se to stejne
return ADC;
}//zmeradc
Tech 50 je jenom odhad. Kdyz jsem tam mel 10, tak bylo jeste patrne ovlivnovani.
Piny jsou vstupy, nejsou aktivni pullup
Potenciometry jsou lineary, ale na prubehu ani tak moc nezalezi
Jde mi o to ze otocim potenciometrem na PC0 nad polovinu, druhy je natocen na 0 a presto se mi pohne hodnota ADC na obou
Tedy avr by mel odeslat do pc hodnotu z PC0 treba 100 a z PC1 odeslat 0, jenze on posle z PC0 100 a z PC1 treba 20
Kdyz PC0 natocim na 0, posle z obou 0.
Neco podobneho se deje kdyz PC0 je v klidu, treba na 0 a tocim s PC1
Zkousel jsem vic svabu, delaji mi to vsechny. Daval jsem i 100n kond na vstupy, jestli to treba nekmita ( = potenciometry nechrci) tak to taky nepomohlo, proste jak jde jeden z nich nad 50% tak se to prelije do dalsiho
jeste zkusim pokus "jak daleko se to prelije", tedy budu posilat vsech 6 analogu, i kdyz na nich neni nic pripojene
Zdar lidi,
jsem zase nekde v koncich. Delam nekde nakou chybu.
Mam M8, mam v ni program kde potrebuju mit stale aktivni PWM regulaci (motory), vystupy a komunikaci a jeste potrebuju merit na 2 kanalech ADC.
PWM funguje jak ma, vpodstate vsecko az na ten ADC.
Ke kanalu 0 a kanalu 1 mam pripojene potenciometry. Klasicky mezi Vcc a GND a vystup jde na kanal.
Problem je v tom, ze at otacim kterymkoliv potenciometrem, promitne se zmena i v druhem kanalu
Merici funkce je jasna
int zmeradc(char kanal)
{
//kanal 0 - napeti aku 0-20V
//kanal 1 - napeti ze solaru 0-25V
//kanal 2 -
//kanal 3 -
ADMUX=kanal | (1<<REFS0); //0b01000000+kanal; //ad prevodnik vref=avcc a kondikem na aref pinu
sbi(ADCSRA,ADSC); //start mereni
while (!(ADCSRA & 16)); //cekani na konec mereni
//ADCSRA|=(1<<ADIF); //tohle jsem mel a nemel, a chova se to stejne
return ADC;
}//zmeradc
funkci volam 2x, jednou v parametru predam hodnotu 0, podruhe hodnotu 1.
Hodnoty si pote prepocitam na pozadovany rozsah a odeslu uartem do pc pro kontrolu.
Kanal jedna ma rozsah prepocitanych hodnot 0-250, kanal nula ma rozsah 0-200
Do pc mi prijdou pocatecni hodnoty 0,0
Pohnu s jednim potenciometrem (treba kanal 0) a dojde mi napriklad 10,0
Pohnu vice a uz mi dojde treba 90,8
Dam to nadoraz tak mi dojde 240,40
Podobne je tomu naopak
Copak delam spatne?
co tam dela ta 4096? Neni to nahodou JK klopak a ne invertor jako ta 04? Ale asi to je jenom chyba popisu.
V SW budes muset osetrit hw inverzi tech multiplexovych vystupu na trandiku, protoze 3 z nich jsou HW invertovane. Viz napr.
http://lpt.hw.cz
Jinak nepises v cem to chces programovat
Pristup na lpt pod xp je trosku slozitejsi. Musi se to bud pres handly nebo po staru
port($378):=hodnota_pro_datove_piny
. Ovsem pri "starem" postupu je nutno pouzit pomocniky. Treba userport nebo me se osvedcil zlportio
A tady najdes peknej serial jak psat plugin pro winamp v delphi
http://www.builder.cz/art/delphi/winamp1.html
Vzdyt tanky jako hracky taky existujou, takze nemluv ze z hracek to nejde.
Zalezi na tom jak to mas tedko ovladane. Jestli jenom tlacitky na kabelu tak by se dal pouzit jednoduchy vysilac a prijimac pracujici na detekci nosne, neco jako treba jednoduche ovladani vrat co maji treba v GM
Pokud nemas zadne rizeni a chces neco udelat, asi se MCU nevyhnes. Tedy potrebujes MCU v robotovi, ktery se bude starat treba o pwm motoru, senzory, mereni baterie atd....
Dalsi mcu potrebujes do vysilac. Tam se bude starat o obsluhu tlacitek nebo polohy potenciometru, zalezi jestli chces proporcionalni nebo neproporcionalni rizeni.
S tim pak souvisi volba protokolu, cim jednodussi tim lepsi. Spise cim kratsi.
No a nakonec jako pojitka muzes pouzit svuj radiovy bastl (nedoporucuju, pokud nejsi profik). Dale se daji pouzit opticka pojitka - ty maji sve vyhody v jednoduchosti, financni nenarocnosti (laserove ukazovatko stoji par korun). Ale taky nevyhody - vysoka pravdepodobnost zaruseni prijimace napriklad sluncem.
Nebo radiove moduly. Bud urcene primo pro datovou komunikaci (treba racom, sateline, maxon, conel, turck) ale dost se prohnes pri placeni. Nebo levne moduly treba od aurelu (nutno vyresit kompletni protokol a ochranu proti ruseni)
Potom jsou tu ruzne bluetooth a wifi moduly (connectblue), kde je potreba vyresit pouze protokol, ruseni a spol je vyreseno v HW casti. Jsou uz dnes cenove dostupne.
Konkretni navod ti asi nikdo neda.