Raspberry Pi Pico vs Arduino nano (328)

Üdv

Arduino-val már páréve bütykölök. (DS18B20, I2C, LCD)  Igazából kedvelem megbízható stabil, még bárgyú programjaimmal is.

Most jön a de. Család meg akar lepni némi mikrokontrollerrel, persze nem önzetlenül. :-)

Nézegettem a Raspberry Pi Pico-t nem ördögtől való :-)  Tudnátok tapasztalatot írni a témában, hogy van olyan megbízható vagy előny ami miatt jobb lenne. Főszempont, hogy megbízható legyen "vas" része, menjen évekig.

Válaszokat előre is köszönöm.

Hozzászólások

Az Arduino eléggé tág fogalom, az eredeti ATMEGA328 -tól számos méretes ARM alapú mikrokontrollerig.

Eddig bármi ami Raspberry Pi nagyon megbízható volt (több mint 1 éve működik a telkemen mint kamera és időjárás állomás, kültérben, 48V POE).
 

* Én egy indián vagyok. Minden indián hazudik.

raspberry annyira megbizható, hogy nekem még amikor megjelent a raspberry pi b, talán 2012-ben, vettem egyet , és  még mindig megy, volt olyan, hogy évekig 0-24 ben ment,  pi-hole volt rá telepitve,meg nyomtatószerver,  csak kinőttem, tavaly ősz óta  nyugdijas, már nem napi használatban van.
A tápegysérge figyelni kell, meg időnként azért megfekszik az sd kártya, de szerintem az nem a raspi hibája.,

Kezd mar kozosseg (forum es dev env) is lenni hozza. Szerintem meg kell hozza egy kis ido.

De lehet pont te leszel a felfedezo.

Úgy gondolom, a "klasszikus" bluepill nagyon jó kis alternatívája lesz. Most néztem 1.200,- HUF a Farnell -nél.
A PlatforIO + VScode támogatja és használhat vagy jlink -et vagy Raspberry Pi SWD -t. Már csak egy jó projektet kell találni hozzá.

* Én egy indián vagyok. Minden indián hazudik.

Én azt szoktam mondani, hogy célszerű a feladathoz keresni megfelelő eszközt és nem egy megvásárolt eszköznek keresni feladatot.
Ez már szépen ki is adja, hogy ARM Cortex M0, M3, M4, M7 családból válasszak-e eszközt és milyen lábszámmal (fizikai méretben), milyen hardverképességgel és mennyi RAM-mal, stb.
Például vasútmodellnél a 6 vagy 8 lábú apró tokozás szintén fontos szempont lehet a mikrovezérlő kiválasztásánál.

