Keresés

Részletes keresés

gyerek67 Creative Commons License 2017.12.17 0 0 3281

Szervusztok, segítséget kérnék!

 

A fiam vásárolt kéz alatt egy használt Arduino Nano-t.

Az eszköz jelenleg nem kommunikál USB-n a legfrissebb gyári programozó szoftverrel.

A CH340 driver jó, mert simán beszélgetek rajta keresztül egy ESP-8266 Wemos D1-el.

Az eladó elmondása szerint eddig valamilyen más módon, Linux alatt használták.

A jószág vélhetően jó, mert a LED BLINK program, amit beletöltöttek, remekül működik, miután tápot kap.

Mit kellene tennem? Valahogyan másik bootloadert tölteni bele, hogy USB-n keresztül elérjem?

Sajnos Arduinoban semmilyen tapasztatom nincsen, most találkoztam vele először.

 

Üdv:

Viktor

 

ruzsa janos Creative Commons License 2017.12.16 0 0 3280

szerintem először határozd meg, mennyi a motor elérhető maximális és még használható minimális sebessége. ezt a "tartományt" osszad fel mondjuk 4 részre, ez lesz a 4 használandó sebesség.

a motor elindulási irányán nem értem mi a probléma, hát vagy közeleíteni akarsz, vagy távolítani, nem?

az aktuális és a célpozíció függvényében kellene eldöntenie a programnak, hoy max sebességgel indul, vagy a többi 3 lépcső valamelyikével. Ha kicsi a távlság, akkor a legkisebbel, másként túlmegy rajta. Ahogy közeledik, csökkented a sebességet. Az ultrahangos távolságmérőnek van egy mérési időtartama - vagyis a távolságot legfeljebb ilyen időközönként tudod meghatározni. Ha az aktuális pozíció mínusz a célpozíció közötti táv kisebb, mint amit a motor két távmérés alatt megtesz, akkor a motor működtetési idejét már a táv/sebesség alapján kell számolnod. 

A legfontosabb szerintem: a célpozícióra állásnak kell legyen egy megengedett pontatlansága, vagyis ha ezen belül vagy, akkor le kell állni a beállásnak, másként a végtelenségig rángatja majd előre-hátra.   

Előzmény: ngyzsolt (3279)
ngyzsolt Creative Commons License 2017.12.16 0 0 3279

Üdv!

 

Egy szintezőt szeretnék építeni. Ez tulajdonképpen egy makett lenne. A szenzor alatt lévő objektumhoz képes igazítaná a felfüggesztett fém lemezt, aminek a két végén helyezkednek el a szenzorok(HC-SR04 ultrahangos távolságmérő). A szintezést egy 12 voltos dc motor végezné, aminek a fordulatszámát áttétellel is lassítottam. Ezt a motort egy L298N vezérlő irányítaná. 

A programozással akadtak problémáim. Az lenne a kérdésem, hogy hogyan lehetne megoldani azt, hogy a motor mindig a megfelelő irányban, csak a szükséges mértékig állítson és ez az állítás mindig a lehető leggyorsabban történjen.

Vargham Creative Commons License 2017.12.13 0 0 3278

Ezek a linkek miért mennek keresztül a fészbúkon?

Előzmény: sfveteran (3277)
sfveteran Creative Commons License 2017.12.13 0 0 3277

Üdv!

 

