Keresés

Részletes keresés

ruzsa janos Creative Commons License 2019.04.22 0 0 3483

úgy értem, az ISP-n olvasom ki a chip flash tartalmát.

még régebben skerült működő Nano-ról egy véletlenül töröltre áttenni a bootloadert.

a hex fájlban, remélem jól gondolom, egy adott sorrendben ott vannak előbb a címek, azután az adat, majd végül a kontrollösszeg.

 

ha a programot írom át (vagyis a végrehajtandót), akkor minden rendben, működik a nano, viszont amikor a bootloader részt, akkor hibát ad.

úgyhogy most kísérletezem.

 

Régebben PIC-et használtam ugyanilyen egyszerű dolgokra. Ott pl egy hőlégfúvós forrasztás után csinált olyat a 12F690-es, hogy működött, de egyes memóriacímek hibáztak. Ráment egy fél napom. aztán új chip - és minden helyrejött.

 

 

 

Előzmény: Prof (3482)
Prof Creative Commons License 2019.04.22 0 0 3482

Izé...

Ha ISP programozol, akkor NINCS bootloader. Ha mégis, akkor valamit nagyon elcseszett az a cseh vagy szlovák csávó.

Előzmény: ruzsa janos (3481)
ruzsa janos Creative Commons License 2019.04.22 0 0 3481

annyi újdonság van még, hogy az isp programozás rendszeresen hibás lesz - mégpedig a bootloader program első elemét is rosszul írja fel.

még adok egy esélyt, ezzel a bitburnerrel tudok közvetlenül 1 bytot is javítani a chipben. ha elfogadja, akkor lehet szoftver. ha nem, akkor halott a chip - és akkor átforrasztom a 328p -t, mert van tartalékom

Már csak elvi okokból is meg akarom fejteni.

Előzmény: Prof (3480)
Prof Creative Commons License 2019.04.22 0 0 3480

Miután megírtam, rájöttem...

 

A bemenetre kapcsolt belső felhúzó ilyetén való viselkedéséhez nem tudok hozzáfűzni semmi érdemlegeset.

 

Bootloader:
1. Ha van Windows a környékeden, akkor a legújabb Arduino IDE-t letöltöd, felinstallálod, úgyszintén hozzácsapod a CH340 USB meghajtót, mert valószerűtlen, hogy a kínai klónokon bármi más lenne, mint az.

2. Van egy leírás, hogy hogyan kell összedrótozni a "mester" és a "slave" lapot. A mesterre felrakod a szoftvert, amivel kvázi programozóként használhatod.

3. Van egy "burn bootloader" funkció az Arduino IDE-ben, amivel megfelelő beállításokkal (Arduino as ISP, illetve a megfelelő a programozni kívánt eszköz a végén, ez esetben Nano 328p) lehet új bootloadert telepíteni.

Ez kábelezéssel, mindennel együtt kb. fél órás művelet.

De.

Ha ISP-n keresztül programozol, akkor nem kell bootloader. Ezzel az indulás is kicsit gyosabb lesz és a memóriát sem pazarlod annyira. Cserébe onnantól csak úgy lehet, simán USB-n keresztül nem.

 

Az okát nem tudom, soha nem foglalkoztam vele, de a különböző arduino lapok, hiába ugyanaz az MCU, máshogy osztják ki a memóriát.

Annó NANO-NANO viszonylatban tudtam klónozni, bármilyen más viszonylatban nem (Nano-ból volt sok).

Előzmény: ruzsa janos (3479)
ruzsa janos Creative Commons License 2019.04.22 0 0 3479

hehe, gondoltam, hogy nem jó ötlet feltenni a kapcsolási rajzot, mert már olvastam néhány hozzászólásodat :)

viszont te a szabadidődből segítesz nekem, szavam nem lehet :)

az a helyzet, hogy mivel én csak nagyon mellékhobbiból játszom ezzel, pont csak annyira tanultam meg használni ezt az express pcb nevű kapcs rajz tervezőt, amennyire muszáj volt, másrészt vitathatatlanul van rajta csomó minden, ami hibás vagy értelmezhetetlen - pl egy R20 0R0, aminek annyi a szerepe, hogy ha nem kell nekem egy plusz 5 voltos táp egy periféria miatt, akkor egyszerűen a nano tápját hozza KIFELÉ - vagyis ott most nincs alkatrész.

 