Teljesen igazad lenne, ha ez valami profi projekt lenne. Ha hobbi akkor meg abból dolgozol ami van és vagy amit olcsón megkapsz.
Persze az adott korlátok figyelembe vétele mellett.
(A te gondolat meneted alapján minek kellett ATtiny85 -el USB interfészt csinálni https://github.com/harbaum/I2C-Tiny-USB)

* Én egy indián vagyok. Minden indián hazudik.

A szoftveres USB stack engem is megfogott annó, mert elegáns assembly mutatvány. De azon túlmenőleg volt ipari jelentősége is. Gondolom te is emlékszel az USB hajnalára ... első 1.0 és gyorsan a kijavított 1.1 ... de régen volt.
Hardvertámogatás device oldalra szánt elektronikában (mikrovezérlőkben) még sehol, mégis el kellett terjedni a végberendezéseknek erre az új "micsodára". A low-speed (1,5 Mbps) éppen ezért került ügyesen bele a szabványba. Ezt assemblyben szoftverből előállíthatod egy legalább 8-szoros tempójú mikrovezérlővel. Aztán bejött a mikrovezérlőkbe a full-speed (12 Mbps) hardvertámogatás. Mind a gyors jelkilökésre, mind a JKJK...KK fejléc detektálás + SE0-ig történő beszipkázására. Ma ha kell USB, akkor arra olcsón kapod a full-speed hardvertámogatással rendelkező mikrovezérlőt.
Egyébként trükkösen jelzi a device azt is hogy low-speed vagy full-speed-ben kérdezze meg a host. A full-speed jelzéséhez D+ vonalat húzod fel 1k5-tel 3v3-ra, a low-speed eszközhöz pedig a D- vonalat húzod fel. A protokoll így hardveresen válik ketté. Érdekesség, hogy a high-speed USB full-speed-del indul és szoftveresen beszélik meg a high-speedre váltást.

A szoftveres low-speed USB megoldás a sok hátránya miatt és a mára szinte minden értelmes mikrovezérlőben megtalálható full-speed USB támogatás miatt ma háttérbe szorult. Egyik szemléletes hátrány: csinálj low-speed USB-t szoftverből, továbbá egy RS232 interfészt kezelj le mellette. Gázos lesz a mutatvány. Hardvertámogatás mellett ugyanez hibátlanul fog működni. Ezért ma nagyon speciális eset az, amikor USB csatlakozáshoz nem USB-s mikrovezérlőt használnék. Ellenben 2 évtizede tényleg az egyetlen értelmes megoldás a szoftveres low-speed vagy az FTDI chip alkalmazása volt.

> Teljesen igazad lenne, ha ez valami profi projekt lenne. Ha hobbi akkor meg abból dolgozol ami van és vagy amit olcsón megkapsz.

Én ezt pont fordítva látom a hobbi terén: ha már hobbi akkor biztos csak olyannal fogok dolgozni, amihez kedvem is van. És ha eredményt akarok elérni, nem pedig piszmogni (néha jólesik piszmogni), akkor olyan eszközt választok, ami a célhoz alkalmas.

A vezérlő board vagy csip ára egyébként is elenyésző általában a teljes projekthez képest, és ha nem kerül fix beépítésre, akkor akárhányszor újra használható. Ezen nem érdemes spórolni.

OFF: A vidéki házam rengeteg apró és kevésbé apró feladataihoz végre csináltam egy satupadot. A te logikád mentén elmentem volna a vasárudába és mondjuk vettem volna ck. kettő 6m hosszú 40x40 zártszelvényt, aztán egy 5-6m hosszú két colos palló deszkát.

Nem ehelyett elővettem a garázsban rozsdálló 60mm horganyzott vascsövet és a colos vascsövet, megnéztem néhány videót (hogy kell a csövet heggesztéhez illeszteni). Pár éve a szomszéd lebontotta a már >10 éve használaton kívüli disznóólát és én elkunyeráltam az egészségesebb palló deszkákat (40-50mm vizelettel tartósított tölgyfa - k'va kemény, girbe-gurba). Lett egy igen masszív satupadom - jól megdolgoztam vele.
(Nézegettem az apróhirdetéseket, a legócskább rozsda halom is >60 eFt + a szállítás)

* Én egy indián vagyok. Minden indián hazudik.

Nem ehelyett elővettem a garázsban rozsdálló 60mm horganyzott vascsövet

Gyerekkoromban én is kunyiztam el kidobásra szánt TV-ket, rádiósmagnókat, stb és az abból "ingyen" kinyert (órákon keresztül kiforrasztott) ellenállásokból, tranzisztorból hobbiztam. Tanulgattam az elektronika alapjait.
Végülis ez segített hozzá ahhoz, hogy 8. osztály után hova menjek továbbtanulni. Így telitalálat volt a technikum, pont azt tanították amire kíváncsi voltam és az oktatókat további kérdésekkel is bombázhattam.

Egyébként a sorkimenő trafókból még néhány megvan. Ha akarok demózni 20..50 kilovoltos szikrákkal, akkor arra gyorsan felhasználhatóak.
Most is ha valami kidobásra ítélt rádió vagy hasonló kerül a kezem ügyébe, akkor a ferritrudat és a forgókondit félreteszem. Ezek azok, amiket nehezebben kapsz meg elektronikai alkatrész kereskedésben. A gyerekeknek pedig ha demózol egy középhullámú Kossuth-vevővel, netán csinálsz egy hangolt keretantennát hosszúhullámra, akkor arra ideális.

Megfogott a téma, de végül nekem egy másik mutatvány viszi el a kevéske szabadidőmet. Az elektromágneses hullámokon femtowattos (10⁻¹⁵ watt) energiatartományú zajos katyvaszból kihámozni a túloldal által küldött üzenetet. Más szóval hogyan tudod megvalósítani, hogy a kis teljesítménnyel adó tengerentúli rádióamatőr partnered halvány jelét le tudd venni Európából, kiszedve belőle a küldött információt?

Régen vasra sokat áldoztak. Az egyetem utolsó végefelé jártam, amikor ez az antenna lángvágó áldozata lett. Én még láttam működni.
Forgatható és hidraulikával széles tartományban dönthető volt.

Diósdról sugároztak vele például Ausztráliába meg Amerikába "Magyarország Hangja" című műsort rövidhullámon.
Megvolt hogy a hét mely napján hány órától hány óráig a terjedés függvényében hol lesz "Magyarország Hangja".

Az Internet előtt még másképpen működött az információ terjesztés. Ma http://radio.garden/ és hallgatod a perui népdalokat.

> Például vasútmodellnél a 6 vagy 8 lábú apró tokozás szintén fontos szempont lehet a mikrovezérlő kiválasztásánál.

Épp én is ilyesmin gondolkodom, de a 6 vagy 8 láb túl kevésnek tűnik: eleve motort kell vezérelni, az legalább 2 láb, aztán visszacsatolni a back-EMF-t, az még egy, jön a vezérlő jel be, akkor tartunk 4-nél. Táp, GND és elfogyott a 6 láb, miből lesz visszajelzés a központnak?

6 láb sokmindenre elég:
     1 föld,
     1 táp
     1 egyvezetékes busz. A végponti mikrovezérlő a kérdés megválaszolásának idejére állítja csak OUT-ra. A központi mikrovezérlő kérdezi egymás után végig a mikrovezérlőket.
Ennyit kell odavezetékelni. Mindenhova ugyanez a 3 szál megy. Kevés vezeték, kicsi méret.

     3 darab helyi I/O 6 lábú tok esetén
     5 darab helyi I/O 8 lábú tok esetén

Én konkrétan DCC dekódert akartam csinálni egy mozdonyba, ráadásul feedback-kel, tehát a síneken keresztül vissza is tudna beszélni. (A DCC röviden úgy működik, hogy a két sínen a polaritás ide-oda változik és a változások időpontjai kódolnak digitális üzenetet. A vissza beszélés pedig úgy, hogy egy kérdés üzenet után egy rövid időre a táp "elengedi" a sínt, és a megszólított vezérlő válaszolhat hasonló protokoll szerint. A visszajelzéshez egyelőre úgy érzem, hogy teljes H-hídra lesz szükségem, másképpen nem tudom megcsinálni rendesen, tehát 2 láb, nem is egy.)

Ebben a kontextusban a vevő oldal sima ügy egy pinnel, de az adással az a baj, hogy hogyan tudnám a hardvernek jelezni, hogy akkor a magas jel most a vevőből jön, vagy adni kell. Tehát ehhez nekem több láb kell a mai eszem szerint.

A mozdony lámpáit igazából a H-híd irány jele is vezérelheti. Ugye a modern H-hidaknál nem közvetlenül vezéreljük a tranzisztorokat, hanem egy enable és egy irány jel van. Ez azért jó, mert a híd alkatrész generálja magának teljesen pontosan a dead time-ot is.

Ha sima 5V-os a busz, és a mikrovezérlőről közvetlenül hajtom, akkor értem az egyvezetékes buszt, azzal nem volna gondom. Gondolkodtam is, hogy az álló dolgoknak ilyen busz fog készülni, de a mozdonyon csak 2 pólus van, és azon kell menni mindennek. Ha meg már a mozdony miatt megcsinálom a kommunikációt egyféleképpen, akkor lehet, hogy _mindenre is_ ezt fogom használni, megspórolok még egy vezetéket is. Viszont a buszhoz akkor mindenhová H-híd kell, ami meg nagyobb és bonyolultabb. Ilyen ez a popszakma.

Olyannal nem próbálkoztál, hogy
   - a tápfeszt a sínre fojtó tekercsen add fel, a mozdonyban is SMD fojtón keresztül adod át a belső pufferkondinak
   - a jelzéshez pedig direktben soros SMD kondin keresztül rángatva a sínt adod fel, illetve szintén a soros kondenzátoron keresztül veszed le a rángatást.
Azaz logikailag a DC tápfeszre ráülteted a jelzés impulzusait.

Nem, de rendkívül szimpatikus több szempontból is! Ezen elgondolkodom. Köszi a tippet!

Szerk.:

Eredetileg kivételesen abból indultam ki, hogy nem akarom újrafeltalálni a melegvizet, ott a DCC, azt kell megvalósítani. (Persze ha valóban nem akarnám feltalálni a melegvizet, akkor nem építenék, hanem megvenném a DCC-t is...) De ez sokkal jobban tetszik, úgyhogy nosza lássuk!

Szimpatikus, hogy így megvalósítva a táppal szinte semmit nem kell csinálni, megveszem rákötöm és kész elvileg.

Gondolkodtam is rajta, és mértem is. Breadboardon raktam össze egy mini rendszert:

Adó:

 * labortáp adja a 12V-ot

 * Arduino ad különböző szélességű és 5V nagyságú négyszögjeleket

 * A +12V ágon van egy 12uH induktivitás

 * áramkorlátozó ellenálláson (200Ohm, 150 volna a minimum, hogy az ATTiny számára engedélyezett 40mA-t ne lépjük át) és kapacitáson keresztül rángatom a +12V sínt

Vevő:

 * 12uH-n keresztül kondira kötve

 * kapacitás a 12V vonalra kötve, másik oldalán nagy ellenállással a GND-re kötve. A kondi lábát nézem szkóppal, vevőt egyelőre nem építettem.

 

A jelformák alapján közel akkora tüskét tudok csinálni, amit már "észrevesz" egy ATTiny (1 órajel széles, és olyan magas kell legyen, amit a bemenő pin már jelszint váltásnak érez). 2-3V-os kilengést simán tudok csinálni, és ennél még lehetne nagyobb induktivitást választani (csak nem volt kéznél a méréshez), ami hosszabb és ezáltal nagyobb amplitúdójú jeleket is megengedne. Szóval eddig akár működhetne is.

A fő paraméterek:

 * folytótekercs induktivitása: nagyobb induktivitás lassabb jeleket is megenged, mert lassabban indul be az áram, ami a jel feszültségét elvezeti. Ebből jelentősen nagyobbat is lehet kapni mint amivel mértem. Amivel mértem azzal a jelek 1uS-nál rövidebb idő alatt lecsengenek.

 * vivő kapacitása: ezt a kapacitást fel kell tölteni/ki kell sütni amikor egy jelet teszünk a vonalra. A sín kapacitása jelentősen nagyobb, mint a mérésnél jelenlévő.

 * adó áramkorlátja(közvetetten a teljesítménye): az áramot növelve nagyobb kapacitású vivőt is meg tudunk hajtani, azonban nagyobb áramhoz meghajtó áramkör kell. Abból indultam ki, hogy az MCU pin közvetlenül hajtsa meg az adót. A teljesítmény azzal is javítható némileg, hogy ellenállás helyett induktivitáson keresztül töltjük a kapacitást, azonban ez lehet, hogy lassítja is a jelet.

Több vevő rontja a paramétereket, mert az eredő induktivitás csökken párhuzamosan kapcsolva. A vivő és a vevők kapacitása is nő, bár ez nem jelentős. Emiatt az eredeti ötletem, hogy a fix tárgyak is ugyanezen a buszon keresztül kommunikáljanak, nem volna praktikus. Ésszerűbb ezeknek külön tápot és 1 vonalas buszt vinni, és csak a mozdonyokkal kommunikálni ezen a módon.

A hosszú sín is rontja a paramétereket, mert a vivő közeg kapacitása nő. Nagyobb kapacitáshoz nagyobb áram kell, hogy ugyanakkora jelet rá tudjunk ültetni.

Megmértem a sín kapacitását kapacitás mérős kézi multiméterrel: 90nF egy sima ovál pálya kb 6-6 egyenessel. Ehhez már komoly adó teljesítmény kell, hogy mérhető jelet rá tudjak tenni, ezt nem tudja az MCU pin közvetlenül kihajtani (ésszerű folytótekercs méretek mellett). A sínnel együtt még nem mértem a tesztáramkörömet, mert másik szobában van, mint a szkóp :-)

Több megoldást is el tudok elképzelni:

 * a sínt rövid szakaszokra szakaszolom, így a kapacitása kicsi marad egy szakasznak, és szakaszonként telepítek egy adó-vevőt. Ezzel viszont nem lesz egyszerű és olcsó sem az építés.

 * Asszimmetrikus rendszer: a mozdonyban egyszerű adó-vevő van, ami 5V-os jelet kíván meg, és 125 Ohm-on keresztül ad. A központba azonban olyat építek, ami  nagyobb teljesítménnyel ad, és kisebb jelet is tud észlelni. (Ez több alkatrész és legalább két MCU láb, de egyébként nincs akadálya)

 * Mindkét oldalra kerül erősítő: két MCU láb kell a mozdonyba is a kommunikáció céljára. Még mindig marad elég a motor hajtásnak és a lámpáknak 6 lábú vezérlő esetén is.

 

Te építettél ilyet egyébként? Neked hogy működött? Nagyon mellémentem a számokkal?

Szerk2.: Esetleg a vevőt komparátor inputra építve működhetne a rendszer, mivel úgy sokkal kisebb amplitúdójú jeleket tudnánk venni. A komparátor inputot lehetne felváltva használni a kimenettel, és így 1 lábbal megoldható maradna a működés. Hmm...

fojtó

Nyugi, engem is kijavítottak sok-sok éve a rádióamatőr fórumokon. Nem folyik, hanem elfojt.
Egyébként maximum némi jelkondícionálás, schmitt-trigger kellhet a bemenetre, előfeszítve a döntési sáv közepére a DC szintjét.

Köszönöm ezt a tippet is! Egész jól kezd összeállni fejben. Az, hogy mindkét irányba fel lehet tenni a vonatot a sínre, egy kicsit bonyolítja, de azért még fel tudom fogni.

Még egy elméleti-gyakorlati kérdésem felmerült, amit nem tudok megoldani! Nevezetesen a bekapcsolási tranziens, az inrush current kérdése. Bekapcsoláskor (amikor a mozdony kerekei a sínhez érnek), akkor az "adóvevő" kapacitáson hirtelen megjelenik a tápfeszültség. Persze nagyon rövid időre, de a 12-16V sem a mikrokontroller lábának, sem a műveleti erősítő bemenetének nem barátja. Pont a gyors változásokat akarom mérni, ezért ezeket nem szűrhetem itt ki. Sima sorbakötött ellenállással korlátozhatnám az áramot, de azzal az adóteljesítményt is korlátoznám.

A kapacitás értékét egy darabig csökkenthetem, ezzel a bekapcsolási tranziens hatása csökken. Adás szempontjából lesz lényeges, hogy ha túl kicsi a sín kapacitásához képest akkor nem tud elég nagy jel impulzust adni. Tehát a két szempont között optimalizálni kell.

Amit el tudok képzelni az az, hogy a túlfeszültséget diódával vezetem le, és mégis beépítek egy minimális induktivitást a vevőbe is, éppen annyit, ami a túlfesz védő diódának ad egy kis időt nyitni, de a jelemet átengedi. Feltéve, hogy lehet egyáltalán megfelelő értékeket találni, amik kombinációban jól működnek.

A másik, amit el tudok képzelni, hogy valójában simán kibírják a lábak a saját beépített diódájukkal, és nem is kellene foglalkozni a kérdéssel :-)