Építenék egy TZXDuino-t (https://github.com/sadken/TZXDuino).
Kijelző, SD kártya olvasó már csatlakoztatva. A kártya olvasó nem érzékeli a kártyát. Egy 256 MB-os régi Nokia microSD kártyáról van szó. Minden vezeték a megfelelő helyen van, nincs kontakt hiba. Kipróbáltam az arduino fejlesztő rendszer Libraries/SD/examples/ mappában található Cardinfo programot is, ami a következő hibát dobja soros monitoron:

"Initializing SD card...Wiring is correct and a card is present.

Card type: SD1
Could not find FAT16/FAT32 partition.
Make sure you've formatted the card"

Formáztam FAT16-ra, FAT32-re, letöltöttem az SDcard.org oldalról az SD kártya formázó proggit, de semmi.

1.8.5.-ös az arduino fejlesztőrendszer, az SD library 1.2.1-es, az USB-n keresztül 4.9V-ot kap a panel.

Megnéztem ezt is SDFat lib-et: https://github.com/greiman/SdFat

Itt van egy SDinfo nevű arduino program. Egy 4Gb-os kártyára ezt adja:
Egy másik, 4 GB-os kártyára ezt adja az SDinfo:

 

init time: 365 ms

Card type: SDHC

Manufacturer ID: 0X27
OEM ID: PH
Product: SD04G
Version: 3.0
Serial number: 0X3D78EDDA
Manufacturing date: 8/2010

cardSize: 3980.39 MB (MB = 1,000,000 bytes)
flashEraseSize: 128 blocks
eraseSingleBlock: true
OCR: 0XC0FF8000

SD Partition Table
part,boot,type,start,length
1,0X0,0XB,8192,7766016
2,0X0,0X0,0,0
3,0X0,0X0,0,0
4,0X0,0X0,0,0
error:
File System initialization failed.

SD errorCode: 0X30,0X4F

Másik, 8 GB-os kártyára is ugyanezt a hibát dobja. Mi lehet a hiba?

 

Prof Creative Commons License 2017.12.12 0 0 3276

+ Arduino környezetben a honlapon van kissé alapabb a "library"-k (könyvtárak) használatáról.

Mindenképp jó irány. A sok void (ami nem feltétlen void) első lépésnek nem rossz, de a könyvtárak használata mindenképp célravezetőbb (és elegánsabb is).

Előzmény: Vargham (3273)
barkócza Creative Commons License 2017.12.12 0 0 3275

Keress rá a neten a "moduláris programozás C nyelven" kifejezésre. Ezért van külön lépésben a fordítás és a linkelés, és erre valók a header (.h) fájlok. (Pascalban a unit csinálja ugyanezt.)

Előzmény: Brandyman (3271)
digium Creative Commons License 2017.12.12 0 0 3274

Félreértettem, mert először adat file olvasásról volt szó. Azt hittem, magát a programot akarja külső fájlból olvasni/futtatni...

Előzmény: Vargham (3272)
Vargham Creative Commons License 2017.12.12 0 0 3273

Ezek szerint egyszerűen csak hozzak létre egy fájl-t, mozgassam bele amit külön szeretnék, és include?

Igen.

Esetleg olvass még utána:

https://www.tutorialspoint.com/cprogramming/c_header_files.htm

Előzmény: Brandyman (3271)
Vargham Creative Commons License 2017.12.12 0 1 3272

Szerintem nincs ilyen. Ebben a cpu-ban nincs MMU, ami ezt menedzselni tudná.

Ezt honnan vetted?

A forrásfájlok szerekezetének SEMMI köze az MMU-hoz.

Előzmény: digium (3267)
Brandyman Creative Commons License 2017.12.11 0 0 3271

NIncs bajom az include-al, csak nem tudom, hogy mennyire lehet saját célra használni ilyet. 

 

Ezek szerint egyszerűen csak hozzak létre egy fájl-t, mozgassam bele amit külön szeretnék, és include? 

Ez annyira egyszerűnek tűnik, hogy elnézést kell kérjek a láma kérdésért :-) 

 

Kipróbálom. 

 

Köszönöm! 

Előzmény: digium (3270)
digium Creative Commons License 2017.12.11 0 0 3270

Jah értem, csak összefésültem a file olvasással kapcsolatos problémáddal. Tehát csak a forrást szeretnéd külön szerkeszteni. Mi a bajod az include-al?

Előzmény: Brandyman (3268)
tibi-d Creative Commons License 2017.12.11 0 0 3269

Szia!

