Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: miminek23 06. 01. 2025, 17:50:19

Název: Projekt na Raspberry Pi a Python
Přispěvatel: miminek23 06. 01. 2025, 17:50:19
Dělám projekt na přenos dat světlem z jednoho Raspberry Pi na druhé pomocí laseru. První kod v příloze "blik.py" převede uživatelem zadaný text na ASCII kod v bináru a laser podle hodnoty 1 nebo 0 bliká po určitou dobu. Nedokážu ale zprovoznit přijímací část (prichod.py). Používám fotorezistor a normální rezistor jako dělič napětí.
Poprosil bych jestli by někdo nebyl schopný mi přijímací část zprovoznit a nejlépe ještě najít způsob jak obě zařízení synchronizovat, aby se spustila naráz

Díky moc!
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: TechnikTom 07. 01. 2025, 00:56:23
Nebylo by jednoduší na vysílání i příjem použít sériový port s rozumně nastavenou rychlostí?
Tím myslím modulovat ten laser signálem ze sériového portu a na druhé straně přivést signál z přijímací diody nebo fotoodporu opět na vstup sériového portu.
Snadno odladíte sw tím, že to nejdřív spojíte drátem a až budete mít jistotu, že to funguje tak, začít ladit s laserem.
Já to takhle používal s infra.
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: RDa 07. 01. 2025, 01:50:27
A na prijimaci vidis, zda chodi data? Tj mas HW ktery je spolehlivy?

Jedna z veci pri sw/hw vyvoji je schopnost veci ladit.. takze pokud nevidite data v SW, musite pripojit osciloskop a zjistit zda ty data vubec mate na dratu.. a podle toho zda jo nebo ne, se rozhodnete kam mirit sve usili.
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: Karmelos 07. 01. 2025, 09:18:48
A na prijimaci vidis, zda chodi data? Tj mas HW ktery je spolehlivy?

Jedna z veci pri sw/hw vyvoji je schopnost veci ladit.. takze pokud nevidite data v SW, musite pripojit osciloskop a zjistit zda ty data vubec mate na dratu.. a podle toho zda jo nebo ne, se rozhodnete kam mirit sve usili.

Na todle snad stačí jenom voltmetr, ne? Ale jasný, je potřeba vědět jestli ten lejzr vůbec tu jedničku vybudí než zhasne....
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: Ge Bu 07. 01. 2025, 09:20:36
Naprosto souhlasím s tímto názorem.
Není zádrhel právě ve fotorezistoru? Je to hodně pomalá součástka tj. změna hodnoty odporu trvá a třeba to nestíhá vůbec blikání registrovat.


A na prijimaci vidis, zda chodi data? Tj mas HW ktery je spolehlivy?

Jedna z veci pri sw/hw vyvoji je schopnost veci ladit.. takze pokud nevidite data v SW, musite pripojit osciloskop a zjistit zda ty data vubec mate na dratu.. a podle toho zda jo nebo ne, se rozhodnete kam mirit sve usili.
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: Ge Bu 07. 01. 2025, 09:21:36
A jestli fotorezistor dá elektrický impuls.
Voltmetr stačit nebude - neuvidíš, jestli to bliká. Bude ukazovat průměrnou hodnotu.

A na prijimaci vidis, zda chodi data? Tj mas HW ktery je spolehlivy?

Jedna z veci pri sw/hw vyvoji je schopnost veci ladit.. takze pokud nevidite data v SW, musite pripojit osciloskop a zjistit zda ty data vubec mate na dratu.. a podle toho zda jo nebo ne, se rozhodnete kam mirit sve usili.

Na todle snad stačí jenom voltmetr, ne? Ale jasný, je potřeba vědět jestli ten lejzr vůbec tu jedničku vybudí než zhasne....
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: dj-bobr 07. 01. 2025, 10:19:39
Z vlastní zkušenosti dodávám, že fotorezistor není jen hodně pomalá součástka, ale je to fakt extrémně pomalá součástka, jejíž odezva bývá běžně v řádu nižších stovek milisekund a je pro jakýkoli digitální přenos velmi špatně použitelná.
Raději bych se zaměřil na fotodiody, které nabízejí odezvu o několik řádů rychlejší a pro datové přenosy se hodí podstatně více.
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: XXX_Sam_XXX 08. 01. 2025, 00:14:14
Kód: [Vybrat]
for j in range(len(x)):
    y=f'{ord(x[j]):08b}';print(y)
    for i in range(8):
        if y[i]=="0":
            a.on();sleep(.03);a.off();sleep(.1)
        if y[i]=="1":
            a.on();sleep(.05);a.off();sleep(.1)