Köszönöm! A gyakorlatban remélem jó megoldás ez, de _elvben_ amikor a 12V-hoz csatlakozik a mozdony, akkor semmiképpen nem elkerülhető, hogy hirtelen emelkedjen 12V-ra a vevő kapacitás mikrovezélrő oldali lába. A 12V-ra emelkedés elvben 0 idő alatt megtörténik, de a töltések levezetéséhez viszont idő kell. Ez vajon elvi probléma csak, aminek kellően jó gyakorlati megoldása a védődióda?

Ez a gondolatmenet számomra onnan indult ki, hogy a DCC rossz, mert teljes H-híd kell a visszajelzéshez, ehhez pedig 2 láb kell, tehát összesen 3 a kommunikációra. Ezen a módon most már kell két elég nagy tekercs pluszban. A polaritás fordíthatósága miatt adó-vevőből is kettő kell, és emiatt duplán kellenek ezek a védelmek is. Bazi naggyá válik az áramkör lassan.

Mindez azért, hogy a H-hidat és a két lábat megspórolhassam.

Egyelőre olyan érzésem van, hogy ezeket a terveket sutba dobom annak ellenére, hogy szimpatikus volt, és jól is szórakoztam a méregetésével és tervezetésével is. Maradok a DCC-nél, azt kisebben és olcsóbban meg tudom csinálni.

Szerkesztve: 2021. 11. 16., k – 09:58

A kérdés szerintem is a gombhoz a kabátot esete. Azt kell eldönteni, hogy mi a cél, és ahhoz választani az eszközt. Még ha csak az a cél, hogy játszadozni vele, akkor is érdemes abban gondolkodni, hogy milyen irányba akarsz játszadozni? Mit akarsz megtanulni, milyen képességekre akarsz szert tenni?

Én például szeretek perfekcióra törekedve mennél egyszerűbb eszközzel megvalósítani dolgokat, illetve szeretem ha pontosan tudom, hogy mi történik (ez utóbbi talán a legfontosabb nekem). Ezért az Arduino hardvert szeretem, de a szoftverét már nem. Az Arduino UNO szoftverben egy pin átállítása 50-szer lassabb, mint amit a processzor tud. Ez egy rakás dologra bőven elegendő, de eljön a pillanat amikor már kevés. Arduino témájú fórumokon ezért szokott olyan lenni, hogy beírják emberek, hogy erre vagy arra a feladatra az Arduino már kevés, mikor valójában éppenhogy többszörösen túlméretezett, és egy hatlábú ATTiny is elég volna rendesen programozva.

Szerk.: mielőtt valaki félreértené, ez nem az Arduino UNO ellen érv, hanem mellette, mert ugyanazt a vasat lehet kiváló eszközökkel programozni sokkal hatékonyabban, amikor az ember kinövi az Arduino szoftver adta lehetőségeket. Sőt, kombinálni is lehet a két programozási módot az átállás ideje alatt.

> Főszempont, hogy megbízható legyen "vas" része, menjen évekig.

Mármint ugyanarról az elemről? Vagy mi volna ebben a kunszt? :-)