Én ezt úgy oldottam meg. hogy több void()-ra osztottam fel az elvégzendő feladatot. A Loop-ban sorra meghívom őket, mintha egymás után következnének. Így egy részfeladat 1-2 oldalnál nem hosszabb. Az egyes Void().kat külön lapon szerkesztem. Az IDE jobb felső sarkában lehet új lapot kérni.

Előzmény: Brandyman (3268)
Brandyman Creative Commons License 2017.12.11 0 0 3268

Nem kimondottan a CPU-ra gondoltam, hanem magára a szerkesztésre. 

Mint ahogy #include-al hozzáadsz a programodhoz olyan tartalmat, ami egy másik fájlban van leírva. 

példa;  RTC.getHour();

EZ a parancs külső fájlban van, mint ahogy az is, hogy mit kell csinálnia a CPU-nak ehhez. 

Csak én a saját dolgaimat szeretném külön fájlba pakolni, hogy kevesebb legyen ott, ahol dolgozom. 

 

Előzmény: digium (3267)
digium Creative Commons License 2017.12.11 0 0 3267

Szerintem nincs ilyen. Ebben a cpu-ban nincs MMU, ami ezt menedzselni tudná.

Előzmény: Brandyman (3266)
Brandyman Creative Commons License 2017.12.11 0 0 3266

És valóban! Köszi! 

 

Még egy kérdés: Egy nagyobb lélegzetű programon dolgozom, és már az idő nagyja azzal megy el, hogy scroll-ozgatni kell a programot, hogy megtalálja az ember azt, amit keres. 

 

Van arra mód, hogy a már megírt, bereszelt és jól működő programrészeket egy külső fájlba átmozgatva ne itt foglalja a helyet? 

Olyasmire gondolok, mint pld. a Delphi-ben a külső Unit használata...

Itt hivatkozok rá, de egy másik fájlban van. 

Előzmény: digium (3265)
digium Creative Commons License 2017.12.11 0 0 3265
Előzmény: Brandyman (3264)
Brandyman Creative Commons License 2017.12.11 0 0 3264

Engem az érdekelne, hogy hogyan olvasok vissza az SD kártyáról adatokat úgy, hogy pld. az utolsó 100 adat kellene, ami a fájlba íródott. 

 

Valaki találkozott már ilyennel? 

Előzmény: oregsas (3255)
ruzsa janos Creative Commons License 2017.11.29 0 0 3263

igen, csak ahogy viszont írtam, nem az Arduino programokat használom - egyelőre.

Ráadásul ha programból kell trnszponálni, az mindenképpen plusz idő (amúgy a modul adatátvile nagyon gyors, 10 Mbit/sec - elméletileg)

Előzmény: enginer (3262)
enginer Creative Commons License 2017.11.29 0 0 3262

Nem kell keresztbe programozni. Így futnak rajta rendesen a minta programok. Viszont szétszedni sem kellett volna. Én is idegeskedtem vele vagy 2 napig, aztán az egyik videóban megmutatta egy srác a trükköt! az egyik .h file ban kell átírni egy sort és megy minden pöpecül. :)

Előzmény: Prof (3258)
ruzsa janos Creative Commons License 2017.11.29 0 0 3261

a kockák 90 fokban elvannak csavarodva egymáshoz

FORGATVA - ha már mérnökök vagyunk :)

de igen, ezt szerettem volna mondani. tök vicces, hogy valakinek Shenzenbe valamiét így volt egyszerűbb nyákot tervezni, aztán ezzel szívatnak egy csomó embert :)

Előzmény: enginer (3260)
enginer Creative Commons License 2017.11.29 0 0 3260

Én is sz@ptam ezzel a modullal. Kismillió video van a youtube-on, hogy miket tud, de a gyakorlatban az össszes DEMO csak kockánként stimmel a kockák 90 fokban elvannak csavarodva egymáshoz. Gondolom Te is ezt szeretted volna írni.