az a bizonyos zener/tekercs sincs beültetve, szóval semmit sem okoz (csak annyi a szerepe, hogy egy konkrét alkalmazásnál egy vezetéken kialakuló impulzust érzékel (egy kis ferrites cstaolón keresztül), az ad egy triggerjelet - de itt most nem szükséges).

 

programozni a beépített (gyári) ISP csatin keresztül szoktam, tehát azon a 6pólusú tüskesoron.

 

amit a felhúzóellenállással nem értek, az az, hogy ha a D3-nál rendesen felhúzza 5 voltra, akkor a D2-nél miért nem ugyanúgy oda. Alacsony jelszintnek látja egyébként, nem is működik az interrup.  

 

*********************

 

egy gyors kérdésem lehet még?

van két nano-m, mindkettőből sikerült kinyírnom valahogyan a bootloadert, meg 2 UNO-m - abban működik, vahogy újra kellene írnom a Nanokat is. Van is régi lementett tartalmam.

 

ha ISP-n kiolvasom (AVRDUDE-alapú program, BitBurner, hozzám hasonló nem DOS-agyú egyszerű embereknek), egyértelműen látszik, hogy az UNO-ban a 3F00 címnél kellene lennie a bootloadernek, na ott pont nincs semmi, mert ha kiolvasom a teljes tartalmat, akkor 7F00-nál kezdődik bármi.

A Nano-ból még régebben olvastam ki, abban elvleg  3C00 - de nyilván ott sem volt semmi.
Gondolom itt valami címeltolás, vagy lapkezdet offszetérték lehet az oka, ha tudod, világosíts már fel, mert a datasheet olvasásától lassal kifolik a szemem.. 

 

 

és köszönöm a türelmedet.

 

  

 

 

 

   

Előzmény: Prof (3478)
Prof Creative Commons License 2019.04.22 0 0 3478

Nézzük sorban.
1. Hogy mivel programozod, rajtad áll. Ha regiszterek szintjén akarsz turkászni, akkor azt bármelyik IDE-vel megcsinálhatod. Viszont ha már nem Arduino, akkor az Atmega MCU-khoz van saját ingyenes fejlesztői környezet, abban kicsit egyszerűbb minden, a debug is.
2. Lábat lábra direktbe NEM kötünk, mert amíg éled az MCU, addig simán ki tudja nyírni magát azáltal, hogy a lebegésből átmegy aktív magasba amíg a másik láb csak úgy semmit nem csinál. Ezt javaslom konvertálni szakadássá (PD2/PB5).
3. Amit kiszúrtam: Az Arduino Nano kap tápot +5V-ról és 10V-ról is. Attól függően, hogy melyik éled előbb, úgy fog zárni valamelyik dióda, ennek megfelelően előfordulhat, hogy keresztben mennek dolgok. Ettől lehet a derengés simán.
4. Az eredeti (3474 számú) posztban írtad, hogy ha ISP-n programozod. Na NANO, akkor szerintem húzd ki, dugd rá USB-n a gépre, told fel rá a programot a szokásos megoldással, aztán húzd le a gépről és told vissza a helyére. Igen, macerás, de az kb. 100%-osan működni fog. Ha az ISP-n tolod, akkor a fenti ide-oda kapcsolgatás miatt lehetnek meglepetések. De a galiba nem ez, hanem az, hogy bár azt mondod, hogy az LCD egy "külső 5 V-os tápon van", valójában a rendszer 5 V-os táphálóján csücsül, amibe nagyon keményen beleszól a Nano saját tápja is. Ha a rajzba beteszed konkrétan a Nano tápellátásért felelős részeit (MCU nélkül), akkor azt fogod látni, hogy két stab IC-d lesz párhuzamosan, az U3 és a Nano-ban lévő másik. Ha a rendszernek a programozó (ISP) felől adsz +5V-ot, akkor minden részre adsz, így nyilván az LCD-nek is (akkor is, ha nem akarsz). Ha nem a felhúzós-lehúzós eljárást csinálod, akkor azt javaslom, hogy az R20-at (lásd alább) kiszeded, csinálsz belőle egy szakadást. A Nano-t pedig NEM a nyákon lévő (P6) porton keresztül, hanem a "fedélzeti" ISP tüskesoron keresztül programozod. Ha ugyanis a P6-ot használod, akkor is tápfeszt adsz a rendszer 5V-os hálójának, ha nem akarsz, és ezt a számítógép esetleg gyenguska USB-s tápja plusz a programozó eszköz szintén gyenguska belső stabja nem fogja szeretni (pláne, hogy ahogy elnézem, elég méretes LCD-t gondoltál a rendszerbe integrálni).