A gagyi kínai klónoktól eltekintve a mikrovezérlők attól szoktak csak tönkremenni, ha valami extrém szabálytalant csinálunk velük. Ha azt akarod, hogy valami évekig működjön, akkor az "Electrical characteristics" és "Absolute Maximum Rating" részt kell feltétlenül betartani az adatlapról, és akkor szinte biztosra mehetünk. Az AVR-es hivatalos Arduino-k esetén nem tudok tervezési hibáról, de amit hozzákötsz, az már rajtad múlik...

Hallottam sztorit RAM hibáról 8 bites mikrovezérlőben is olyanoktól, akik ilyenre fejlesztenek óriási példányszámú terméket, de hobbi felhasználásban az ilyesminek nagyon kicsi az esélye, hogy problémát okoz.

 

Hogy a témához konkrétan is szóljak:

 * Raspberry PI Pico: ha akarsz számolgatósabb dolgot is csinálni a mikrovezérlővel.

 ** Ez két magos MCU, egyelőre elképzelnem is nehéz, hogy mire kellhet ez.

 ** Az elektromos paramétereit, fogyasztását, satöbbi egyelőre nem ismerem, de nagyon tetszetős, hogy hosszú és részletes adatlapja van.

 * 8 bites AVR alapú Arduino-t vennék ha:

 ** Ha el tudod képzelni, hogy adatlap-nézegetéssel programozd C-ben vagy ASM-ben

 ** Ha el tudod képzelni, hogy a dev boardon fejlesztett cuccodat egyedi áramkörbe is beépítenéd, akkor valószínűleg egyszerűbb ezeket a csipeket beforrasztani, illetve többféle kis csipet választhatsz ugyanazon alapokra építve.

 ** Ha akkumulátorról sokáig működő rendszert akarsz esetleg fejleszteni: az Arduino HW-t el kell felejteni, mert az nem low power-re van tervezve, de ugyanezen csipből néhány alkatrésszel lehet gombelemről évekig működő rendszert építeni. Itt például ATMega328p-t méregettem: https://hup.hu/node/166252

 

Ha most kezdenék mikrovezérlőzni, akkor simán lehet, hogy a Raspberry-t választanám, de a mai eszemmel imádom a 8 bites AVR családot, úgyhogy csak akkor mozdulok el innen ha muszáj lesz.

Még egy dolog eszembe jutott a mikrovezérlők szoftvereiről: volt egy nagyon menő boardom (jó 10 éve), ami tudott Ethernetet is. Csak hozzá kellett "drótozni" egy RJ-45 aljzatot, amibe bele volt építve az Ethernethez szükséges trafó, és működött is. Azt gondoltam, hogy mekkora hatalmas feature ez, erre vágytam, hogy mikrovezérlő, és simán hálózatra is köthetem. Igen ám, de ahogy próbálgattam, kiderült, hogy csak blocking módú szoftver van hozzá, ameddig nincs hálózat, addig megáll a program futása. Aztán a hibadetektálás is rossz volt, a kábelt húzogatva csapda állapotba tudtam hozni a rendszert. Na most mikrovezérlőt az ember azért használ, hogy működjön, nem azért hogy újra kelljen indítgatni mint a Windowst, vagy hogy leálljon a motorvezérlés arra a kis időre, ameddig rebútol a rúter. Azóta nem is nyúltam ehhez a vezérlőhöz, pedig papíron és valójában is rengeteget tud, de az egyetlen funkciója, ami tetszett volna, az lényegében használhatatlan volt a gagyi szoftvere miatt. Mondhatnád persze, hogy miért nem debuggoltam ki, miért nem javítottam meg, de azért Ethernet-et és DHCP-t debuggolni már nem ugyanaz a szint, mint SPI-t, ehhez már nem volt kedvem, hogy belevágjak.

 

Konklúzió: vegyél mindből egyet, és próbálgasd ki! :-)

"> Főszempont, hogy megbízható legyen "vas" része, menjen évekig.

Mármint ugyanarról az elemről? Vagy mi volna ebben a kunszt? :-)"

Az arduino-s cuccaim megbízhatóan működnek évek óta, se fagyás se hiba. áramszünettől áram szünetig (évi kb 2db) . Ezt tudhatja a raspberry pi pico is?

Az arduino-t kedvelem mert strapabíró, sokat bénáztam vele: forrasztó pisztoly (ritkán), 12V volt pár másodpercig (bénázás), beázott áram alatt (tocsogósan),  kutya elszaladt vele (nyál vastagon)... és működik. Pedig ezek az ebay legolcsóbbjai.

Aztán egyszerre előnye és hátránya az egyszerű C szerű környezet (ilyesmit írtál). (persze van asm is csak a nekem meredek és nem is kívánom.)

 

Konklúzió, Konklúziója: meghajlok bölcsességed előtt. :-)

A pico azért többet fog zabálni. A megbízhatósága miatt nem kell aggódni.

Azért egy kis assembler sosem árt a 8 biteseknél bár tény, hogy a RISC -ség miatt nagyon szószátyár lesz.

Két mag? Még érdekesebb, ehhez már kell valami rtos szerűség (na nem a led villogtatáshoz).

* Én egy indián vagyok. Minden indián hazudik.

Irjatok itt, hogy feladathoz kell valasztani az eszkozt, meg kabathoz a gombot, es nem forditva. Ez igaz is, ha van egy feladat, ami megoldasra var.

De ahhoz, hogy valaki egy feladathoz megfelelo eszkozt hasznaljon, meg kell tanulnia az adott eszkoz hasznalatat, amit sokszor egyszerubb egy olyan feladattal, amihez nem lenne szukseges, de alkalmas az adott eszkoz. Szoval a feladat igazabol nem is az X eszkoz vezerlese, hanem az Y eszkoz hasznalatanak begyakorlasa. Lehet, hogy valamit meg lehetne oldani AVR8-cal is 2 magos ARM helyett, de ha olyan feladat jon szembe, amit mar nem, akkor jobban jarsz ha korabban mar belekostoltal a 2 magos ARM-be. (mar azon tul, hogy ha 1-5 darab keszul az adott kutyubol, akkor mindegy, hogy a mikrokontroller darabara $4 vagy 38 cent, viszont nem mindegy mennyi szivas van vele)