Előzmény: ruzsa janos (3259)
ruzsa janos Creative Commons License 2017.11.27 0 0 3259

de éppen ez az: így nem kell keresztben programozni. valamiért a nyák gyártója így tette fel a LED foglalatát. Az 2x5 darab (adat és táp) csatlakozó teljesen értelmesen a szemközti oldalon van, vagyis ha egyetlen hosszú nyákot gyártanak, akkor mielőtt darabolod, az első kimenete össze van kötve a következő bemenetével. 

Előzmény: Prof (3258)
Prof Creative Commons License 2017.11.27 0 0 3258

Azt leszámítva, hogy "keresztben" kell programozni, érdekes elgondolás.

Előzmény: ruzsa janos (3257)
ruzsa janos Creative Commons License 2017.11.26 0 0 3257

na jó, ha már senki sem segített, megoldottam gépészmérnök-módra a mátrix-transzponálást. szétvágtam a négy modult, elforgattam őket 90 fokkal, összeragasztottam a 8x8-as panelokat - most már egy küldött byte egy kép-oszlopot jelent. Hardveres gyorsítás :)

(nyilván lehet kapni külön modulokat is, csak persze a 4-es olcsóbb volt, meg olyan jól hangzott, hogy akkor nem kell kábelezni a modulok között....)

Előzmény: ruzsa janos (3256)
ruzsa janos Creative Commons License 2017.11.23 0 0 3256

Urak, vettem most egy 4x64 ledes kijelzőt, mint ez: https://www.ebay.com/itm/MAX7219-Dot-led-matrix-MCU-control-LED-Display-module-for-Arduino-Raspberry-Pi-M/182289740901?hash=item2a7150b465:m:mrfecojN1D7VXJWfNu7GAZw

 

soros buszon működik, mivel még mindig nem számntam rá magam az Arduinos programozásra, kényteln voltam megérteni, megírni a protokollt, mindegy működik.

csakhogy ezen az eszközön az egy sorban lévő bytok kapják egymás után az adatot, tehát van ugye 8 darab 64 bites kolbászom. A karaktereket értelemszerűen függőleges 8 bitenként kellene beírnom, azon meg úgy következnek egymás után.

Kitaláltam, hogy lefoglalok az arduinoban egy videomemóriát, végülis mindössze 4x32 byte, ebbe írogatok bele bármit, majd amikor változás van, egyszerre frissítem az egész kijelzőt, mert azt kb 1,5 msec alatt meg tudom tenni, egyetlen paranccsal. Ez működik is

Itt akadtam el, mert viszont nekem a "videomemóriát" bit-szinten kellene címeznem, mintha egy 8x32 elemű mátrixba írnék, vagy a másik megoldás, hogy beírom az adatokat egy 8x8-as mátrixba függőlegesen, majd azt transzpnálom vízszintesre.

Erre a két utóbbira tudtok valami egyszerű, elegáns módszert? magas szintű műveletekkel meg tudom írni - de akkor egy rakás idő. Vagy vegyek egy máély levegőt, írjam meg assemblyben? (még a Z80-as korában képes voltam ilyenekre)

 

 

oregsas Creative Commons License 2017.11.22 0 0 3255

Köszönöm ! MEGY!!  Itt a bizonyíték !

 

Initializing SD card...initialization done.
Writing to datalog.csv...done.
datalog.csv:
testing 1, 2, 3.
testing 1, 2, 3.
testing 1, 2, 3.

Rátettem a másik kártyaolvasót és a 3. változattal ment .

Innen már csak játszom vele.

Előzmény: Törölt nick (3253)
oregsas Creative Commons License 2017.11.22 0 0 3254

Próbáltam : nem jött be . Most is a lényeg , hogy nem nyitotta meg a fájlt.

"    Initializing SD card...initialization failed! "  ez volt az üzenet.

Próbáltam más képen is :

   -  1. változatlan programmal  és CS   = Arduino D4

   -  2. if(!SD.begin(53))  {   helyett  if(!SD.begin(4))    {     és CS   = Arduino D4

   -  3. if(!SD.begin(53))  {   helyett  if(!SD.begin(10))  {     és CS   = Arduino D10

egyik sem jött be.

 Minden más maradt .

Még megpróbálom a másik kártyaolvasóval is.

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

/*
SD card read/write

This example shows how to read and write data to and from an SD card file
The circuit:
* SD card attached to SPI bus as follows:
** MOSI - pin 11
** MISO - pin 12
** CLK - pin 13
** CS - pin 4 (for MKRZero SD: SDCARD_SS_PIN)

created Nov 2010
by David A. Mellis
modified 9 Apr 2012
by Tom Igoe

This example code is in the public domain.

*/

#include <SPI.h>
#include <SD.h>

File myFile;

void setup() {
// Open serial communications and wait for port to open:
Serial.begin(9600);
while (!Serial) {
; // wait for serial port to connect. Needed for native USB port only
}


Serial.print("Initializing SD card...");

if (!SD.begin(53)) {
Serial.println("initialization failed!");
return;
}
Serial.println("initialization done.");

// open the file. note that only one file can be open at a time,
// so you have to close this one before opening another.
myFile = SD.open("datalog.csv", FILE_WRITE);

// if the file opened okay, write to it:
if (myFile) {
Serial.print("Writing to datalog.csv...");
myFile.println("testing 1, 2, 3.");
// close the file:
myFile.close();
Serial.println("done.");
} else {
// if the file didn't open, print an error:
Serial.println("error opening datalog.csv");
}

// re-open the file for reading:
myFile = SD.open("datalog.csv");
if (myFile) {
Serial.println("datalog.csv:");

// read from the file until there's nothing else in it:
while (myFile.available()) {
Serial.write(myFile.read());
}
// close the file:
myFile.close();
} else {
// if the file didn't open, print an error:
Serial.println("error opening datalog.csv");
}
}

void loop() {
// nothing happens after setup
}

 

Előzmény: oregsas (3251)
enginer Creative Commons License 2017.11.22 0 0 3252

Ennek a kapcsolónak, ugyan úgy,mint a hagyományosnak nem kell nulla meg trafó!!!!!

Ott van az oldalán, hogy simán bekötöd a kapcsoló helyére a fogyasztóval sorba.

1-2W Wattos jellemzően huzallábas LEDeket tartalmazó lámpáknál egy ellenállást kell párhuzamosan kötni az égővel, különben lekapcsolt állapotban is "világitani fog!!! Arduinót meg ne akard betuszkolni a kapcsoló alá, mert nem kell!!

ez nem az amit írsz!!!

Ez nem webszerveres WiFi-s kapcsoló szerintem.

Az a Sonoffhttps://www.aliexpress.com/item/2017-New-1CH-Sonoff-Wifi-Switch-Relay-Module-AC-90V-250V-220V-Wireless-Light-Timer-Switch/32802070237.html?spm=a2g0s.9042311.0.0.h3n9Pt de az nem fér be a kapcsoló helyére és annak tényleg kell 0-is, meg egy router amire csatlakozik

és azt valóban tudod a világ másik végéről is kapcsolgatni interneten keresztül. 1500-2000Ft. Benne van a  ESP8266.

Saját titkositott szerverük van. más nem tudja kapcsolgatni a lámpádat. A programozott kapcsolásokat valahol a NETen tárolják és onnan küldik a jelet hiába van kikapcsolva vagy lemerülve a telefonod. ;)

Ja! és arra is figyelj, hogy egyből ne rendelj belőle sokat Én a mozgásérzékelős kapcsólókkal jártam úgy,hogy nem férnek be az itteni dobozokba. Lehet, hogy kinában félcentivel nagyobb dobozokat használnak? Ha jól látom ez is ~8cm átlóban.

Előzmény: Törölt nick (3111)

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