JJ pauzy v ms, jak píšou ostatní.

Jinak, chápu že si s tím jen hraješ a učíš se, ale prosím koukni na nějaké "python coding best practices", nebo kousek knížky.
Ten kód je dobrá prasečina :)
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: RadegastX 08. 01. 2025, 18:06:00
Z vlastní zkušenosti dodávám, že fotorezistor není jen hodně pomalá součástka, ale je to fakt extrémně pomalá součástka, jejíž odezva bývá běžně v řádu nižších stovek milisekund a je pro jakýkoli digitální přenos velmi špatně použitelná.
Raději bych se zaměřil na fotodiody, které nabízejí odezvu o několik řádů rychlejší a pro datové přenosy se hodí podstatně více.

Kdysi dávno jsem měl funkční Ronju: https://cs.wikipedia.org/wiki/Ronja (https://cs.wikipedia.org/wiki/Ronja).
Tam by mohl autor vlákna jít pro inspiraci, jaké součástky použít.

http://ronja.twibright.com/ (http://ronja.twibright.com/)
http://ronja.twibright.com/schematics/ (http://ronja.twibright.com/schematics/)
http://ronja.twibright.com/ds.php (http://ronja.twibright.com/ds.php)
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: RadegastX 08. 01. 2025, 18:17:23

Z vlastní zkušenosti dodávám, že fotorezistor není jen hodně pomalá součástka, ale je to fakt extrémně pomalá součástka, jejíž odezva bývá běžně v řádu nižších stovek milisekund a je pro jakýkoli digitální přenos velmi špatně použitelná.
Raději bych se zaměřil na fotodiody, které nabízejí odezvu o několik řádů rychlejší a pro datové přenosy se hodí podstatně více.

Kdysi dávno jsem měl funkční Ronju: https://cs.wikipedia.org/wiki/Ronja (https://cs.wikipedia.org/wiki/Ronja).
Tam by mohl autor vlákna jít pro inspiraci, jaké součástky použít.

Ono totiž na vzdálenost větší než malou bude potřeba ten signál z fotočlenu zesílit a neztratit se v šumu. Tam dělič stačit nebude.

http://ronja.twibright.com/ (http://ronja.twibright.com/)
http://ronja.twibright.com/schematics/ (http://ronja.twibright.com/schematics/)
http://ronja.twibright.com/ds.php (http://ronja.twibright.com/ds.php)
Název: Re:Projekt na Raspberry Pi a Python
Přispěvatel: ludan 10. 01. 2025, 11:10:13
Já tedy nejsem žádný expert na elektrotechniku a ani na optoelektroniku.
Nicméne pár rad spíše do začátku ti dát můžu.
- rychlejší příjímací součástku
- v komunikaci se používá běžne modulací a jsou pro to dobré důvody (rozlišení signálů vlastní / cizí)
- i když neprobíhá komunikace je vhodné posílat nosnou pro detekci spojení, anebo neposílát nic, ale zase mít preambuly (viz. Ethernet, apod.)
- já bych se k přijímacímu prvku spíše choval analogově a s pomocí vyhodnocení kvality přenosu nastavoval rozhodovací úrovně (převod z analogu na digitál). To je důvod proč existuje preambule. Přenosová trasa v případě přenosu volným prostorem mění své vlastnosti (útlum, změna světelných podmínek, atd.) a proto je potřeba s tím počítat a přizpůsobovat nastavení přijímače (průměrování, rozhodovací úrovně).
- taky bych vzhledem k chybovosti a nestálosti přenosového kanálu zavedl detekci (CRC), případně i opravné kódy (např. jednoduché Hammingovo kódování).

Každopádně doporučuji postupovat po krocích a začít přenos optočlenem, pak v kontrolovaném prostředí (uzavřená drubička), tak si odladit kodování, opravy chyb a pak se vydal na další krok modulací a řízení přijímače. Osciloskop je fajn věc a jasně ukáže spoustu věcí viziálně.

V každém případě přeju hodně nadšení a odhodlání. Na internetu najdeš spoustu rad na tohle téma. Ostatně 90% věcí už přes námi někdo dělal.