Nem azert van annyi mikrokontrolleres ledvillogtatos project, mert az 555 nem eleg erre, hanem azert, mert azzal ki tudod probalni az IDE-t, forditot, programfeltoltest, programozo hardware-t, stb..

A strange game. The only winning move is not to play. How about a nice game of chess?

Egy ATMEGA328 alapú Arduínó, ha jól meg van írva a program :-), tényleg agyoncsaphatatlan. Főleg, ha watchdog is figyel.
Ám egyre inkább Raspi-val csinálok dolgokat, ha

  1.  fogyasztás nem annyira lényeges
  2. hálózati (IP) kommunikáció szükséges
  3. Logokat, fájlokat kell elmenteni
  4. nem valami valós idejű vezérlés kell. (Bár van Raspi-ra RT patch, ígéretes, még nem kellett)

A Pi nagyobb HW költsége nem  számít, főleg ha egyedi dologról van szó.
Egy problémám van, az SD kártya véges számú írhatósága. Vannak, akik USB-SSD drájvról futtatják a Raspberry PI OS-t. No, akkor tényleg nőnek az árak, komplexebb, fogyasztás, stb.

ÓÓriási előny magasszintű nyelven írható appok. Pl, akár, ha nagyon akarom, használhatok webszervert Arduínón, de egy multithread socket szerver felejtős.
Több raspi fut a látókörömben 0-24h. Egy alkalommal tapasztaltam SD kártya tönkremenetelt, az is vitatott, hogy valóban elhasználódás miatt történt.
Alternativa read-only-fs-ről futtatni az oprendszert. De akkor hálózatra, pendrájvra kell menteni a mentendőt.
Tényleg, valaki hitelt érdemlő forrás tud az SD kártyák robusztussgáról, ilyen alkalmazásban?

Ha loggolni kell, én azt csinálnám meg, hogy a read only oprendszer partíció mellé csinálnék egy üres partíciót, vagy 0-kkal teleírt nagy fájlt FAT32-n, és ebbe low level loggolnék 512 bájtonként, tehát blokkonként. Így alig van fáradása az SD celláknak, és várhatóan akármeddig lehet futtatni nagyjából. Ja, igen a blokkokba kell egy jelölő, hogy hányadik újraírásnál tart, és bináris kereséssel mindig nem tudod keresni a logok aktuális végét pillanatok alatt.

Csináltam ilyet Mikrovezérlővel, tökéletesen működött. De sajnos nem ment évekig a cucc, hogy megtudjam, hogy valóban meddig bírja az SD kártya így. Nem tönkrement, hanem okafogyottá vált a cucc, és le lett állítva.

Ha jól emlékszem közel sem biztos, hogy hardveresen is 512 bájtos blokkokból lenne a flash, sőt. De van olyan program/script, amivel detektálható a fizikai blokkméret. 
Nem kerestem jobban utána, de lehet az erase block size is számít. Az meg akár 4MB is lehet a mai kártyáknál. Ha kicsit írsz, akkor is egy blokkot töröl és újraír.
https://raspberrypi.stackexchange.com/questions/32884/why-does-the-sd-c…

Ha meg tényleg számít a kártya tartóssága, akkor lehet kapni ipari sd kártyát, ami tud terheléselosztást (wear-leveling), mint az ssd-k.  Mondjuk jó kérdés, hogy az olcsó átlalános használtú kártyákban mennyi okosítás van egy iparihoz képest. 

Csak halkan.
Az emlegetett RPI kamera 2020.07. xx. óta folyamatosan működik, kültérben:

$uptime
18:26:05 up 485 days,  2:45,  1 user,  load average: 0,37, 0,49, 0,24

Nincs semmi kikapcsolva, logol és (óránként) képeket illetve adatokat ment a 32G SD kártyára. Köszöni jól van.

OFF: Ha valaki tudja hogy lehet ebből a képsorból egyszerűen "time lapse" v ideót csinálni kérem ne tartsa vissza.

* Én egy indián vagyok. Minden indián hazudik.

A koponyeges radarkepekbol igy csinaltam videot: (fileneveket ertelemszeruen ird at)
ffmpeg -r 30 -pattern_type glob -i 'pix/202010*.jpg' -c:v libx264 -framerate 60 -vcodec mpeg4
out_202010.mp4

A strange game. The only winning move is not to play. How about a nice game of chess?

Ha az első orange pi zero-ra gondolsz :D nekem van és nem is tudom már, hogy hány év kellett, mire 3rd party forrásból lett normálisabb rendszer rá. Gyakorlatilag sosem használtam semmi komolyabbra, mert az első években nem volt stabil rendszer rá.  Úgy tudom azóta is ez jellemzi az orangepi-t. Kijönnek papíron jó hardverrel, de nulla szoftveres támogatással. Az armbian talán egy menekülőút az esetükben rá. 

Manapság elég nehéz a valóban tartósságra gyártott, iparibb kártyákat megtalálni a marketing bullshit közt. Talán a wd purple sd kártyákban lehet wear leveling
https://old.reddit.com/r/raspberry_pi/comments/ex7dvo/quick_reminder_th…

Aztán lehet a kifejezetten ipari célra gyártó márkáknak is van saját sd kártya megoldásuk jó drágán.

Egyébként meg a pi képes usb-ről bootolni. Pendriveből lehet könnyebb találni wear levelingeset, mint sd kártyából. Nem emlékszem fejből, de már a pi3 környékén is volt usb-ről bootolás, csak át kellett billenteni egy bitet a konfigban és attól kezdve megváltoztathatatlanul beég a chipben, hogy elsőre az usb-ről próbálkozzon. A pi zero 2w is tud ilyet szvsz (ethertnetet kivéve). A pi4 meg persze hogy tud, annak frissíthető flash "bios"-a is van.

Van itt egy összehasonlító cikk: https://robu.in/raspberry-pi-pico-vs-arduino-which-to-choose/

Itt pedig egy CircuitPython Getting Started: https://learn.adafruit.com/getting-started-with-raspberry-pi-pico-circuitpython

Szerintem a Raspberry Pi Nano kártya egy jó választás a továbblépéshez - bár Arduino támogatás egyelőre nincs hozzá.

További lehetőségek:

  • ESP32 Devkit v1 kártya (ennek jó az Arduino támogatása) és MicroPythonnal is használható (ez is kétmagos).
  • STM32F411CE "black pill" kártya - ebben gyárilag van USB bootloader (letöltéshez az STM32 Cube Programmer szoftvert ajánlom hozzá), ebből a szempontból jobb, mint az ST32F103C8 "blue pill". Programozható Arduino környezetben, de a CircuitPython is támogatja, ehhez viszont nem árt a hátoldalra felforrasztani az odatervezett, de be nem ültetett SPI flash memóriát, ami egy 8 Mbájtos fájlrendszert biztosít a programoknak és adatoknak. Ez csak egy magos CPU-val rendelkezik - ha ez számít.

Ha viszont hardveres nyomkövetés is kell (bár gondolom, az Arduino esetében sem használtál ilyesmit), akkor viszont más felé (pl. STM32 Nucleo kártyák, és pl. STM32CubeIde vagy hasonló fejlesztői környezet) lehet a  "TESCO gazdaságos" választás.

STM32 mikrovezérlővel Rust-ban toltam végig egy céges melót a közelmúltban. Jól használható, kézreálló módon kidolgozott modulok vannak hozzá.
Például ha USB serial emulációs device kellene, tuti nem C-ben állnék már neki, mert Rust esetén ez is kézreálló crate lett.
Persze a Rust nyelvet megtanulni nem egy Python-egyszerűségű az tuti. :)

Cargo.toml -be beírod a használni kívánt modul nevét és fordításkor (cargo build) a crates.io -ról lerántja, befordítja.
Ez kb. olyan különbség, mintha Windowsra letöltesz Internetről egy Gimp-et (mint 3rd party szoftvert) vagy Ubuntu alatt "apt install gimp" és az Ubuntu repóból jön a karbantartott.
Lásd még cargo check ... a bugreport alapján szól neked, hogy amely LIB verziót használod, az sérülékeny.

Mi kell a fordítóba?

$ rustup toolchain list
stable-x86_64-unknown-linux-gnu (default)

$ rustup target list | grep installed
thumbv7m-none-eabi (installed)
x86_64-unknown-linux-gnu (installed)

Lásd még: https://docs.rust-embedded.org/cortex-m-quickstart/cortex_m_quickstart/…
A lefordítot állományból ARM Cortex M3 esetén a mikrovezérlőre arm-none-eabi-objcopy -O binary <LEFORDÍTOTT> <CÉLFILE> módon állítod elő.

Mit támogatnak jelenleg STM32 vonalon?  https://github.com/stm32-rs/stm32-rs#supported-device-families (katt rá a családra)

Állítólag Tolsztoj mondott valami olyasmit, hogy mindenki a maga módján teszi tönkre az életét...

Én már a Rust "Hello World!"-nél besokalltam azon, hogy println() helyett println!()-et kell írni. Akkor már inkább maradnék pl. a C/C++ ARM mbed-nél 

#include "mbed.h"
#include "USBSerial.h"
 
USBSerial serial;       //Virtual serial port over USB 
int main(void) { 
    while(1) {
        serial.printf("I am a virtual serial port\r\n");
        wait(1);
    }
}

STM32F411 és STM32F401 egy valóban jól használható cucc. Arduino alól használom, USB porton megy a feltöltés (Stm cube app-ot hivogatja), csak macera a boot0+reset gombokat nyomkodni minden feltöltés előtt. De meg kell tanulni a 4/perc-et 4/napra csökkenteni. Amire használom: atmega328 lassú, esp32 pedig sok (csak kikapcsolnám a wifi+bt-t, akkor meg minek). Kicsit óczkodtam a használatától, de szépen megy. Egy multiplatform (stm32 es esp32) projektet építettem vele. Ha esp32 van jelen, akkor wifi radio, stm32 esetén pedig nrf24-es radio amin kuldi ugyanazokat a csomagokat.

Arduino egy devkit es framework neve is. Rengeteg arduino-alapu microcontroller van ma mar, ahogy irtak, a legdurvabbak ARM alapu multicore lapkak.

Aliexpress-rol viszont bagoert lehet rendelni eleg durva darabokat. En most a wemos d1 mini -vel tolom, ez 3 euro korul van, tud wifit es van benne fel mega flash. Eleg kellemes kis kutyu. Arduino-n kivul tud meg freertos-t is (szemelyesen nem probaltam, alap arduino eleg volt es rengeteg lib van hozza). Ha programozni akarod, usb-re lehet kotni (van a lapkan egy usb-serial).

Ha feljebb akarsz menni, akkor ott van az ESP32 kulonbozo valtozatai (ezek felszereltsegtok fuggoen 5-10 euro korul vannak), ezekben van battery charger, bluetooth, wifi, 2 magos/240mhz valtozatok is.

De a Wemos d1 mini -nek van egy nagy elonye, ami nagyon keves lapka tud: 3.3V-on mukodik, de a labai 5V kompatibilisek. Vagyis kiadni output pin-eken 3.3V-ot ad ki, de ha rakotsz egy 5V-os ketyeret, akkor szepen elszaladgal vele. A d1 mini amugy egy esp8266/8285 kore epitett icipici dev board.

