Hirdetés

2024. június 9., vasárnap

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.hu

Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.

Összefoglaló kinyitása ▼

Hozzászólások

(#14251) Janos250 válasza Aryes (#14250) üzenetére


Janos250
őstag

Így:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
//            client.println("Connection: close");
            client.println();
client.println("<!DOCTYPE html><html>");

stb.

A close-t csak azért hagytam benne, hogy látszódjék, hogy ki van kommentelve.

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14252) Janos250 válasza Aryes (#14250) üzenetére


Janos250
őstag

"tíz év webfejlesztői"

Hogy adjuk meg a portot?

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14253) Janos250 válasza Aryes (#14250) üzenetére


Janos250
őstag

Ha esetleg ez segít:
remotePort: 49863 localPort: 80
remotePort: 49865 localPort: 80
remotePort: 49867 localPort: 80
remotePort: 49869 localPort: 80

GET /green/on HTTP/1.1
Host: 192.168.0.26
User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:83.0) Gecko/20100101 Firefox/83.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: hu-HU,hu;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Connection: keep-alive
Referer: http://192.168.0.26/red/on
Upgrade-Insecure-Requests: 1

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14254) Tankblock válasza Janos250 (#14249) üzenetére


Tankblock
aktív tag

Szia,

ESP8266 csináltam, ott a WebSockettel sok mindent el lehet érni. Csak 1x kellett elküldeni a weblapot benne a javascripttel, majd az adatokat WebSockettel oda vissza.... Ez a megoldás 1 lapnál jól működött

Release the Beast....

(#14255) Aryes válasza Janos250 (#14252) üzenetére


Aryes
nagyúr

HTML-ben sehogy. Nem hiszem, hogy a válasz a fejlécek körül keresendő, magát a webszervert kellene megnézni, miért nem zárja le a csatornát az előző session végén. Próbáltad másik library-vel?

A Connection: close kikommentelése gondolom már a hibakeresés során történt, de szerintem kár volt.

Nincs az oldalon egy olyan hivatkozás, amit próbál az esp-ről betölteni, de nem kap választ? Jó lenne többet látni a kódból, mert így csak sötétben tapogatózhatunk. :)

A WebSocket jó ötlet.

[ Szerkesztve ]

(#14256) Janos250 válasza Tankblock (#14254) üzenetére


Janos250
őstag

Köszi.
A websocket nekem egy ismeretlen terület, de ahogy látom van hozzá infó a neten. Belenéztem a forráskódjába, és - úgy látom - ugyanarra a Client osztályra épül, amit én gyalog módszerrel használok. Mindenesetre kipróbálom. ESP8266-on nem volt problémám, legalábbis nem vettem észre. Az úgy tűnik, ment rendesen, nem akadt ki.
Az ESP8266WEBserver-t használtam, az kényelmes, és kedveltem. Régebben az ESP32-n is ment, de mostanában nem bírtam működőképes állapotba hozni, ezért mentem le az alapokhoz, mert a többi WEB szerverrel is csak kevés megnyitást lehetett csinálni, utána kiakadt.
Korábban csináltam egy "echo" szervert ESP32-re ugyanígy az alapokra építve (netről az alapjai) és tökéletesnek tűnt a működése.
Be lehetett rá akárhányan egyszerre jelentkezni valamiféle put teletype programmal (putty), vagy telnettel, és ha valaki bármilyen karaktert küldött, azt egyből elküldte mindenkinek. Ez jól működött ebből gondoltam, hogy menni fog. Valahogy a http (html) protokollt kellene ügyesebben kezelni, hogy ne minden alkalommal szakítson meg.
Egyébként azt láttam, hogy valamicskét javít a helyzeten, ha se a String (nagybetűs, azaz spéci Arduino), se a string (kisbetűs, azaz szabvány C++) osztály példányaira nem használom a c+="akármi" gyűjtögetést. Úgy gondolom, hogy utólag azokat a szanaszéjjel tárolt darabjait nem tudja rendesen felszabadítani, vagy legalábbis elaprózott lesz a felszabadított terület.
Ezt az irodalomból vett programot próbáltam használni, de valamiért nem sikerült. Rákerestem a hibajelzésre, és mindenütt csak a megválaszolatlan kérdést találtam, vagy legfeljebb annyi választ, hogy ez nem megoldott. Nem a net kezelésében lehet a hiba, hanem valahogy a heap kezelésben, csak itt jön elő látványosan, és csak akkor tapasztalom emberi mennyiségű (100 alatti) elérésnél, ha nagy a program. Kis programmal 180-ig próbáltam, addig nem jött elő hiba. Akkor meguntam, és nem folytattam.

WiFiClient client = server.available(); // Listen for incoming clients
if (client) {  
  string currentLine = "";  // make a String to hold incoming data from the client    
  string header = "";  
  while (client.connected()) {  // loop while the client's connected
   if (client.available()) { // if there's bytes to read from the client,
    char c = client.read(); // read a byte, then
    header += c;
    if (c == '\n') { // if the byte is a newline character
     // if the current line is blank, you got two newline characters in a row.
     // that's the end of the client HTTP request, so send a response:
     if (currentLine.length() == 0) {
      // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
      // and a content-type so the client knows what's coming, then a blank line:
      client.println("HTTP/1.1 200 OK");
      client.println("Content-type:text/html");
      client.println("Connection: close");
      client.println();
client.println("<!DOCTYPE html><html>");  // Display the HTML web page
stb.
                        
client.println("</body></html>");  
client.println();  // The HTTP response ends with another blank line

client.stop();

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14257) Janos250 válasza Aryes (#14255) üzenetére


Janos250
őstag

" webszervert kellene megnézni"
Nincs WEB szerver. Gyalog megy.
client.println("")-el, illetve
client.write()-al.

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14258) Janos250 válasza Janos250 (#14257) üzenetére


Janos250
őstag

Mármint a
WiFiServer
client-jával, az meg nem WEB, hanem bamba.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14259) Aryes válasza Janos250 (#14257) üzenetére


Aryes
nagyúr

Tehát a wifi szerver a webszerver. ;)

Úgy emlékszem, hogy korábban te linkeltél egy olyan string library‐t, ami nem fragmentálja szét a heap-et.

(#14260) Aryes válasza Janos250 (#14256) üzenetére


Aryes
nagyúr

Nem találtam a linket a topikban, akkor valószínű én találtam ezt önszorgalomból:
SuperString library

(#14261) Janos250 válasza Aryes (#14260) üzenetére


Janos250
őstag

Ezt nem ismertem, köszi, majd kipróbálom! :)
Érdekesnek tűnik!

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14262) gyapo11 válasza Aryes (#14259) üzenetére


gyapo11
őstag

Csak a partszélről kérdezem, hogy nem lehet, hogy a servereken futó php nem pont ugyanazt küldi a böngészőnek, mint a soronként beírt html forrás? Olyasmire gondolok, hogy bináris header, ami nem olvasható szövegként, és a böngésző tudja értelmezni. Persze az esp is küldhet ilyet, nem tudom.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#14263) JozsBiker


JozsBiker
aktív tag

Sziasztok !

Van esetleg valakinek tapasztalata, hogy egy DS 3231 RTC mennyi ideig tud működni egy gombelemről ? Itt olvastam, hogy az áramkör fixen töltené a bele helyezett elemet ami ugye nem egészséges, ezért célszerű ezt a töltést megszüntetni. Úgy viszont fixen az elemről fog működni, és nagyon nem mindegy mennyi ideig. Köszi.

(#14264) Gergosz2 válasza JozsBiker (#14263) üzenetére


Gergosz2
veterán

Nem, nem fixen elemről fog működni. Csak a belső RTC fog arról menni ha a tápfesz beesik bizonyos szint alá. A datasheet power control része írja le .

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#14265) JozsBiker válasza Gergosz2 (#14264) üzenetére


JozsBiker
aktív tag

Ahh, szuper, köszi !

(#14266) mprrpm válasza JozsBiker (#14263) üzenetére


mprrpm
tag

Kb. 4 éve megy melóhelyen egy digitális órába, köszöni szépen jól van. :C
CR2032-nek a feszültségét még nem mértem a hozzáférhetőség miatt.
Az elektronika az álmennyezet fölé van bemókolva és onnan szalagkábelen kivezetve a kijelző és az infra vevő a beállításhoz.

érdekesség: a 3-4 év alatt összesen +19 másodpercet szedett össze !

MPETYA

(#14267) Janos46


Janos46
tag

Sziasztok!
Lenne egy kérdésem. Arduino + TM1637. Azok a programok amelyek a TM1637.h-t használják, egyik sem működok, a libraries-ben az ehhez tartozó 4 féle könyvtárral is próbálkoztam sikertelenül. A TM1637Display.h-s programokkal nincs semmi gond, tehát nem hw a hibás. Nincs véletlenül valakinek ótlete a hibára, vagy egy rövidke működő programja a libraries-be való könyvtárral együtt próbára?

Artillery, lelkes újonc vagyok, tanulni akarok!

(#14268) Aryes válasza gyapo11 (#14262) üzenetére


Aryes
nagyúr

Hát a kérdés jó, de tudomásom szerint nincs olyan, hogy bináris http header. A PHP is plain text formában küldi a header-t, a különbség az, hogy a legtöbb header-t nem kell megadni, mint mondjuk a PERL, hanem automatikusan küldi.

(#14269) Aryes válasza Janos46 (#14267) üzenetére


Aryes
nagyúr

A hibáról és a hibaüzenetről jó lenne többet tudni.
Próbáltad már kicserélni a TM1637.h-t egyszerűen TM1637Display.h-re cserélni a kódban? A felhasznált library-khez és a sikertelenül fordított kódhoz légyszi adj linket!
Az jutott még eszembe - már én is futottam bele olyanba -, hogy ha nagyon régi a kód, lehet, hogy úgy van megírva, hogy az arduino IDE valamelyik korábbi verziójával lehet csak lefordítani. Emiatt van fent nekem két verzió is, az attiny kontrollerek miatt az 1.6, amit nem frissítek, meg portable verzióban egy friss.

(#14270) weiss válasza Janos250 (#14249) üzenetére


weiss
addikt

Most megnéztem wiresharkkal apache felé, és a firefox valóban mindenre új kapcsolatot nyit, de utána zárja is őket. Nálad nem is zárja a kapcsolatot?

[ Szerkesztve ]

I did nothing, the pavement was his enemy!

(#14271) Janos250 válasza weiss (#14270) üzenetére


Janos250
őstag

Már nem emlékszem pontosan, hogy asztali gépről, vagy telefonról, és milyen beállításoknál maradtak ott a lezáratlan kapcsolatok. Most zárja őket PC-ről, valami más a hiba. Megpróbálom kidobni az irodalmi programot, és saját magam újraszervezni az egészet. Ez más esetekben párszor már bejött.
Nálam a Firefoxról
"Connection: keep-alive" -al jön.
Hogy konkrétan mit csinál rá az ESP, azt még próbálgatom, ha lesz egy kis időm.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14272) Janos46 válasza Aryes (#14269) üzenetére


Janos46
tag

A cserét már próbáltam, így hibajelzéseket kapok. Az erdeti futtatásával hibajelzés nincs, csak éppen nem müxik. Az alábbi linkekben megtalálható többféle TM1637.h fájl. Az első link kommenteket is tartalmaz a programhoz és megadja a működéshez szükséges TM1637.h könyvtárát is. Remélem elég ennyi infó is. Van lehetőséged kipróbálni a programot? Esteleg bárki aki olvassa ezt a levelet, ki tudná próbálni?
https://robotchip.ru/obzor-semisegmentnogo-indikatora-na-mt1637/
https://voltiq.ru/tm1637-and-arduino/
http://arduino-kid.ru/indicator_TM1637
https://drive.google.com/file/d/1XMhJqxc61jPNbxV5V-xhDbtgeRYmFXoY/view

Artillery, lelkes újonc vagyok, tanulni akarok!

(#14273) Aryes válasza Janos46 (#14272) üzenetére


Aryes
nagyúr

Van TM1637 kijelzőm, de nekem nem okozott problémát beüzemelni, egy nagyon egyszerű, spi-hez hasonló protokollt használ, szinte lib nélkül is lehet használni.
Most nincs időm, majd később megnézem ezeket, de addig megkérdezném, hogy ahelyett, hogy letöltötted a lib-et mindenféle helyről, próbáltad már az arduino IDE saját library kezelőjében megkeresni és telepíteni?

A linkek közül melyik volt az, amelyik nem működött? Gondoltál már arra, hogy az orosz nyelvű kommenteknek köze lehet a problémához?

Még valami: próbáltad már a library-k mellé adott example kódokat? Azok tutira működnek. Én mindig azokból indulok ki.

[ Szerkesztve ]

(#14274) Janos46 válasza Aryes (#14273) üzenetére


Janos46
tag

Köszi a segítséget, feltettem a 1.6.5-öt és néhány probléma megoldódott. Eddig a 1.8.3 ment és valószínüleg ott lehetett a gond. A felsorolt libek küzül eddig egyik sem ment. Most az eddig nem menteket fogom kipróbálni a 1.6-al. Nem hinném, hogy az orosz oldallal lenne a gond, mert nagyon sok progit töltöttem le és döntő többségéban jók voltak. Mivel közeleg egy nagyon nevezetes nap/éjszaka, és ha nem is lehet felhőtlenül ünnepelni, de azért biztosan kászülsz valamilyen formában rá, ezért ne foglakozz a dolgaimmal, az észrevételeid alapján ügyködök tovább, és ha majd lesznek gonjaim megemlítem. Egyenlőre ennyit. Mégegyszer köszi (meg másoknak is) a tanácsokat és segítséget.
A lehetőségekhez képest jó szórakozást és kovid mentes új évet. :)

Artillery, lelkes újonc vagyok, tanulni akarok!

(#14275) Aryes válasza Janos46 (#14274) üzenetére


Aryes
nagyúr

Neked is, viszont! :K
Később ránézek majd, de jó lenne, ha konkrét kódot mutatnál (pl. pastebin-re feltöltve) konkrét hibaüzenetekkel (screenshot vagy ide másolva), mert hiába töltöm le és fordítom ezeket a kódokat, nem biztos, hogy nálam is előjönnek ugyanazok a hibák.
Addig is azt ajánlom, hogy a library manager-en keresztül kellene letölteni a szükséges lib-eket (amik ott megtalálhatóak), és elsősorban az azokban lévő példakódot kellene nézegetni, az nagy valószínűséggel működni is fog. :)

[ Szerkesztve ]

(#14276) repvez


repvez
addikt

na megérkezett a breadboard és pár ellenállás is. De a problémám ugyan ugy megmaradt.
Még a program ellenörzése után kapok egy hiba uzenetet alulra, hogy a
"hiba Az arduino alaplapra forditásra"
ez a hiba akkor is megjelenik ha nincs rádugva a gépre a panel és akkor is amikor rajta van.
Az aszközöknél ki van választva a nano és a portnál is a COM3as amit az eszközkezelöben irt.
A processornál az old bootloadert választottam.
De ha az alaplap infora megyek, akkor ott az alaplaprol nincs informácioja csak az ID számokat irta. ezzel a kóddal probáltam

#include <Adafruit_AHT10.h>
Adafruit_AHT10 aht;
void setup() {
  Serial.begin(115200);
  Serial.println("Adafruit AHT10 demo!");
  if (! aht.begin()) {
    Serial.println("Could not find AHT10? Check wiring");
    while (1) delay(10);
  }
  Serial.println("AHT10 found");
}
void loop() {
  sensors_event_t humidity, temp;
  aht.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
  Serial.print("Temperature: "); Serial.print(temp.temperature); Serial.println(" degrees C");
  Serial.print("Humidity: "); Serial.print(humidity.relative_humidity); Serial.println("% rH");
  delay(500);
}

(#14277) weiss válasza repvez (#14276) üzenetére


weiss
addikt

Függőségeket felraktad?

"Adafruit Unified Sensor"
"Adafruit BusIO"

I did nothing, the pavement was his enemy!

(#14278) repvez válasza weiss (#14277) üzenetére


repvez
addikt

ha a konyvtárakra gondolsz ami a modulhoz kell akkor igen , betalloztam a librarykat és ott is a menüben.
az abban lévő példa kodot akartam futtatni, hogy biztos, hogy jo legyen .
De mint irtam, ezt ugy is megkapom, hogy nincs rádugva a kártya, csak a kodellenörzést csinálom.

(#14279) weiss válasza repvez (#14278) üzenetére


weiss
addikt

Azért kérdeztem, mert nálam a kódod simán fordul, ha felrakom ezt a két libet. Nekem sincs nanom, fordulni nyilván attól még kellene. Nincs más hibaüzenet?

I did nothing, the pavement was his enemy!

(#14280) repvez válasza weiss (#14279) üzenetére


repvez
addikt

A sensor library volt a gond.
Most lefut és sikerült is a cimeket lekérdezni mindegyik modulrol, tehát elvileg akkor müködik minden és a bekötés is jó.
Viszont nem mindegyiknél kapok eredményt ha a példaprogramot futtatom le.
Ha a nagyon egyszeró adatokat iratom ki az MPU 9250essel akkor jönnek az adatok, de ha nem csak az XYZ adatok kellenek hanem a többi senzoré is akkor csak azt irja ki , hogy started, de a kód többi része nem fut tovább.

A lézeres távolságmérésnél meg azt irja ki ,hogy nem tud bebootolni . a seria monitor müködik és a kód is lefordul hiba nélkül, csak épp nem jön belöle adat .

#include "Adafruit_VL53L0X.h"
Adafruit_VL53L0X lox = Adafruit_VL53L0X();
void setup() {
  Serial.begin(115200);
  // wait until serial port opens for native USB devices
  while (! Serial) {
    delay(1);
  }
  
  Serial.println("Adafruit VL53L0X test");
  if (!lox.begin()) {
    Serial.println(F("Failed to boot VL53L0X"));
    while(1);
  }
  // power 
  Serial.println(F("VL53L0X API Simple Ranging example\n\n")); 
}
void loop() {
  VL53L0X_RangingMeasurementData_t measure;
    
  Serial.print("Reading a measurement... ");
  lox.rangingTest(&measure, false); // pass in 'true' to get debug data printout!
  if (measure.RangeStatus != 4) {  // phase failures have incorrect data
    Serial.print("Distance (mm): "); Serial.println(measure.RangeMilliMeter);
  } else {
    Serial.println(" out of range ");
  }
    
  delay(100);
}

(#14281) Janos250


Janos250
őstag

Szevasztok!
Korábban kérdeztem WiFi ügyben. A probléma nagyjából megoldódott.
Ez az alap:
https://randomnerdtutorials.com/esp32-web-server-arduino-ide/
Nyitott kapcsolatok még mindig előfordulnak, de alig néhány, az már nem gond. Nem a cápával néztem, mert ahhoz kell némi mazochizmus, inkább a cports.exe-t használtam.
Volt még egy alapvető gond is: Index túlcsordulás. Hiába néztem át ezerszer erre keresve, nem találtam meg, végül szinte minden indexet kiírattam, így leltem meg. Egy tömb miközben az adatait rakosgatta, a sajátját beletette a szomszédéba is, és mint tudjuk, ebből baj szokott lenni. ;]

Viszont - szokásom szerint - a String helyett megpróbáltam a string-et használni. Itt futottam bele egy problémába: a string osztály find("valami") tagfüggvénye hibás eredményt ad, csak akkor jó, ha find('C') jelleggel használom. Van valakinek ezzel tapasztalata?

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14282) weiss válasza repvez (#14280) üzenetére


weiss
addikt

Cím biztos, hogy jó? Ha a begin()-ben bekapcsolod a debugot, akkor mit ír ki?

I did nothing, the pavement was his enemy!

(#14283) Aryes válasza Janos250 (#14281) üzenetére


Aryes
nagyúr

Na, ügyes vagy. :C

Ha már mazochizmus: ellensúlyozandó a sok ESP32 alapú projektet, elkészítettem a második projektemet attiny12-vel, assembly-ban. :DDD

(#14284) repvez válasza weiss (#14282) üzenetére


repvez
addikt

Hát a regscanner kod lefuttatása után felismerte és kiirta a 0x39es cimet hozzá
De amugy a kodban nem látom, hogy hol hivatkozna erre a modulra , hogyha más is lenne rákötve akkor honnan tudná, hogy ez ennek szol.

Amugy ma sikerült elöször csinálnom valamit arduinoval, szoval fogalmam sincs hogyan kapcsoljam be a debugot.

A másik kérdésem, hogy , a forditoban nincs sehol sem valami kapcsolo, amivel le lehetne állitani a program futását? csak ugy lehet leállitani ha kihuzom az USB kábelt?
Nincs valami softveres?

Illetve, ha tobb modult akarok használni egy idoben, akkor mit és hogyan tudom egy kodba tenni, hogy ugyan azon a serial monitoron jelenjen meg ?
Mert probálkoztam a két modulhoz tartozo példa kodbol , azokat a részeket átmásolni egy az egyben amik a setup részhez valok, és azokat is amik a loophot, meg a declaráciokat is.
Mindent oda ahogy az eredeti kodban is csak épp a másik alá.
De igy nem lett jo.

(#14285) weiss válasza repvez (#14284) üzenetére


weiss
addikt

A lib szerint a Adafruit_VL53L0X default címe:

#define VL53L0X_I2C_ADDR 0x29 ///< Default sensor I2C address

Szóval lehet ez a probléma. A debugot, ill másik címet a begin() függvény hívásakor tudsz adni:

boolean begin(uint8_t i2c_addr = VL53L0X_I2C_ADDR, boolean debug = false,
TwoWire *i2c = &Wire,
VL53L0X_Sense_config_t vl_config = VL53L0X_SENSE_DEFAULT);

valahogy így:

lox.begin(0x39, true)

SW leállítására: [link]

Én nem ismerem ezt a modult, de nem látom, miért ne működhetne több. Esetleg I2C címütközés lehet probléma, felhúzóellenállás esetleg, passz...

[ Szerkesztve ]

I did nothing, the pavement was his enemy!

(#14286) Janos250 válasza Aryes (#14283) üzenetére


Janos250
őstag

Na, az az igazi mazochizmus. Én ifjú koromban programozgattam assembly-ben a Z80-at, majd a 6510-et, és az Intel 8080-at, annyi nekem bőven elég volt. A PIC-eknél már alig nyúltam a gépi kódhoz. Az ARM-et csak kíváncsiságból néztem meg.

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14287) Aryes válasza Janos250 (#14286) üzenetére


Aryes
nagyúr

Régebben írtam, hogy rendeltem 10db Attiny85-öt Kínából, de Attiny85 feliratú tokban Attiny12-k érkeztek helyettük. Ennek nincs RAM-ja, ezért C-ben nem lehet őket programozni, csak AVRASM-ben. Akkor - nem dobunk ki semmit, ami működik - dacból megtanultam assembly-ban programozni (régen a 6510 nyelvét tanultam). Mostanra írtam hozzá egy csomó saját eljárást: van serial, 2db szervót tudok vele vezérelni, hangot kiadni, időt mérni és most készül az i²c driver. :DDD Saját készítésű i²c szenzort vagy motorvezérlőt tudok belőle gyártani. Időtöltésnek jó. :B

(#14288) weiss válasza Aryes (#14287) üzenetére


weiss
addikt

A C compiler ezt a ramos dolgot nem oldja meg?

I did nothing, the pavement was his enemy!

(#14289) repvez válasza weiss (#14285) üzenetére


repvez
addikt

Köszi valószinuleg ez lenne a probléma , mert a regscanner szerint 0x39es a száma , De beirtam a kodba azt amit irtál és a debugger
error -7 est ir. ami infor találtam rola csak, hogy time out error.

Amugy érdekes, hogyha minden chipnek más más lehet a regszáma akkor egy test kodnál miért nem tesznek egy olyan sort bele, hogy be tudja állitani a sajátjához.
ha a default nem jo, mert igy akor minden modulnál hiba lehet .

(#14290) Aryes válasza weiss (#14288) üzenetére


Aryes
nagyúr

Annak idején keresgéltem rá megoldást, de sajnos nem. :N Nincs se ram, se stack (csak a programszámlálónak van egy 4 word méretű "stack", ezért se változók, se függvényhívás nem lehetséges. Ezek nélkül pedig nehéz C programot írni. :)

(#14291) vargalex válasza Janos250 (#14281) üzenetére


vargalex
félisten

Ugyan csak neten kerestem (nem vagyok gép előtt, csak mobilon), de nem is találom hirtelen a string osztályt. Én leginkább a hagyományos C karakter tömböt használom. Tudod linkelni, amit használsz?

Alex

(#14292) Janos250 válasza vargalex (#14291) üzenetére


Janos250
őstag

Helló!

BUÉK mindenkinek!

Ezt szerettem volna, de nem megy:
http://www.cplusplus.com/reference/string/string/find/
Magát a string osztályt lehet használni ESP32-n, de a find nem jól működik. Pedig sok minden van a string osztályban.
pl.:http://www.cplusplus.com/reference/string/
Vagy én ittam túl sokat. :-)
Az Arduino String osztályában ugyanennek nem find a neve, hanem iindexOf . Az jól működik, bár először azon is meglepődtem, mert az eredményt megkapó változót megszokásból előjel nélkülinek deklaráltam, és csodálkoztam, hogy ha nem talál, akkor 255-öt (=-1) ad vissza indexként.

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14293) Janos250 válasza vargalex (#14291) üzenetére


Janos250
őstag

"Én leginkább a hagyományos C karakter tömböt használom"
Például a "raw string" használata nekem is nagyon jól jön néha.
Ide írom, mert szerintem többen nem ismerik:
Egyben lehet berakni egy karakter tömbbe szöveget.
Mindenfélét bambán, nyersen (raw) bemásol, nem kell például az idézőjelet (") hanyatt-törtvonallal (\) eldugni.
Most például egyben tudom
client.print(enSzovegem) -el
elküldeni a konstans szöveget, nem kell soronként kínlódnom vele.

De mennek az alábbiak is:
Serial.println(enSzovegem);
printf(enSzovegem);
printf("Ez egy minta: %s \r\n",enSzovegem);
const char enSzovegem[] PROGMEM = R"(
HTTP/1.1 200 OK
Content-type:text/html
Connection: close

<!DOCTYPE html>
<head>\r\n
<meta charset="UTF-8">\r\n
<title>WEB proba</title>\r\n
</head>\r\n
<body>
<h1>Ez az én próba szövegem</h1>
  
)";

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14294) vargalex válasza Janos250 (#14292) üzenetére


vargalex
félisten

Hogy próbálod használni?

Alex

(#14295) tonermagus


tonermagus
aktív tag

Sziasztok!

HMC5883L iránytűt kellene használnom egy projektben. Elméletileg ez egy 3 tengelyes iránytű, de nekem csak 1 tengely kellene, a vízszintes. A iránytűhöz letöltöttem egy Library-t, amivel le tudom kérni az iránytű aktuális állását a mágneses északhoz képest. A gond csak az hogy el van csúszva 30-40 fokkal a valósághoz. Nyilván kalibrálni kellene, na itt akadtam el. Az offsetet kellene valahogy kiszámolni, és azt hozzáadni a kódomhoz. De nem igazán értem a logikáját.

Találtam egy kalibrációs library-t, de nem tudom hogy kell használnom:
https://github.com/helscream/HMC5883L_Header_Arduino_Auto_calibration

Illetve nem tudom hogy ez a kalibrálás örökre szól? Egyszer beállítom és mindig jól fogja mutatni? Ha nem akkor létezhet rá valamilyen automatizálás, hogy magától megcsinálja a kalibrálást? Egy kis dobozba kerül beszerelésre, megoldható hogy ha mondjuk megnyomok rajta egy gombot és teszek pár kört akkor automatikusan bekalibrálja magát?

Köszönöm előre is!

(#14296) Tankblock válasza Janos250 (#14292) üzenetére


Tankblock
aktív tag

Szia,

tudnál erre példát mutatni? szívesen kipróbálnám....

Release the Beast....

(#14297) Aryes válasza tonermagus (#14295) üzenetére


Aryes
nagyúr

Lehet hülyeséget mondok, de nem lehet úgy kalibrálni, mint a mobiltelefonokban lévő szenzort, hogy ilyen nagy "8"-as formát írsz le vele a levegőben?

(#14298) Janos250 válasza Tankblock (#14296) üzenetére


Janos250
őstag

Hogy így ketten is rákérdeztetek, írni akartam egy valós egy példát, tényleges eredménnyel. Valamit elszúrhattam korábban, mert most működik, jó indexet ad vissza.
Természetesen így próbáltam:
string header ;
.
.
.
int8_t indexOf ;
indexOf = header.find("heat") ;

Most visszaadja JÓL az indexet.
Így a kérdésekkel sokat segítettek nekem, köszi!
:R
Az rejtély, hogy mit csinálhattam rosszul, de most már mindegy is :)
Így már könnyebb lesz a feldolgozás, mintha a String osztálynál maradtam volna. :)

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#14299) weiss válasza Janos250 (#14298) üzenetére


weiss
addikt

Épp most akartam írni, hogy kipróbáltam a linkelt oldalon levő példákat, és működnek, de akkor örülök, hogy megoldódott.

I did nothing, the pavement was his enemy!

(#14300) Tankblock válasza Janos250 (#14298) üzenetére


Tankblock
aktív tag

Ha jól látom akkor size_t típussal tér vissza, ha az éppen hosszabb mint a int8_t akkor jönnek a gondok..... főleg hogy size_t unsigned típusú integer [link]
minimum uint8_t vagy size_t használj.....

Release the Beast....

Copyright © 2000-2024 PROHARDVER Informatikai Kft.