5. ISP-re praktikus kirakni az RST-t is, ez most a P6 csatlakozón nincs rajta. Ha ezen keresztül tolod, lehetnek gondok (és ez lehet oka a hibás programozásnak).

6. Mi a kóchengeres elektroncsőnek kell az R20 rövidzár +5V bemenetre?
7. Atmel/Microchip Atmega 328p datasheet, 258. oldal, 28.2 DC Characteristics. Input low: 0,3 Vcc maximum (5 V tápfesznél ez ugye 1,5 V). Input high: 0,6 Vcc minimum (ez 5 V tápfesz esetén 3 V). Ha az input pull-up 1,7 V-ra húzza (mérve!), akkor bemenet állapotának fixen alacsony jelszintet kellene adnia, ezt egy borzasztó egyszer kóddal (Arduino keretrendszerben Serial.println(digitalRead(d2)); delay(20);a loop-ba, Setup-ban kell a Serial.begin(9600); pinMode(D2,INPUT_PULLUP);) lehet ellenőrizni kb. 2 mp alatt. De itt is az van, hogy ha nálad a Port.D2 = PD2 láb, akkor tisztelettel emlékeztetnélek, hogy azt egy tekercsen (L(trig) keresztül földre húzod, és hiába van ott a 4,7 V-os Zener és az 1 k-s ellenállás, az a belső pull-up ellenállással szép feszültségosztót csinál, és mivel a belső pull-up valahol 20 és 50 kOhm körül van... Alapból valahol 0,1-0,25 V közötti feszültséget kapsz a bemenetre. Ez a forgatókönyv nem számol a Zenerrel és a tekerccsel (utóbbi rövidzárnak tekinthető). Ilyen esetekben én mindig függetlenítem magam a belső pull-up-októl, mert különösen határközeli helyzetekben több meglepetést tudnak okozni. Az L(trig) mögé én inkább betennék egy egyszerű és gyors komparátort, akkor megszűnnek a meglepetések, ráadásul azokból eleve digitális jel jönne ki, amivel nem kell kínlódni.
+1. Gyalázatos ez a kapcsolási rajz.

Előzmény: ruzsa janos (3477)
ruzsa janos Creative Commons License 2019.04.22 0 0 3477

 

A rajzhoz tartozik egy kis magyarázat, mert egy általánosabb célú nyákhoz készült. Autóakkuról (is) kell működnie, ezért a bemenetet a fordított polaritás elleni védelem. A step-up konverter táp pedig szintén nincs benne.

A nyák nincs teljesen betelepítve, pl a PD2 bemeneten nincs semmi más, csak össze van kapcsolva a PB5 bemenettel (mert az van kivezetve egy tüskesorra, viszont a PB5 nem tud INT0-t...

Az LCD a PortC 0-5 kimenetekre van kapcsolva (ahol a tervben a LED-es kijelző van).   

Előzmény: Prof (3475)
ruzsa janos Creative Commons License 2019.04.22 0 0 3476

nagy gépről küldök majd rajzot.

a pullup-os lábon SEMMI NINCS, ez a furcsa. ez a két láb az INT0 és az INT1, pont ezért használnám. az egyik működik, másik nem.  és nincs zárlatban, mert kimenetként működik.

 

nem az arduinoval programozom, hanem egy szerb fickó programjával, regiszternevek/bitek alapján. lehet, hogy a szoftver lenne hibás?!

Előzmény: Prof (3475)
Prof Creative Commons License 2019.04.22 0 0 3475

Egy kapcsolási rajzot, ha volnál szíves.
A derengő kijelzőre az van, hogy ha nem megfelelő sorrendben kap tápfeszt a rendszer, akkor pl. dióda nyitva maradhat akkor is, amikor nem kellene.
A pull-up kérdéskör érdekes, ez attól függ, van-e rákötve valami. Illetve a datasheet sokat tud ilyenkor segíteni.

Előzmény: ruzsa janos (3474)
ruzsa janos Creative Commons License 2019.04.22 0 0 3474

Uraim,

van nekem egy saját kis "shield"-m, ami két fet-et tud meghajtani, meg egy LCD-t, illetve encodert, nyomógombot fogadni. Egy Nano-t kell beletenni. Igen, kínai klónt.
Minden rendben lenne, csakhogy:

- ha ISP-n akarom programozni, akkor elég sokszor bukik az újraellenőrzésen, hibás tartalommal. néhány kísérlet után  működik.

- beépített állapotban többször nem működik az ISP, mint igen, közben kicsit dereng az LCD fénye, ami azért furcsa, mert pont az LCD egy külön külső 5 voltos tápon van... (a panelt 12 voltról hajtom, egy 10 voltos stabi adja a feszültséget a fet drivernek meg a Nanonak (amink ugye saját belső stabija van), meg van egy 5 voltos külső stabi, pl, az LCD-nek). Az adatlábakon kapna visszafelé tápot? Mert akkor is ez van, ha a LCD tápját, illetve GND-jét lehúzom.

 

A legdühítőbb: ha beállítom a portD.3 lábat bemenetnek, és internal pullupot kérek rá, akkor rendben megteszi, megjelenik az 5 volt.

Ha ugyanezt a portD.2-re kérem, akkor kb 1,7 volt alakul ki rajta....
Kimenetként deklarálva a portD.2-t, ott van az 5 volt.... (net szerint másnak is volt ilyen). Másik Nano ugyanaezt csinálja.... magyarázat?  

 

(nyilván tudok rá forrasztani egy 10kohms ellenállást, de nem értem)

Előzmény: Prof (3473)
Prof Creative Commons License 2019.04.14 0 0 3473

Először nézd meg, hogy a fejlesztő lapkán milyen illesztő IC van. Ez a második legnagyobb a sorban és közel van az USB csatlakozóhoz. Alapvetően három eset lehetséges, vagy Atmel (a gyári, eredeti Arduino paneleken), FTDI a jobb klónokon és a régebbi gyári Arduino paneleken vagy CH340. Ezekből az első kettőhöz az Arduino IDE tartalmazza a gyári meghajtó szoftvert, a harmadikhoz nem. Ehhez: https://sparks.gogo.co.nz/ch340.html

 

Az eszközkezelőben mindenképp látnod kell magát a kártyát vagy a portot. Ha tehát ott nem látod, akkor az USB-csatolóval van baj.

Előzmény: Laszlo Zentai (3472)
Laszlo Zentai Creative Commons License 2019.04.14 0 0 3472

Köszönöm szépen, de hol lehet találni ilyeneket?

Előzmény: Prof (3471)
Prof Creative Commons License 2019.04.13 0 0 3471

Az usb meghajtó driver nem lesz jó. Attól függően, hogy milyen illesztő ic van az arduino panelen, fel kell tenni hozzá egy újabbat/másmilyet.

Előzmény: Laszlo Zentai (3470)
Laszlo Zentai Creative Commons License 2019.04.13 0 0 3470

Letöltöttem az Arduinohoz a szoftverjét egy Win 8.1-re.  Sajnos nem lehet kiválasztani a prtot, mert az a menüpont nem aktiv. Mit lehet tenni szerintetek?

Prof Creative Commons License 2019.04.06 0 0 3469

Szia,

Legelőször kellene a kód, anélkül nem sokra fogunk menni. (és ne copy-paste, hanem codeshare vagy valami hasonló kódmegosztó és ide csak a linket illeszd be)

Az elképesztő (értékelhetetlenül) kis képen annyit vélek felfedezni, hogy a két shift register négy-négy külön lábra van kötve, tehát nagy eséllyel a kódban is két eltérő lábcsoport, illetve "shift out" objektum van definiálva. Az egyik a kijelzőket, a másik meg a bemeneti választokat kezeli. Valószínűnek tartom, hogy a kódban itt van a galiba.
Arduino viszonylatban a 595 kicsit háklis az időzítésre és a sorba kötésre sajnos. Ez 3-nál lényegtelen, 5-öt sorba kötve már előfordulhatnak (bár valószerűtlenek) galibák.

 

Szóval, először kód, szerintem, utána tudunk bármi hasznosat mondani.

Előzmény: Törölt nick (3468)
Törölt nick Creative Commons License 2019.03.31 0 0 3468

Sziasztok!

 

Nagyon kezdő vagyok a dologban, sok mindent kitapasztaltam.

Össze "raktam" egy audio kiválasztó áramkört.

Hozzá csatoltam egy 2 digites 7 szegmenses kijelzőt.

Mindkettőt 74hc595 shift regiszterrel.

 

Ha külön-külön működtetem, akkor minden tökéletes.

Ha egybe teszem, akkor csak a bemeneti választó működik, a kijelzőn nincsenek számok.

 

Ha monitorozom az értékeket, akkor minden tökéletes.

 

Köszönöm a segítséget, ha kell a kódot is csatolom.

 

Üdv: Lajos

 

Prof Creative Commons License 2019.03.12 0 0 3467

Bocsánat, Sabadabada...

Előzmény: Prof (3466)
Prof Creative Commons License 2019.03.12 0 0 3466

Szia,
Ahogy szabadabada is írta, kissé más megközelítésben, ami a facebookos linken van, az ipar-5 szintű kollaboratív automatizálás. Ez most a mechatronikai ipar csúcsa, a jelenlegi automatizálási fejlesztések ebben és az AI alapú önállóság témakörében folynak (lásd pl. Tesla "önvezető" funkció). Ha ilyet akarsz, akkor kezd azzal a megvalósíthatósági tervet, hogy felírsz egy 8, inkább 9 számjegyű kezdeti beruházási igényt (forintban) és nagyjából 24 hónapot a megvalósításra.
Az, hogy pontosan mit kérsz, 2-3 A/4-es oldalon sorolva kellene első körben leírni, majd ezt követően a fejlesztés lehetőségei (elsődorban a rendelkezésre álló idő, a megadott cél, a humán és műszaki erőforrások adta korlátok) összefésülése után jön ki, hogy mikorra és mennyiért lehet ezt megvalósítani.
Elvben van olyan applikáció, amihez egy "Arduino" elég és az itt összegyűlt tudás és tapasztalat megfelelő mennyisége összpontosul egy olyan embernél, akinek ideje és lelkesedése is van ezt megcsinálni. Én most egy fejlesztés kellős közepén vagyok, az első modultesztek után az éles tesztet készítjük elő. 2-3 hónap múlva, ha nem jön folytatás a mostani megbízótól, elvben rá fogok érni. De ha olyasmit akarsz, ami a filmen van, azt én biztos nem tudom megcsinálni (a fórumban valószínűleg más sem), és nagy valószínűséggel nem a néhány százezres kategória lesz.

Előzmény: AutoKobot (3464)
Sabadabada Creative Commons License 2019.03.10 0 1 3465

Az ugye megvan, hogy amit szeretnél az messze túlmutat az arduino felhasználási területén.

 

Előzmény: AutoKobot (3464)
AutoKobot Creative Commons License 2019.03.10 0 0 3464

Szia!

 

Természetesen az ajánlat díjazás ellenében értendő. Tisztában vagyok az árakkal és ezért is bátorkodtam kiírni, hogy szakit keressek, mert nincs időm kísérletezni. A feladatokat igyekszem minden esetben előre pontosan meghatározni. Amennyiben sikerült egy projektet pontosan megfogalmazni, hogy mindkettőnk számára érthető, akkor egy árajánlatot kérek. Így a projektbe be tudom építeni az ajánlatba foglalt árat és minden a helyén van. Az eszköz (arduino) kiegészítő alkalmazás vezérlés, mint pozicionáló, lengető egység, biztonsági felügyelet, stb. Talán így érthetőbb: https://www.facebook.com/autocobot/

 

Üdv!

Prof Creative Commons License 2019.03.09 0 0 3463

Szia,

Az ugye megvan, hogy ez a feladat valódi, a leírásból nem tisztán kideríthető bonyolultságától függően százezer forintos nagyságrend is lehet, már ami a díjazást illeti?!

Előzmény: AutoKobot (3462)
AutoKobot Creative Commons License 2019.03.08 0 0 3462

Tisztelt Mindenki!

Felprogramozott arduinora lenne szükségem. A programozás néhány egyszerűbb, mint bejövő jel nagyságától (energiájától) függően adott számú impulzus jel kiadása és hasonlók. Bonyolultabb, mint szervo motor mozgatása több változtatható paraméter alapján. Ebben kérném a segítségeteket, hogy van e valaki, aki tudná vállalni a fent említett feladatokat, Ezek a feladatok ismétlődőek, és mint minden esetben a fejlesztés sosem áll meg, tehát bele kell nyúlni esetenként az aktuális igények miatt az „előző” programba.

Természetesen a lényeg, hogy mindenki jól járjon!

Prof Creative Commons License 2019.02.16 0 0 3461

Üdv,

Állapotgépnek olvass utána!

Előzmény: Bazarghai (3460)
Bazarghai Creative Commons License 2019.02.13 0 0 3460

Szia!

 

Ez az ötlet egyben pofon egyszerű és briliáns!

Köszönöm, már be is "vertem" a kódba, tökéletesen működik!

 

Bazar

Előzmény: tibi-d (3459)
tibi-d Creative Commons License 2019.02.12 0 0 3459

Szia!

Bevezetsz egy másik változót, amit akkor változtatsz meg, amikor végrehajtod a "B" feladatot. Vissza pedig akkor mikor nem nulla a vizsgált feltétel. 

Tehát:

"A" feladat:

Ha (1. változó = 0 és 2. változó =1) akkor "B" feladat

Ha (1. változó = 1) akkor 2. változó = 1

 

"B" feladat:

2. változó = 0

,

,

,

 

Így a "B" feladat csak 1X fut le az 1. változó 1->0 átmeneténél.

Remélem sikerült kimozdítani a holtpontról.

Előzmény: Bazarghai (3458)
Bazarghai Creative Commons License 2019.02.12 0 0 3458

Sziasztok!

 

Egy érdekes problémám lenne, már minden formában próbálkoztam (gugli is jó barátom) de eddig semmi eredmény.

Adott "A" és "B" feladat.

"A" feladat folyamatosan fut a loop()-ban. Van egy változó amit figyelek, és adódik olyan körülmény (változó 0 értéket kap huzamosabb ideig), hogy ekkor "B" feladatot kell elvégezni. A probléma az, hogy ha a változó továbbra is 0, akkor a "B" feladat ne hajtódjon végre újra és újra, hanem várjon addig, míg a változó újra nagyobb lesz, mint 0 és "A" feladat újra végrehajtható.

 

Tehát olyan megoldás kellene, hogy "B" végrehajtás után kikapcsolja magát és induljon "A" feladattal, mikor a változó új, nullánál nagyobb értéket kap. 

 

Előre is köszönöm!

 

Bazar

Prof Creative Commons License 2018.10.08 0 0 3457

Pompás, írtam.

Előzmény: SzI1185 (3455)
Prof Creative Commons License 2018.10.08 -1 0 3456

Hobbinak jó, de arra számíts, hogy így soha nem fogsz haladni vele rendesen.

Előzmény: Gergö86 (3452)
SzI1185 Creative Commons License 2018.10.08 -1 0 3455

Így talán könnyebb lesz  imre.szabo.hun@gmail.com

Előzmény: Prof (3454)
Prof Creative Commons License 2018.10.08 -1 0 3454

Parádés lenne, ha megadnál egy elérhetőséget.

Előzmény: SzI1185 (3453)

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!