MifTy Postat Decembrie 11, 2015 Partajează Postat Decembrie 11, 2015 pentru că eu şi Aw Genetix ne-am contrat un pic pe threadul ăsta, am decis să discutăm aici motivele pentru care Arduino e "o fiţă" sau nu, şi dacă un începător în materie de mcu ar trebui să înveţe asm şi C, sau să înveţe să scrie sketch-uri pentru Arduino. personal, consider că e mai ok să înveţi la început asm şi C (în ordinea asta), şi mai târziu să programezi pentru Arduino.asta deoarece:- orice mcu atmel se poate programa in asm, şi majoritatea în C, mai puţine sunt suficient de bune pentru Arduino- ajungi dependent de platforma Arduino, şi de Arduino IDE. chiar mai dependent decât e un programator în C de librăriile lui!bineînţeles, se poate face flame şi pe tema "pic vs avr", dar zic să ne limităm deocamdată la asta.mai ales că deja există echivalente cu pic ale lui Arduino, iar gurile rele spun că Raspberry ar fi nimic altceva decât o clonă de Arduino bazată pe alt mcu!iar din câte am văzut până acuma despre Raspberry, aş înclina să le cred! care sunt părerile voastre, şi de ce credeţi asta? Link spre comentariu
belasajgo Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 Platforma Arduino se adreseaza in special incepatorilor din acest domeniu (elevi / studenti). Poate ar fi mai util pentru incepatori ca prima data sa invete de exemplu C, insa la Arduino beneficiul este ca se ofera totul "mura-n gura", se gasesc o tona de informatii gratuite pe internet si mii de proiecte gata facute. Multi probabil raman captivi la platforma Arduino si Arduino IDE. Dar cineva care a adunat deja suficienta experienta cu Arduino, cred ca poate invata destul de repede si C daca vrea. Link spre comentariu
costi002 Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 Eu am început cu ASM. După câțiva ani am trecut la C și mi s-a părut mult mai simplu. Recomand începerea cu ASM pentru ca doar asa înțelegi pentru ce sunt registri aia și cum sa ii folosești. Link spre comentariu
XAN77 Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 (editat) Eu nu văd utilitatea arduino decît pentru începători. Acum programez în C și mi se pare mai mult decît ok. C-ul este deja un standard și este respectat, mai mult sau mai puțin, de producătorii de compilatoare. Acum nu mai contează prea mult dacă scriu cod pentru PIC, AVR sau 8051, C-ul e cam același, diferențele sunt minore. De aceea e și ușor de portat un cod de pe o platformă pe alta. Sunt sigur că la început mi-ar fi fost util arduino, cînd mă chinuiam în asamblare, dar nu mai e cazul. Editat Decembrie 12, 2015 de XAN77 Link spre comentariu
Liviu M Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 (editat) N-am scris nici un program in assembler, pentru nici un controller. Prea mare consumator de timp. N-am avut nevoie niciodata sa storc ultima picatura dintr-un microcontroller. A fost o perioada cand nu concepeam sa ma uit la Arduino - scriam cod "de la 0", in C, pentru PIC-uri. Cred ca mi-am scris singur toate bibliotecile (nu librariile) de functii, considerand ca numai asa pot invata si controla mai bine controllerele. De-aia am folosit picc/xc8 in dauna compilatoarelor mikroe. Am trecut la "faza urmatoare" - ARM-uri (seria STM32). Sapat dupa IDE-uri, compilatoare, debuggere. Oprit la eclipse + arm-gnu-gcc (c si c++) + openOcd (combinatia merge si in Linux). De data asta am fost mai "flexibil" - am scris cateva cateva biblioteci singur, am portat biblioteci de la alte "sisteme" si am folosit bibliotecile altora. Si am ajuns cumva-cumva la concluzia ca uneori timpul meu e mai important decat pusul fiecarui bit la locul lui cu mana proprie. Asa ca acum folosesc de cate ori pot Arduino sau similare pentru diverse platforme. IDE-ul Arduino poate fi folosit mai nou si pentru alte controllere - eu il folosesc cu ESP8266, iar pentru Launchpadurile de la TI folosesc Energia. Am scris laudele de mai sus ca sa arat ca am trecut prin majoritatea "fazelor" discutate mai sus. Si o data cu trecerea timpului am ajuns la concluzia ca cel mai mult conteaza cine foloseste sculele, nu sculele in sine. Cel mai bun exemplu e Bercioiu, care foloseste Flowcode si care nu poate fi acuzat ca nu stie cum e cu registrii PIC-urilor. Si am mai ajuns la concluzia ca alegerea sculei depinde de scopul programatorului. Bineinteles ca folosirea unei mediu de programare "prietenos" nu exclude studierea arhitecturii controllerului programat si, cand e cazul, accesul direct la registri. Impatimitilor de "pus bitul cu mana" le atrag atentia ca in ide-ul arduino se pot ignora functiile din biblioteci si se poate programa linistit in assembler sau la nivel de registri. Celor interesati le recomand studierea bibliotecii pentru controlul ledurilor "tricolore" (adafruit neopixel). Iar pe cei care considera "programarea in c" mai buna decat "programarea Arduino" ii informez ca aceasta din urma e de fapt programarea in c++ folosind "la baza" acelasi compiler ca Atmel Studio 7 (avr-gcc++) arduino-1.6.5-r5/hardware/tools/avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffuncti Atmel® Studio 7 includes the GCC C and C++ compiler, assembler and a simulator Mai nou, din cate stiu eu, sketchurile Arduino pot fi importate in Studio7 si folosite de acolo. Dupa parerea mea, singurul lucru care lipseste cu adevarat in IDE-ul arduino e un debugger. PS Topicul e pus la sectiunea gresita. Editat Decembrie 12, 2015 de Liviu M Link spre comentariu
Dr.L Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 Eu am trecut putin (de tot) prin asm si C. Arduino e bun ca faci repede multe chestii, gasesti imediat pe net cum functioneaza ceva si cum poti implementa ceva. Explicatiile si modul simplist si rapid de a pune la punct proiecte nu foarte pretentioase il fac asa raspandit. La cat de ieftine sunt uC-urile, nu conteaza ca ocupa spatiu maricel, mai poate fi optimizat etc. Apoi, dupa cum s-a scris mai sus, cine vrea mai mult, poate trece direct la C imediat! Link spre comentariu
Vizitator Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 (editat) Eu cand am inceput programarea, am inceput-o in C++ dar nu pentru uC, o faceam pentru PC. Cand m-am apucat de uC nici nu aveam Internet acasa, asa ca am invatat ASM. Nici macar nu stiam ca exista Arduino , sau poate nici nu exista. Nu stiu asta. Dar, eu sustin Arduino. In primul rand este C++ , cu niste rutine mai prietenoase. Arduino IDE are presetate doar cateva microcontrolere, pe care acesta s-a gandit sa le comercializeze. Dar se poate face usor o adaptare la un Attiny sau Atmega32, sau alt uC AVR. Cand ajungi la nivelul ca nu mai poti lucra in Arduino IDE inseamna ca intre timp ai invatat si altceva, e prea departe nivelul ca sa nu fie asa. Eu vad pe ArduinoIDE ceva de genul lui Delphi7, care a murit din cauza reticentelor, si nu in ultimul rand a preturilor sale de Licenta. Dar nu inseamna ca nu era un mediu prietenos de programare, mai ales ca portabilitatea sa depasea C, acesta din urma fiind dependent de tone de resurse instalate in PC. Personal nu-mi place deloc Editorul cu care vine ArduinoIDE dar se poate folosii Notepad++ cu plugin de Arduino, sau alt editor mai capabil. Librarii poti sa-ti faci cate vrei si cum vrei...deci... In Total, opinia mea este ca...daca intentionezi sa programezi un uC pentru interese de hobby, e foarte ok si decent platforma oferita de ArduinoIDE. Daca vrei insa sa programezi la nivel profesional, "nu da bine" Arduino. Intrebare. Pentru acelasi program, sa spunem...banalul Led Blink, sau altceva. Excludem Bootloader, si comparam Hex-urile dintre unul facut cu ArduinoIDE si unul facut in C. Ce diferente vor fi ca si dimensiuni ? Editat Decembrie 12, 2015 de Vizitator Link spre comentariu
MifTy Postat Decembrie 12, 2015 Autor Partajează Postat Decembrie 12, 2015 (acum am văzut şi eu că avem un topic special pentru Arduino... poate-l mută moderatorul de-aici! )eu reproşez lui arduino ide exact ce reproşez tuturor limbajelor de programare "de nivel înalt": dependenţa de librării.e comod, ai la dejetul mic rutine şi linii de cod scrise de alţii, dar aşa ajungi la aberaţii de genul unui "hello world" de 1 mega sau mai mult, nu de 20 de octeţi! să nu mai vorbesc ce se petrece când tu compilezi ceva cu setul x de librării, şi altcineva vrea să te imite, dar foloseşte setul y de librării. o să-mi spuneţi că de-aia există "librării standard"... dar aţi dat din lac în puţ: de acord, librăriile comune te scutesc de o grămadă de dureri de cap, dar te leagă pe vecie de utilizarea lor, chiar dacă ai putea fi capabil să scrii personal o librărie (sau mai multe) mai mici şi mai rapide! să nu mai vorbesc de faptul că adaugă şi ele nişte limitări în plus, la cele inerente, datorate arhitecturii mcu, platformei de dezvoltare, limbajului de programare folosit, etc... echivalentul lui "hello world" din lumea mcu-urilor (nu contează care), e aprinderea unui led.tot vine vacanţa, n-aveţi chef să încercaţi să scrieţi un program care să aprindă un led folosind, pe rând, asm, C, şi toate celelalte limbaje de programare pe care le cunoaşteţi, pe ce mcu vreţi voi, şi să comparaţi mărimea codului compilat? şi după aia, pasul următor: un led clipitor! :)da, ştiu... există mcu-uri cu flash de 1 mega sau mai mult... dar dacă e musai să mai înghesui un progrămel în câţiva kiloocteţi, ce-o să faceţi?sau dacă, din motive mai mult sau mai puţin valabile, dintr-un mega de flash nu mai puteţi accesa decât 500 de octeţi, şi e obligatoriu să vă descurcaţi numai cu mcu-ul ăla? revenind la arduino, aş spune că nu-mi displace ideea bootloaderului... dar mă enervează la culme faptul că sunt limitat la "ce ştie" bootloaderul să facă, şi sunt blocat doar pe o semnificaţie a pinilor.şi culmea e că Arduino a pornit la drum ca "încă o tentativă de platformă de dezvoltare pentru avr atmel"... şi, iniţial, aveai toată libertatea să "torni" în mcu ce pofteai... acum a "devenit standard"... Link spre comentariu
Mircea Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 Exagerezi Mifty, acum ma joc cu un GLCD + touch. Pe ecran pun si poza mea din avatar (cam 1/3 din ecran). Abia ajunge la 100k. Daca vreau, pun si un card SD. La cat costa toate... nu merita sa-ti bati capul cu orice detaliu.Insa vreau sa stiu ce se intampla in mai toti registrii, nu ma incred numai in ce seteaza bibliotecile. Nu poti folosi orbeste bibliotecile, doar le folosi ca sa-ti usureze viata.Liviu are mare dreptate: nimic nu justifica azi timpul pierdut. Link spre comentariu
mars01 Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 (editat) Pe mine personal nu ma intereseaza cum fac un lucru atata timp cat intentia mea se traduce exact in hardware/software. Folosesc ce am chef, cand am chef. Astazi poate fac ceva in Flowcode, maine ma folosesc de mikroC, poimaine Mplab. Ieri poate am folosit Arduino sau Energia. Insa cand folosesc Arduino/Energia/Maple nu folosesc IDE-ul Arduino, pentru ca nu imi place si sunt si alte alternative. Am cumparat licenta pentru un plugin care ma lasa sa folosesc si optiunea de debugger dar exista si varianta free (fara debugger si ceva mai lenta la compilare). Acest plugin imi permite sa programez Arduino/Energia in Visual Studio. Ceea ce este o chestie misto. Nu programez asamblare pentru ca ... nu am nevoie. Nu ma intereseaza ca sa am un cod supereficient. Nu ma intereseaza sa scot untul din microcontroller. De ce nu? Pentru ca fac hobby si nu competitii. Nu sunt fan Microchip, Atmel, Freescale, TI, STM, Renesas sau mai stiu eu ce ... Toate uC-urile merg la fel. Importanta este imaginatia mea. Afirmatia ca Arduino este pentru pusti. Eu zic: Aiurea. Cred insa ca multi programatori de moda veche sunt pur si simplu iritati ca pustii au ajuns sa faca in cateva zile ceea ce ei s-au chinuit luni sau chiar ani. Eu multumesc echipei Arduino pentru ca mi-a permis sa vad in mintea unor programatori altruisti. Pentru ca majoritatea programatorilor (de moda veche) este foarte geloasa cu cunostiintele lor si vor doar sa isi mentina starea de superioritate fata de ceilalti, tinandu-i in ignoranta. Ceea ce a adus Arduino, Flowcode este sfarsitul ignorantei si a unui gen de "dark age" al electronicii digitale. A facut accesibil tuturora "magia" de a vedea ca se poate programa, ca nu ai nevoie de nu stiu ce "talente" de "wizard". Acum si copiii de 10 ani pot programa si pot cunoaste placerea de a vedea ceva ce iese din mainile lor dar la un nivel superior. Noi o faceam cu tranzistori si faceam generatoare de ton, licurici. Ei acum fac roboti cu senzori la care acum cativa ani doar visam ... Editat Decembrie 12, 2015 de mars01 4 Link spre comentariu
one Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 Cred ca nu are nici o importanta urmarea unui sablon la invatarea unui lucru, inclusiv programare. Din contra, eu sustin variabilitatea si multitudinea optiunilor, aceasta va avea ca si consecinta oameni pregatiti in mod diferit, care vad problemele in mod diferit si cel mai important, vor gasi solutii diferite. Ce ne-am face daca toti am gandi la fel ? In principiu Arduino nu era necesar pe lume, dar acum ca este puteam sa traim cu el. Nici BeagleBone nu era necesar, nici RaspberryPi, totusi unii au cumparat placile astea. Cred ca se putea trai si fara Android sau iPhone sau facebook, apropos era un topic pro-contra facebook. Utilizatorii tind sa creada ca era nevoie si este un lucru bun, in timp ce non utilizatorii gasesc argumente contra. Arduino este si pentru Windows si pentru Linux, Mac, la fel si compilatoarele de la Microchip. Atmel se complica de la o versiune la alta si scoate un AVR studio tot mai incarcat care necesita tot mai multa putere de calcul. Ce era daca faceau ceva simplu daca se incarca imediat ? De ce trebuie sa se bazeze pe visual studio ? O versiune grafica pentru Linux si ar fi castigat destui simpatizanti. Eu nu programez in limbaj Arduino, dar am pe acasa peste 20 placi arduino de diverse tipuri, De ce ? Am nevoie sa probez ceva, scriu programul in C, il ard intr-un arduino si conectez la un breadboard. Ce se intampla cand programezi in C? Iei datasheet-ul controllerului, te uiti ce timere programezi, la ce pini te legi, te uiti la ce porturi legi una sau alta configurezi intrare sau iesire... La Arduino ai numerele scrise pe pini scrii digitalWrite (5, HIGH) si ai aprin led-ul. Ce poate fi mai simplu pentru cineva care vrea doar sa aprinda un LED ? Cate linii de cod scrii ca sa obtii un semnal PWM in C si cate in Arduino ? Arduino clar castigator, mai ales ca intructiunile arduino sunt proctic niste macro care tot in C se transforma si se compileaza cu avedude, se ard in controller prin bootloader asemanator cu stk500 deci tot marfa aia dar cu alt ambalaj. Avantaj la asm si la C ar fi ca poti sa folosesti scule serioase pentru debug, practic vezi la nivel de registru aproape orice, dar informatica moderna se bazeaza pe limbaje de nivel inalt si nu mai programeaza aproape nimeni in assembler. Alt avantaj ar fi ca daca vrei sa ai control complet asupra rularii programului, de exemplu ai o placa de siguranta, nici nu se pune problema sa o programezi cu ceva de nivel inalt si atunci cam obligat ajungi la C. Nu cred ca scrii in assembler un program pentru o interfata Ethernet cu ENC28J60 de exemplu, Arduino are cel putin o librarie deja facuta, trebuie doar inclusa in program. Apoi, toate librariile Arduino sunt scrise in C, sunt o sursa incredibila pentru cine programeaza in C e suficient sa caute in google arduino+ce il intereseaza. 1 Link spre comentariu
mars01 Postat Decembrie 12, 2015 Partajează Postat Decembrie 12, 2015 Apoi, toate librariile Arduino sunt scrise in C, sunt o sursa incredibila pentru cine programeaza in C e suficient sa caute in google arduino+ce il intereseaza. Cred ca acest aspect este unul dintre cele mai importante. Cu totii stim ca uneori datasheet-urile (foile de catalog) pot fi destul de criptice iar alte ori pot contine prostii crase (am colegi care s-au confruntat cu asa ceva cu un DSP de la Analog Devices iar indienii de la support au dat un raspuns total tampit si l-au marcat tot ei ca rezolvare ...). Sansele sunt destul de mari ca cineva care activeaza in lumea Arduino sa fi gasit deja rezolvarea. Sigur, se invata mult chiar in chinurile de a rezolva problema, dar uneori avem nevoie de rezultat si nu de proces. Pana la urma ingineria presupune (destul de des) in a prelua ceva facut de altcineva si inbunatatirea acestuia, nu toti suntem doctori ca sa facem "pasi in necunoscut". Link spre comentariu
Vizitator Postat Decembrie 13, 2015 Partajează Postat Decembrie 13, 2015 (editat) Asa este. Arduino a deschis calea si ochii multora. A chemat in randul microcontrolerelor, a dat curaj, si face asta in continuare. Nici o alta platforma, nu a reusit asta pana acum. Si stiti ceva. Acest lucru este cel mai important. Pentru ca dupa ce-ai gustat...daca chiar vrei poti sa te dezvolti. Si chiar insusi Arduino, nu se termina la ceea ce inseamna Inceput. Asa cum am zis. Librariile se pot scrie de la zero, poti face totul de la zero, pastrand Limbajul cu care , hai sa spunem ca "te-ai ales". Dar ce programator, poate sa spuna azi: eu stiu doar "cutare" limbaj ? Ha? Toti stim cel putin 2-3-4 sau mai multe limbaje. Pentru ca e normal sa fie asa. Asta inseamna in fond un programator. E similar cu un Translator. Cat mai multe limbaje. Dar revin. Ce este mai important, scopul. A fost atins. Atragerea spre microcontrolere. Super! Sa dai oamenilor ocazia sa se dezvolte cu placere... Eu nu spun asta din cauza ...ca as fi in situatia in care am cunoscut uC-ul prin prisma lui Arduino, desi regret. Pentru ca m-am batut cu capul rau de tot pana am inteles. Dar..de exemplu, pe fiu-miu..pana la Arduino nu a vrut sa auda de programare la uC. Insa am vazut evolutia lui, placerea, bucuria...de la un Led la PID-uri pentru drone... in mai putin de 2 luni, si pot sa-mi dau seama ca nici o alta platforma nu a reusit asta. Si da, a folosit biblioteci, dar ti se dezvolta gandirea structurata, viziunea programarii... Iar El, nu e decat un caz. Puteti nega asta ?...Este oare Arduino o fita sau ceva lipsit de sens? Editat Decembrie 13, 2015 de Vizitator Link spre comentariu
Vizitator Postat Decembrie 13, 2015 Partajează Postat Decembrie 13, 2015 (editat) @mars01: nu stiu ce avion ai tu acolo, dar mie pe calculator, Visual Studio mi s-a instalat in mai mult de o ora, se deschide in mai mult de 2 minute..si ..face cam cat Notepad++. La dezinstalare i-a luat nu mai putin de 40minute. Pff...m-am simtit si a durat ca la o devirusare..! Atata ca are cod intuitiv, adica te completeaza dansul. Tie iti merge ok VisualStudio ? Recunosc ca am o parasuta de pc, unde am verificat: E5300 2.60Ghz, 4GbRam ... dar oricum chiar asa ... 8GB de soft cel mai putin, pentru ...mno.. daca iti trebuie si pentru altceva...o fi ok dar altfel nu. Notepad++ castigator la puncte. - 2 mega soft Editat Decembrie 13, 2015 de Vizitator Link spre comentariu
Barbu Andrei Postat Decembrie 13, 2015 Partajează Postat Decembrie 13, 2015 Ca incepator, eu sustin Arduino. Habar nu am de programare si alte chestii din astea. De exemplu, la un "program" pentru Pic sau Raspberry ,ma uit ca curca in lemne. Nu inteleg nimic. In schimb, la Arduino, mi se pare mai usor de inteles. Link spre comentariu
Postări Recomandate
Creează un cont sau autentifică-te pentru a adăuga comentariu
Trebuie să fi un membru pentru a putea lăsa un comentariu.
Creează un cont
Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!
Înregistrează un nou contAutentificare
Ai deja un cont? Autentifică-te aici.
Autentifică-te acum