Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Sziasztok! Csak egy kérdés.
Van mód arra, hogy valamilyen formában Arduino Unot Pythonba programozzunk Arduino IDE, vagy Visual Studio Code-val?
Szia!
Első találat: https://docs.arduino.cc/learn/programming/arduino-and-python Második találat: https://realpython.com/arduino-python/ A hozzászólás módosítva: Ápr 28, 2023
Igen láttam ezeket, de semmilyen infóm nem volt róla. Köszönöm kipróbálom.
De ez egyébként nem ugyanaz mint az Arduino IDE? A hozzászólás módosítva: Ápr 28, 2023
Az utolsó három karakter a my data-ban vezérlő karakterek, nem tudom mire valók pontosan ebben a környezetben. Lásd ASCII táblázat!!! Lehet a LoRA-t vezérlik, vagy csak hiba ellenőrzésre vannak.
Azonban: mydata[4] = (byte) (int32_lat >> 24); mydata[5] = (byte) ((int32_lat >> 16) & 0x00FF); mydata[6] = (byte) ((int32_lat >> 8) & 0x0000FF); mydata[7] = (byte) (int32_lat & 0x000000FF); Ez azért van szerintem, mert a tömböd csak 1byte méretű, ez kell a küldésnek gondolom. A mért adatod meg 32 bites szám, ami 4 byte-os. A >> jelentése bit shift. Azaz az első mydata[4] megkapja a 32 bites szám első 8 bitjét. (ezért van tolva 24-el, mert 32-24=8. Azaz 24 bittel jobbra tolja, azaz csak a felső byte marad meg. A következő már csak 16-al van tolva, azaz megkapja a második byte-ot a 32 bites számból. Az utána lévű & bitenkénti ÉS, ha jól emlékszem azt csinálja, hogy az eredeti változó értékét nem veszi vigyelembe, ahol 00 van. Azaz shiftel ÉS az első byte-ot törli, pontosabban nem veszi figyelembe. A másodiknál már 00 00-van, azaz nem veszi figyelembe a 2. byte-ot. Lehet nem jó pontosan amit írtam, de ez kell neked: https://cdn.arduino.cc/reference/en/language/structure/bitwise-oper...right/ Illetve ez: https://www.arduino.cc/reference/en/language/structure/bitwise-oper...?_gl=1*yehd2b*_ga*Mjk1MTA2MTU3LjE2ODA4NTI4NzU.*_ga_NEXN8H46L5*MTY4MjY4MzUwOS4xNi4xLjE2ODI2ODQ1NjQuMC4wLjA. Ilyesmiért van, de pontosan most én sem értem, de alinkeken végigmész, megérted szrintem.
Nem kell szerénykedni, valóban ezt csinálja! Mondjuk eléggé slendrián a kinézete. Ez ugyanaz lesz, de legalább egységes.
mydata[4] = (byte) (int32_lat >> 24) &0xff; mydata[5] = (byte) ((int32_lat >> 16) & 0xff); mydata[6] = (byte) ((int32_lat >> 8) & 0xff); mydata[7] = (byte) (int32_lat & 0xff); Lényeg hogy van 32 bited, ezt kell szétdarabolni 8 bites részekre. Kezdjük az utolsó sorral: Fogjuk a legalsó nyolc bitet, a többit eldobjuk. Erre kell az &, ami bitenkénti ÉS művelet. Tehát ahol 0 ÉS 0 bit van, az 0 lesz. Ahol 0 és 1, az is nulla. Csak ott lesz 1 az eredmény, ahol mindkettő 1. Tehát a 0xff azt jelenti, hogy 00000..0011111111. Vedd észre hogy elől tetszőleges számú nulla van, csak a vége számít. A 32 bitből csak az utolsó nyolc bitet ereszti át, a többit törli. Ezt a maradék nyolc bitet castoljuk byte-ra, ami itt szerintem felesleges, de az van oda írva. Ezt a nyolc bitet tehát beletesszük a mydata[7]-be. A többi sor ugyanez, csak előbb eltoljuk 8-8 bittel. A kifutó bitek elvesznek, ez is a célunk. Helyükre belép balról jobbra felé a többi bit. Így mindig nyolcasával eltolva, és csak a legalsó nyolc bitet megtartva, szétdaraboltuk a 32 bitet.
Még a feltöltés csak csak, de a visszaolvasás nagyon nem akar összejönni, az a gond, hogy ami fennt van a példák között, az is úgy meg van bonyolítva...
Nem értem, az elején az írtad, excelben akarod kezelni,hálózat nincs,hogy akarod visszaolvasni?
Az Arduino Uno korlátozott memóriája miatt nem alkalmas Python nyelvű programozásra.
- Vagy komolyabb hardverrel (és főleg memóriával) rendelkező "Arduino kártyát" kell használni (pl. Nano 33 BLE) - Vagy az Arduino Uno csupán egy kiszolgáló firmware-t tartalmaz (Firmata, vagy hasonló), és a tényleges irányítás az Arduinohoz kapcsolt PC-n történik. A irányító szoftver lehet Processing, Python, LabVIEW vagy amit akarsz. De ekkor PC nélül nem működik az Arduino.
Már megoldódott
Stringként akarom összahasonlítani, de Char-ként van és nem egyezik a két string, pedig ha kiíratom, akkor egyforma.
apedig teljsesn egyforma, de mégse egyforma, próbáltam szóközöket betenni, de mi lehet a külömbség?
Mutasd a kódodat ha lehet.
A másik, hogy sok esetben nem látható karakterek is adódhatnak a szöveghez. Tipikusan a 0 ascii kódú. De ezt leellenőrrizheted wordpad-ben is, hexa- kiíratással. Vagy írasd ki serial monitorra a két string karakterkódjait. Ott látod az eltéréseket. Bővebben: Link
Ezzel már működik, pedig elvileg ugyanazt kellene tudnia ezesetbe
Az _eredeti_ kérdésre a válasz a két link alapján, ha el is olvassuk, hogy mit írnak: nem, nem lehet Uno-t Pythonban programozni.
A MicroPython tud mikrovezérlőn futni, de a kompatibilis eszközök listáján nincsen fenn az UNO. Gondolom azért, mert a Python dinamikus nyelv és sokkal több erőforrás kell neki, mint amit az UNO tud adni, azért nincs ez a port a támogatottak listáján. Fórumtalálat is ezt támasztja alá: https://forum.micropython.org/viewtopic.php?t=685#p3973 "MicroPython requires minimum 128K of Flash, 8K of RAM (more RAM required for realistic usage). This leaves out "classic" Arduino boards like Uno, etc. Arduino Due is right target for a port, but as you saw, nobody yet seems to have done it yet." Magyarul az UNO-nál négyszer több programmemória és négyszer annyi RAM kellene. A másik példában pedig az Arduino úgy van programozva, mint egy IO kártya, a főprogram pedig a PC-n fut. Az "IO kártya" szoftver a Firmata, ami viszont ugyanúgy Arduino féle C++-ban van programozva mint bármi más az UNO-n. És a PC-n fut egy Python program, amin keresztül elérjük az UNO-t mint egy IO kártyát. Ha ez a konfiguráció elegendő a céljainknak, akkor érdemes lehet kirpóbálni. További keresések alapján a MicroPython része lett az Arduino ökoszisztémának: https://blog.arduino.cc/2022/11/10/micropython-officially-becomes-p...ystem/ Tehát van hozzá hivatalos IDE, amivel programozni lehet a kompatibilis eszközöket. Én ha ragaszkodni akarnék a Pythonhoz, akkor valamilyen ARM alapú board felé fordulnék, amin garantáltan támogatott a MicroPython. Vagy az Arduino lapok közül választanék, vagy amihez van MicroPythonos dokumentáció, hogy hogy kell elkezdeni használni.
Nem olyan régen volt egy hasonló téma, hogy hogyan kell logolni SD kártyára. Én azt javasolnám, hogy blokkonként (512) írd a kártyát, egy esemény egy blokk legyen (méretben pazarló, de hely van bőven, és így a legegyszerűbb megvalósítani).
A blokkokat megjelölöd, hogy melyik volt már használva, és ez alapján binárisan lehet keresni, hogy éppen hol tartasz. Ennél gyorsabb megvalósítás nem lesz.
Soros monitorról kijelölt szöveget, hogy tudok vágólapra másolni?
mfrc522 bemeneteit, hogy tudom megváltoztatni?
ez a kettő tiszta, de a többi is pont rossz helyen van
úgy néz ki, hogy ez kemény kérdés lehet, ha még az MI-nek is beletört a foga
A hozzászólás módosítva: Ápr 30, 2023
Alapértelmezett lábkiosztással van bekötve, de az nekem sajnos pont nem jó
ez az alapértelmezett? Csak ez a két láb van bekötve?
Van még 3
nem értem, ha valaminek van 5 lába, akkor miért csak 2db-t lehet állítani?
Bővebben: Link
Mert azok speciális lábak, előre be vannak drótozva. Szerintem, de tévdhetek is. A PIC-nél a remapping-al kiszervezhetem akárhova. De az Arduino-nál szerintem ezek fix lábak. Idézet: „akkor miért csak 2db-t lehet állítani” Valószinű azért mert az SDA, SCK, MOSI fix funkciólábak amik csak ott érhetők el.
Jó, hát akkor az sd kártya lábkiosztását kell megváltoztatnom
Na most van szívás A hozzászólás módosítva: Ápr 30, 2023
?
Azt ugyan miért?
mert az SD is a SCK MISO MOIS lábakat használja, vagy van ötleted?
Van.
Az SPI-nek nézz utána hogyan működik. Egy SPI buszra sok-sok eszközt pakolhatsz, neked meg kettő kell. Azaz a bedrótozott lábakon kívül plusz két digitális láb kell az arduino-n a chip szelekt lábakhoz. Bővebben: Link A hozzászólás módosítva: Ápr 30, 2023
Magyarul mehet mind a 4 láb egyással párhuzamosan kötve, csak a ss két külön, remélem jól értem.
Nem tudom pontosan mennyi, kicsit felejtek de 4 láb nem lesz közös szerintem. Az óra jel: SCK közös, ezzel oldják meg, hogy szinkronban legyenek. A MOSI: Mester kimenete, szolga bemenete közös, MISO :Mester bemenete, szolga kimenete közös. Ez három. A chip select meg mindegyiknél más. Az RFID-n mintha lenne egy reset láb pluszban. Szóval szerintem csak 3 lesz párhuzamosan. De még a kábelek sem lehetnek akármilyenek, és túl hosszúak sem...
Azaz neked az arduino-n 3 közös láb lesz, meg 1-1 db chip select, meg a reset láb az rfid-n. Ez 5 digitális láb, de ha az sd-n is van reset pluszban akkor 6. A hozzászólás módosítva: Ápr 30, 2023
|
Bejelentkezés
Hirdetés |