Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   764 / 850
(#) Jonni válasza Skori hozzászólására (») Jan 22, 2023 /
 
EZ CSAK TIPP. Azért lassú mert arduino-ból konvertálni kell STM-re és ez időbe tellik
(#) Kovács Tibor válasza Josi777 hozzászólására (») Jan 22, 2023 /
 
Sikerült az eredeti egyszerűbb módszerrel (csak már kikommenteletem), a soros porton látszik hogy aktuális időt ír.:
(#) Kovács Tibor válasza Jonni hozzászólására (») Jan 22, 2023 /
 
Milyen módszerrel másoljátok ide a cketh-ket hogy így szépen végiggörgethető legyen?
(#) mnyugger válasza Kovács Tibor hozzászólására (») Jan 22, 2023 /
 
ezzel

kód.jpg
    
(#) Kovács Tibor válasza mnyugger hozzászólására (») Jan 22, 2023 /
 
kösz!
Akkor mindjárt ki is próbálom:
  1. //******************SD logger paraméterek*****************
  2. sdcard_file = SD.open("data.txt", FILE_WRITE);
  3.   if (sdcard_file) {    
  4.     sdcard_file.print(rtc.getDateStr());
  5.     sdcard_file.print("     ");  
  6.     sdcard_file.print(rtc.getTimeStr());
  7.     sdcard_file.print("     ");
  8.     sdcard_file.print(count_gaz_indulo+count_gaz*0.005);
  9.     sdcard_file.print("     ");
  10.     sdcard_file.print(count_viz_indulo+count_viz*0.005);
  11.     sdcard_file.print("     ");
  12.    
  13.     sdcard_file.println("     ");
  14.     sdcard_file.close(); // close the file
  15.   }

Hogyan lehez beállítani hogy adott időben írjon a SD-re?
(#) Skori válasza Jonni hozzászólására (») Jan 22, 2023 /
 
Korábban közel sem volt ennyire lassú.
A sima mentés (ami mindössze néhány kb. lemezre írása) is vagy 20 másodperc, ez nagyon durva.
Ugyanazt a fájlt megnyitva pl. NPP-vel még 0,1 másodperc se kell hozzá.
(#) benjami válasza Skori hozzászólására (») Jan 22, 2023 /
 
Szerintem nézd meg a feladatkezelőben (vagy linux alatt az annak megfelelőben), hogy mennyi erőforrást használ.
(#) vargham válasza Jonni hozzászólására (») Jan 22, 2023 /
 
Semmit nem kell sehová konvertálni.
Az Arduino sima C/C++ függvények és osztályok gyűjteménye.
A fordító (GCC) közvetlenül fordítja, pont úgy mint a felhasználó által írt kódot.
Atmega mikrokontrollerekre az AVR-GCC, STM32-re pedig az ARM-GCC.
(#) Jonni válasza vargham hozzászólására (») Jan 22, 2023 /
 
És a bootloader miatt nem lehet?
(#) vargham válasza Jonni hozzászólására (») Jan 22, 2023 /
 
A fordításhoz semmi köze. A bootloader a feltöltéshez kell.
(#) Skori válasza benjami hozzászólására (») Jan 23, 2023 /
 
Látszólag jelentéktelen az erőforrás használat is. Nem tudom, hogy tulajdonképpen mit csinál 20s-ig, amikor egy lényegében csak egy egyszerű szövegfájlt ment.
(#) Skori válasza Skori hozzászólására (») Jan 23, 2023 /
 
Megkerültem a problémát. Letöltöttem egy újabb verziót (1.8.19.zip), de ez ugyanúgy belassult. Valami a korábban tárolt adatok miatt akaszthatta ki (users/..../local settings/arduino), mert átalakítottam hordozható verziónak, újratelepítettem az alaplapokat (ESP8266, STM32, DUE) de ezeket így már a saját mappájába rakta. A projekteket is átraktam a saját mappájába. Így most újra használható sebességgel működik. A hordozható verzió mentése is egyszerűbb lesz, (és így akár több példányban is futtatható, eltérő beállításokkal). A most jól működő verzióról persze egyből egy mentést is csináltam, a régebbi verziót meg kukáztam.
(#) Kovidivi hozzászólása Jan 23, 2023 /
 
Sziasztok.
Most próbáltam ki először a https://chat.openai.com/chat-t, és nagyon meggyőző. Most íratom vele a lépcsővilágításom programját, és nagyon jól halad vele Mintha egy programozónak mondanám, mit, hogyan csináljon, sőt, ha kijavítom, hogy a PWM 0 az sötét, a 255 meg világos, akkor még bocsánatot is kér, és korrigál. Hihetetlen. Ha ez ilyen jól mőködik, lassan nem is kell tudnunk programozni. Jól kell fogalmazni, egyszerűen kell írni, és a végeredmény is jó lesz. Persze kell kézzel kicsit módosítani, de ha leírom neki, akkor azt is megcsinálja. Érdemes kipróbálni, nagyon okos.
(#) Kovidivi válasza Kovidivi hozzászólására (») Jan 23, 2023 /
 
Egy példa, hogy mit is tud 2 oldalnyi magyarázás után:

Én: "Azt szeretném elérni, hogy a lépcsőfok ne hirtelen kezdjen el világítani, hanem 1mp alatt érje el a szükséges fényerősséget. "

AI: Az animációs hatás eléréséhez ajánlom, hogy használj egy for ciklust a LED szalagok fényerejének fokozatos beállítására. A ciklusban a LED szalagok fényerejét egyre növeled, vagy csökkented, minden ciklusban a analogWrite függvénnyel írva a LED szalag pinjére.

Az animáció időtartamát millis() függvénnyel mérheted le, és a kívánt időtartamot elérte után állítod be a végleges fényerőt.

  1. void loop() {
  2.   if (digitalRead(switchPin) == LOW) { // ha a kapcsoló le van nyomva
  3.     step++; // növeljük a lépcsőfokot
  4.     if (step > numOfSteps) { // ha elértük a legutolsó lépcsőfokot
  5.       step = 0; // visszatérünk az első lépcsőfokhoz
  6.     }
  7.     unsigned long startTime = millis();
  8.     while (millis() - startTime < 1000) { // várunk 1 mp-et
  9.       for (int i = 0; i < numOfSteps; i++) { // ciklus a LED szalagokon
  10.         if (i == step) { // ha a jelenlegi lépcsőfokon vagyunk
  11.           brightness = map(millis()-startTime, 0, 1000, 0, 255); // fokozatosan növeljük a fényerőt
  12.         } else if (i == step-1 || i == step+1) { // ha az előttünk vagy utánunk levő lépcsőfokon vagyunk
  13.           brightness = map(millis()-startTime, 0, 1000, 0, 128); // fokozatosan növeljük a fényerőt
  14.         } else {
  15.           brightness = map(millis()-startTime, 0, 1000, 0, 64); // fokozatosan növeljük a fényerőt
  16.         }
  17.         analogWrite(ledPins[i], brightness); // állítjuk a LED szalagok fényerejét
  18.       }
  19.     }
  20.   }
  21. }

Az így elkészített kód fokozatosan világítja be a lépcsőfokokat 1mp alatt, és végül az adott lépcsőfokon a teljes fényerősséget éri el.

Ezt mind az AI írta, a kommenteket is, sőt, összefoglalót is írt előtte, mit, hogyan kellene készíteni! Logikailag rendben van, lehet finomítani, de én pl. teljesen máshogy kezdtem volna neki, készítettem volna egy óriási tömböt, amit feltöltöttem volna a szinusz értékeivel, és ez alapján állítottam volna a fényerőt. De az a durva, hogy ezt is megcsinálná az AI, ha szeretném. Új világ jött le, úgy látom. 2 nyelven próbáltam, tökéletesen megy.

Egy hibát már találtam is benne, egyszerre csak egy lépcsőfok fényerejét állítja, nem pedig a környezetemben levőékét. Ettől függetlenül jól halad, ügyes! Vagy lehet, hogy nem is értem a kódját? Hm. Ki kell próbálni!
A hozzászólás módosítva: Jan 23, 2023
(#) Jonni válasza Kovidivi hozzászólására (») Jan 23, 2023 /
 
Valami nem jó ezzel..

Error.png
    
(#) Josi777 válasza Jonni hozzászólására (») Jan 23, 2023 /
 
Mert 2 plusz karakter ("-t") belekerült a link-be. Helyesen: ChatGPT
(#) Kovács Tibor válasza Kovács Tibor hozzászólására (») Jan 23, 2023 /
 
Sziasztok!
Azt milyen módszerrel tudom elérni hogy pl. óránként írjon az SD-re és közben fusson a program.
Eddig csak olyan példákat találtam ahol delay kódot használt, az nekem nem jó mert addig tétlen az egész.
(#) Panhard válasza Kovács Tibor hozzászólására (») Jan 23, 2023 /
 
  1. unsigned long temp_millis;
  2. void loop() {
  3.    if(millis()>temp_millis){temp_millis = millis()+3600000; meghiv_60perc();}  
  4. }
  5. void meghiv_60perc(){
  6. //óránként egyszer fut le
  7. }
(#) Kovács Tibor válasza Panhard hozzászólására (») Jan 23, 2023 /
 
Szuppeer!
Köszönöm.
(#) Kovács Tibor válasza Panhard hozzászólására (») Jan 23, 2023 /
 
Azt is tudja hogy rtc mellett pl pont óra.:00:00 -kor csinálja a mentést?
(#) Bakman válasza Kovács Tibor hozzászólására (») Jan 23, 2023 /
 
Ha van RTC, akkor másodpercenként megkérdezed tőle az időt és ha a perc és a másodperc is nulla, mentesz. Az RTC-nek általában van 1 Hz-es kimenete, ha az billen (fel- vagy lefutó él), mehet az időkérdezés, nem lesz csúszás a kiolvasásokban.
A hozzászólás módosítva: Jan 23, 2023
(#) Panhard válasza Kovács Tibor hozzászólására (») Jan 23, 2023 / 1
 
Ha van benne RTC, akkor nem muszáj a millis()-t használni az időzítéshez. Vagy lehet kombinálni, hogy óránként mentsen millis() alapján, de éjfélkor mindenképp mentsen RTC alapján.

  1. bool menthet;
  2. void loop() {
  3.         if(ora==0 && perc==0 && menthet){menthet=false; mentes();}
  4.         if(perc==1){menthet=true;}
  5. }
  6. void mentes(){
  7. }
(#) Massawa hozzászólása Jan 23, 2023 /
 
Sziasztok egy érdekes feladat elött állok

Van egy profi PC program aminek a kezelése csapnivalo. Egy egérrel kell bevinni több ablakba számokat ami meglehetösen lassu, körülményes és gyakran hibás. Ráadásul olyankor arra a képernyore kell figyelni. A számok többsége 3-4 számjegyü.
Kellene valamilyen külsö panel, amin van nehány gomb kiválasztani az ablakot meg valamilyen jelado ( poti vagy enkoder) amivel a számot lehetne bevinni PC-be. Optimális lenne ha a gép akár egy egeret vagy tabletet automatikusan felismerné. Sajnos a fejlesztök kihagyták a local control panel opciot. ( a távoli kezelt berendezés ( USB n ill LANon csatlakoztatva) mindezt tudja. Nekünk meg az kellene, hogy helyböl is lehessen állitani a jellemzöket egyszerüen, gyorsan és ha lehet hibátlanul.
arduino vagy hasonlo elektronika OK,
Mit javasoltok merre keressek valamilyen ötleteket?
(#) Bakman válasza Massawa hozzászólására (») Jan 23, 2023 /
 
Mármint egérrel hogyan kell bevinni értéket? Rákattintasz a mezőre, felugrik a képernyőre egy numerikus billentyűzet és kattintgatni kell?

Potival vagy enkóderrel kicsit körülményes lenne 3-4 jegyű számokat pontosan és gyorsan eltalálni.

Azt írod, távolról könnyen megoldható az értékek bevitele. Az nem opció, hogy a masina mellé raktok egy egyszerű számítógépet és azon keresztül viszitek be az adatokat?
(#) sargarigo válasza Massawa hozzászólására (») Jan 24, 2023 /
 
Numpadnál gyorsabban nem lehet számokat bevinni, az a billentyűzeteten alapból rajta van. Ha.a kezelőfelület amúgy mindig ugyanúgy néz ki, akkor kell emulálni egy egeret, csak nem mozgatni kell hanem fix pozíciókba ugrani és katt. Ezt lehet egy gomb megnyomására indítani. Szerintem hagyományos billentyűzettel is meg lehet ezt így oldani (programozással). Az én elgondolásom pedig egy külső eszköz, ami elhiteti magáról hogy ő egy egér, a tobbi ugyanaz. Ez viszonylag egyszerű, az usb hid irányába kell keresni, arduval is megoldható.
A hozzászólás módosítva: Jan 24, 2023
(#) JZoli válasza Massawa hozzászólására (») Jan 24, 2023 /
 
Esetleg egy ilyen megkönnyítené a dolgot:Bővebben: Link
(#) Massawa válasza Bakman hozzászólására (») Jan 24, 2023 /
 
Jelenleg azt csinálja, hogy ha a mezöre ugrok az egérrel az ott levö számot lehet az egér görgöjével változtatni (0-450 tartomanyban).
Az a baj, hogy ( azt hiszem már valahol irtam) hogy a távol egy antennát jelent fennt a hegyen kb 10 km-re a rádioamatör hazátol. Ott van egy “remote locator” nevü arduinos doboz ami 2-3 gombbal forgatja az antennat. Ezt a mozgást az otthoni PC ( HomePC) gond nélkül làtja.
A kolléga ugyanilyen egyszerü kezelö szerkezetet szeretne otthon is és nyilvánvalo, hogy versenyeken az idö is számit, de a HomePC-n ilyen opcio nincs, hanem vannak ablakok, meg az egér. Nem is értem, hogy a szép profi szoftwarehez nincs egy opcio - local control ahova, be lehetne csatlakoztatni otthon is egy olyan pár gombos dobozkát ( a barátom egyelöre csak forgat, de már dolgozik a mechanikán, hogy az azimutot is változtatni tudja, azt is tudja ugy a dobozka mint a SW is).
(#) asch válasza Massawa hozzászólására (») Jan 24, 2023 /
 
Ez szerintem teljesen szoftveres probléma, az Arduino-tól csak bonyolultabb lesz. Minden szükséges dolog a számítógépen van, nem érdemes egyedi hardvert építeni. Az egér nem fix pozíciót ad, hanem elmozdulást, ahhoz hogy ezzel irányíthasd tudnod kell, hogy előtt hol van az egérkurzor. Ha már le tudod kérdezni szoftverből - tehát tudsz programot futtatni a gépen - akkor meg már a teljes automatizálást is megcsinálhatod. Vannak programok automatizálásra, amik képernyő tartalmakat keresnek és egér eseményeket szimulálnak ezekre építve előre megírt program szerint. Például ezzel (több mint 10 éve láttam működni, a mostani verziót nem ismerem): https://www.autoitscript.com/

Valami olyan programot írnék hozzá, ami gombnyomásra autoit vagy hasonló szkripteket futtat és nyomogatja a gombokat. Windowson nem tudom hogy lehet ilyet csinálni, Linuxon vennék egy numerikus billentyűzetet (ahogy más is írta), letiltanám mint normál bemenetet és egy ilyen automatizáló programba belecsatornáznám.
(#) asch válasza Massawa hozzászólására (») Jan 24, 2023 / 1
 
Legutóbb említetted, hogy ez egy open source szoftver. Ha az, akkor sokkal ésszerűbbnek tűnik beletenni ezt a funkciót, mint körbetákolni.
(#) Massawa válasza asch hozzászólására (») Jan 24, 2023 /
 
Én is pontosan ezt gondolom. Már kértem a kollégát, hogy vegye fel a kapcsolatot a SW fejlesztöivel, hogy alakitsanak ki egy “local control panelt” opciot ( a Setupban kiválaszthatot) ami elfogadna egy helyi USBs dobozt pár nyomogombbal azaz, arrol a dobozrol egyszerüen kézzel lehetne lentről is forgatni az antennát. Ez lenne a cél.
Én nem vagyok rádioamatör de gondolom amikor fel akarod venni valakivel a csatlakozást, akkor jol jön, föleg ilyen extrem körülmények között ha az antennat finoman forgatni is tudod, hogy optimalizáld a vételt. Ezt a HomePC SW nem igen teszi lehetövé.
A hozzászólás módosítva: Jan 24, 2023
Következő: »»   764 / 850
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem