Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
"Basic authentication" + Arduino + Ethernet
Hello!
Eddig még nem volt semmilyen arduino-m de most megvenném ezt a starter kit-etBővebben: Kit De ebben nem uno hanem Duemilanove van. Az a kérdésem hogy van-e olyan jó a Duemilanove mint az uno? Megéri-e megvenni a kitet?
Üdv ismét!
Lenne egy programozásban haladókhoz szóló kérdésem: Van egy Arduino sketch fájlom, amit egy adóvevőhöz írok, és el szeretném érni azt, hogy mind az adó, mind a vevő funkció egy fájlon belül maradjon, és egy külső program segítségével először: - módosítanám a szöveges fájl egy részletét, amitől vagy az adóhoz, vagy a vevőhöz szóló eljárások lesznek aktívak, majd - fel szeretném tölteni ezt a szöveges fájlt a programozón keresztül egy Arduino UNO panelra, és - végül visszaállítanám az eredeti .ino szöveges fájlt, ahogy az a módosítás előtt volt. A gondom a középső lépéssel van. Valamelyest tudok C-ben programozni, de nincs nagyon ötletem rá hogy egy C programon keresztül hogyan tudnám elérni az Atmel programozó szolgáltatásait (és angol fórumokon se nagyon találtam erre választ). Akinek van ötlete, segítsen légyszi! 64 bites Windows 7 fut a gépemen.
Feltételes fordításra gondoltál?
A fenti változatban a blabla1 helyére írt programsorok fordulnak le. Ha a #define kezdetű sort kommentbe teszed, akkor pedig a blabla helyére írt (a vevő számára szükséges) sorok fordulnak le. Idézet: Előbb le kel fordítani, és a lefordított kódot kell letölteni a kártyára. Ezt az Arduino IDE elvégzi, ha a letöltés gombra kattintasz. „- fel szeretném tölteni ezt a szöveges fájlt a programozón keresztül egy Arduino UNO panelra”
Nem. Én arra gondoltam, hogy írok egy c programot, ami megnyitja a sketch fájlt, és a parancssoron keresztül felkínál egy menüt, amiben eldönthetem, hogy a sketch fájlból az adót vagy a vevőt tegye inaktívvá (pl más kezdőértékkel való feltöltéssel), ezután pedig kapcsolatba lép az Arduino programozójával és megmondja neki, hogy fordítsa le és töltse fel a programot a kártyára. Ez utóbbit nem tudom, hogyan lehetne megoldani.
Ha van elég helyed a programoknak akkor a teljes funkcionalitást írd bele 1 forrásba.
A döntést pedig a vason oldod meg , hogy RX/TX módban fog üzemelni. Ezt 1 digit port bemenet beáldozásával érheted el fix H/L szintű lesz a RX/TX esetén. Így nem kell azon se vergődni , hogy kétféle adó vevő forrást kell írni , tesztelni , ne keverd össze melyik vasba mi megy ? Az elején ráfut a port tesztre majd eldönti melyik ágon fut tovább. Nem egyszerűbb? Persze lehet drága az input port beáldozása ha azokból meg szűken vagyunk+program tár növekedés is van.
Kera_Will válaszát kiegészíteném, ha szoftveresen akarod vezérelni az Arduinot, és kapcsolatban is van(sketch feltöltés) akkor Serial.read() is működhet.
A hozzászólás módosítva: Júl 14, 2014
Sziasztok!
Arduinoval szeretnék vezérelni egy PT2313-as audio processzort, ami I2C protokollal kommunikál a mikrovezérlővel. Az ic adatlapjában le vannak írva a funkciók bytejai, viszont még nem igazán látom át a dolgokat. Kerestem neten leírásokat, ezek mindegyike .hex fileban közli a hozzá tartozó sketchet. Így jelenleg betekintést sem nyerhetek, hogyan is néz ki egy ilyen program Arduinohoz. Meg szeretném tanulni, hogyan kell bánni ezzel az I2C protokollal, az ichez pedig szeretnék egy programot írni, mert egy karácsonyi ajándék igen lényeges része lesz és gondoltam elkezdem időben. Segítséget/tanácsokat szeretnék kérni ezzel kapcsolatban.
Az I2C-vel nekem is meggyűlt a bajom. Egy 3V-os TEA5767 modult akartam életre kelteni. Megépítettem hozzá ezt a szintillesztőt. Összedugtam próbapanelon, de nem működött. Kihagytam az illesztőt, közvetlenül összekapcsoltam az Arduino-t a TEA modullal, ahogy rádugtam az USB-re, egyből megszólalt.
És a lábak belső védődiódáján át van áramfolyásod. Örülj, h megy a modul....
A lábon MAX. Vcc+0.7V lehet, különben halálozás lesz a vége. Az I2C ellenállások 3.3Vra mennek?
Igen, az ellenállások 3.3V-ra mennek. Igazából csak végső elkeseredésemben próbálkoztam a közvetlen összeköttetéssel. Nagyjából egy éve rendeltem két darab ilyen modult, de mindeddig csak a fiók mélyén hevertek, mivel nem szabványos a lábkiosztásuk, és eddig nem találtam meg a leírását. A kérdésem igazából az lenne, hogy működőképes-e a fentebb linkelt szintillesztő, vagy pedig máshol szúrtam el valamit? Multiméterrel nézve jónak tűnik, de beépítve mégsem akar működni.
Sziasztok, elkelne egy kis segitseg.
Nagyon kezdo vagyok e teren, de talaltam a neten egy megfelelo sketch-et amit atalakitsak (tobb in, meg out). Mukodik is, csak egy a bibi, nincs meg az a tulajdonsaga hogy egy adott ido leteltevel (mondjuk 5 mp) onmagatol visszaterjen a "void resistance()" (menu = 0) mukodesbe, vagyis mindig vegig kell futtatni az egesz menuponton. Lehet-e ezen segiteni ?
A hozzászólás módosítva: Júl 17, 2014
Sziasztok!
Kitaláltam egy programötletet, amit majd egy atmega328-ra írok meg, flowcode-ban. Viszont, nincs jelenleg programozóm, amivel ki tudnám próbálni, hogy jó-e a flowcode-ban írt progi. Azt találtam ki, hogy ugyanazt az ötlet megírom az arduinomra, hogy ugyan fog-e működni. Megírtam, hibajavítottam, és mostmár úgy működik, ahogy szeretném. Namost, az egész arduinomat nem szeretném beleépíteni. Lehet-e valahogy az arduinoban megírt kódomat valahogy átfordítani olyan módon, hogy egy önálló ic-n is menjen? Amire gondoltam még, hogy mivel az ic kivehető belőle, és ugyanúgy 328 van benne, beleteszem a másik ict, arra beírom a brogramot, majd az eszközben pedig köré építem a szükséges dolgokat. Működik ez? Mit kell köré építeni? Előre is köszönök minden segítséget.
Ha van Arduino kártyád is, akkor azt is használhatod programozóként a másik atmega328 felprogramozására. (Using an Arduino as an AVR ISP) Erre amúgyis rákényszerülsz, ha a másik atmega328-ban nincs eleve bootloader beleégetve (bootloader nélkül hiába dugod át az Arduino kártyába, nem tudod programozni).
Idézet: Nagyjából azt, ami az Arduino Mini kártyán van. Ami esetleg nem kell neked hozzá (Reset gomb, feszültségstabilizátor), az természetesen elhagyható. „Mit kell köré építeni?”
Utánanéztem a YouTube-on is, hogy mégis hogyan működik ez pontosan. A srác egy breadboardon egy külső oszcillátorral és egy resetláb felhúzó ellenállással felépített konfigurációt programozott fel. Tehát, ha megcsinálom a nyákot, ami a végleges eszközöm lesz, az ict breadboardon fel tudom programozni az arduinoval, majd azt visszatéve a panelra, működnie kellene, ugye?
A tervem, hogy az lcd-t, meg a többi ki/bemenetet ugyanoda kötöm, mint most a breadboardon az arduinoval van összekötve, és akkor a másik panelre áttéve ott is oda kötöm őket, és ugyanazt a programot írom bele, mint az arduinoba. Természetesen először a bootloadert égetném bele. Ez így működhet?
Külső kvarc+kondi, reset körenyéke kell. Bootloader _nem_.
Külső programozóval égeted be a sw-t a chipbe (pl Arduinoisp) Idézet: „Külső kvarc+kondi, reset körenyéke kell. Bootloader _nem_.” Vagyis ha jol ertettem, az "ARDUINO 1.5.7" altal generalt .hex fajlt siman be lehet egetni az IC-be egy akarmilyen IC programozoval (termeszetesen ami tamogatja a kiszemelt ATmega IC-t) ? A hozzászólás módosítva: Júl 18, 2014
NEM, nem és nem!
BETA szoftverrel NEM dolgozunk _SOHA_, csak ha tesztelők vagyunk. Arduino 1.0.5 a STABIL, az 1.5.x sorozat _BÉTA_. Ha van Arduino-d, akkor az ArduinoISP a programozó rá. A HEX égetés _mellett_ persze a fusebiteket is be _kell_ állítani a _bootloader nélküli_ chipnek megfelelően!
A videóban a srác azt mondta, hogy azért kell az arduino bootloaderét beleégetni, mert az a fuse biteket is beállítja olyanra, mint az arduino, vagyis nem kell vele külön foglalkozni, mert a szándékom egy teljesen üres 328-asra ugyanazt a programot, mint amit megírtam arduinora, áttegyem oda.
Idézet: „BETA szoftverrel NEM dolgozunk _SOHA_” Megertettem. Idézet: „Ha van Arduino-d, akkor az ArduinoISP a programozó rá.” A gond az hogy a C++ programozo nyelvhez kapisgalok csak es nincs Arduino-m, csak egy ChipKIT UNO32-m es egy Genius G540 egetom, azert kerdeztem ra az Arduino szoftver altal generalt .hex fajl-ra (a "Local Settings / Temp" mappaba). A videot amirol a srac beszel nem lattam.
Én erről a videóról beszélek.
Igen. Beszélnek itt-ott nem teljesen komlett/jó dolgokat.
Ha a bootloadsert beégeted, a fusebitekben pl. 2 is hibás: - bootloader van a chipben és a programfutás a 30kbyte címről kezdődik Azaz, ha a programod 31k hosszú, akkor NEM fog futni, mert az a 0. címtől kellene. és a 30.k címén ki tudja hogy ami van az program vagy adat. És a kontrollered programként kezdi használni... Ha meg a programod <30k, akkor a chip a 30kbyte...32kbyte területen lefő FF (NOP, üres) utasításokat hajtja végre, majd a programszámláló _túlcsordul_ és így ér a 0. címre. Minden ez, csak nem _korrekt_ megoldás... És a TE áramkörödben NEKED kell megmondani pl: - a chip milyen rendszerfeszültségnél reseteljen (2,7V, 4.3V vagy mindegy/nincs rá szükség) - mekkora _bekapcsolási, programindulási_ késleltetéssel rendelkezzék, - a bootloader inicializálása/portkezelési funkciói _nálad a bootloader nélkül_ hiányoznak (pl. memóriaában lehet adat, sorosport inoicializálást a bootloader már elvégez_heti_ a programod _helyett_. Csak, hogy néhány szempontot mondjak. A ChipKit-re is felrakható az ArduinoISP, így abból is lehet Arduino/AVR programozó....
Na, most akkor végleg nem tudom, mit csináljak, írjam, vagy ne a bootloadert. A programom alig 5-10k. Vgayis akkor nem fog működni? Vagy csak egy darabig? Ezt nem értem.
A bootloadert akkor van értelme beégetni, ha a továbbiakban újabb programokat is akarsz rátölteni "Arduino módra" (bootloaderrel a soros porton keresztül). Ha erre nincs szükséged, akkor fölösleges a bootloadert betölteni.
Akár bootloadert töltesz bele, akár nem, a fuse biteket helyesen kell beállítani. Hogy hogyan, azt majd a nálam okosabbak tudják.
Végülis, a bootloadert is csak azért égettem volna bele, hogy a bizosítékbiteket beírja, mert amiket eddig programoztattam, azoknak előre meg volt adva, hogy mit hova kell állítani, vagy az illettő, akit megkértem, automatikusan beállította. Viszont azt jó lenne tudnom, hogy mit, és hogy állítsak be rajta.
A fuse bitek állítgatásával el tudod tolni a chipet. Én elvből nem segítek benne, mert mindenki a maga felelősségére szórakozik vele.
http://www.engbedded.com/fusecalc/ Ha az elvek érdekelnek, kérdezel, akkor válaszolok, de számot, amit be kell írni semmiképpen nem adok meg.
Fog működni. Viszont ha utánépíted és _nem érdekel hogyan, de működik_ akkor simán égesd a bootloadert. A kód fog működni.
Viszont semmit nem tanulsz belőle. Ha tanulni szeretnél: Bootloaderről... Fusebitek és a háttere
És a "programszámláló túlcsordul". Ezt hogy kell érteni? Mit befolyásol? Szeretném persze tudni, hogy mégis mik a fuse bitek, meg hogy mit tudnak, de egyenlőre maradok a bottloader beégetésénél.
|
Bejelentkezés
Hirdetés |