Igazabol azt kell eldontened, hogy mit akarsz. Ha ssh-zni akarsz es egy komplett OS-t, X-et, hdmi-t, stb..., akkor raspberry a jo valasztas. Ha realtime akarsz lenni, vagy meret/fogyasztas szamit, esetleg pici fuggetlen projekteket szeretnel csinalni celeszkozzel, akkor a microcontroller a jobb valasztas.

Ezt hogy érted?

Veszel egy nanót, letöltöd az Arduino IDE-t, és nézegeted, próbálgatod.

 

Ha többet akarsz belefeccölni, lehet venni "egységcsomagot", amiben mindenféle input-output eszközök is vannak.

Némi toldókábel, és lehet összedrótozni tesztáramköröket.

A fejlesztőben mintaprogramok is vannak a perifériák kipróbálásához.

Ha egy szervót,  léptetőmotort, LCD-t akarsz használni, a pluszban letöltött libekhez is adnak example progikat, amikből lehet ollózni.

"Normális ember már nem kommentel sehol." (c) Poli

Az Arduino "open hardware", ezért az USB-soros illesztőt nem akarták bármely zárt gyártó chipjével megcsinálni, helyette feltettek egy jóval drágább ATMega chipet, amit USB-soros kontrollernek programoztak. Linux alatt nem kell hozzá driver, a windowsoos driver meg jön az IDE programmal. (Az uno és mega modelleknél. A nanora ftdi232-t tettek eredetileg.)

A kínai klónok azért (is) olcsóbbak, mert ezt a plusz AVR-t kiváltották egy CH340G chippel. Ehhez "sajnos" win alá le kell tölteni a gyártótól a drivert. Linux alatt ez se kell.

"Normális ember már nem kommentel sehol." (c) Poli

Fiammal szeretnék majd Arduionózni, szerzorok lesznek hozzá más projektből. Az érdekelne, hogy oktatási céllal melyik baseboard, esetleg melyik KIT a legjobb.

Ha micro:bithez vannak szenzoraim, azt használhatom Arduinoval?

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

A mikro:bitet nem ismerem.

Az egyszerűbb Arduinok 5 voltosak. Ha szenzoraid ezt elviselik, akkor használhatod. (De ha 3 volt only, akkor meg be lehet közé tenni szintillesztőt, 2 és 4 csatornásakat ismerek, elég olcsón beszerezhetők.)

 

Én hőmérőket, RTC-ket, mindenféle LCD-ket meg végállás-kapcsolókat használok vele. Ha véletlenöl ILI9314-es LCD-t illesztenél, azzal vigyázz, mert 3 V only.

Ja, meg motorokat :)

 

Itt van egy induló készlet:

https://www.emag.hu/arduino-indulo-keszlet-kt0001-tc-243/pd/DSPV6PMBM/?…

Ez meg tán ugyanaz:

https://caxtool.hu/arduino_uno_kezdo_keszlet_4

 

De inkább guglizz rá magad, többféle összeállítas létezik, pl:

https://www.hestore.hu/prod_10036694.html#

"Normális ember már nem kommentel sehol." (c) Poli

Az egyszerűbb Arduinok 5 voltosak. Ha szenzoraid ezt elviselik, akkor használhatod. (De ha 3 volt only, akkor meg be lehet közé tenni szintillesztőt, 2 és 4 csatornásakat ismerek, elég olcsón beszerezhetők.)

Szia!

Ilyen szintillesztőket tudsz linkelni ide? Ezzel tervezünk indulni: https://www.aliexpress.com/item/4001360493602.html Aztán ha beválik és van lelkesedés áttérni Arduinora, akkor a szenzorokat felhasználnám ott is. Valószínűleg UNO lesz, de addig még úgyis eltelik pár év.

A magyar ember jelképe a hátrafelé nyilazás. Vakon rohanunk a semmibe, miközben a múltunkat támadjuk.

Ilyenek vannak nekem:

https://www.aliexpress.com/item/4000587260340.html?spm=a2g0o.productlis…

 

Illetve ebayról, és volt egy kis gebanc: a nyák felirata nem stimmelt az alkatrészekhez. Le kellett követnem a kapcsrajzot, hogy mit hová merjek kötni.

"Normális ember már nem kommentel sehol." (c) Poli

Szerintem fordítva ülsz fel a lóra. Ki kellene dolgozni, vagy keresni egy tematikát.
Mit szeretnél a gyereknek megtanítani, mit szeretnél neki megmutatni és mi az ami őt érdekli?
Egyébként a legtöbb megépíthető projekt az UNO -ra alapul azaz az ATMEGA328 a 2k SRAM -al (az ilyen chipekben ez szép nagy memória). A többi ATmega328 alapú panel egyre kisebb, inkább valahova beépíteni jó.

OFF: Gyerekkoromban, volt mindenféle építő játékom (pl. különféle fémépítők, műanyag készletek) de az egészből nekem csak a kivitelezés volt az érdekes, utána szétszedtem és próbáltam valami mást összerakni (nem épp a mellékelt brosúra alapján). Van aki szereti a játék vasutat, engem inkább a kivitelezés érdekelt, bármilyen változatos terep és "összefonódó" hálózat nem kötött le egy óránál tovább.

* Én egy indián vagyok. Minden indián hazudik.

Azért volt már ezzel gondom. A breadboard kontaktusok nem túl megbízhatóak.
Viszont (ahogy az RPI pico is) simán be is forraszthatod egy próbapanelba, erre a pro micro tűnik a legjobbnak, de a nano is jó lehet (USB soros akár a CH340 -el). Ha úgy szimpatikusabb, lehet csatlakozó sort a próbapanelra is forrasztani.
(Próba panel alatt a 2,54mm raszterben fúrt paneleket értem, van hosszú egybe csík, rövid 2 és 3 furat összefogva, illetve csak egy-egy furat)

* Én egy indián vagyok. Minden indián hazudik.