www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Arduino - kaj arduino je in kaj ni

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
walchunus
Član
Član



Pridružen-a: Čet 23 Dec 2010 17:32
Prispevkov: 22
Aktiv.: 0.12
Kraj: Postojna

PrispevekObjavljeno: Pet Mar 04, 2011 12:31 am    Naslov sporočila:  Arduino - kaj arduino je in kaj ni Odgovori s citatom

Ponavlja se veliko vprašanj, takih in drugačnih mnenj in prepričanj o arduino razvojnih ploščicah in okolju arduino, znotraj vseh mogočih tem na forumu. Zato odpiram temo, kjer bo lahko tekla debata o tem.

Spodbudo črpam v pogovoru iz teme o podjetju tehnologija.biz:

http://www.elektronik.si/phpBB2/viewtopic.php?t=24867

Ker pa ne želim biti preveč off-topic, v nadaljevanju odgovarjam tu in vabim k debati. Ob tem si, seveda, želim, da se debata ne bi razvijala v stilu verskih vojn ali "moje navade so boljše od tvojih", temveč bolj v smislu izmenjave izkušenj, argumentov in pogledov.

_________________
Tomaž
-------------------------------------
http://serverway.wordpress.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
walchunus
Član
Član



Pridružen-a: Čet 23 Dec 2010 17:32
Prispevkov: 22
Aktiv.: 0.12
Kraj: Postojna

PrispevekObjavljeno: Pet Mar 04, 2011 12:33 am    Naslov sporočila:  Re: Arduino - kaj arduino je in kaj ni Odgovori s citatom

Dorijan je napisal/a:

- Bascom je še višje od C-ja ter je omejen na bascomov software, za povrh je pa relativno malo ciljnih uporabnikov posledica pa težje iskanje pomoči


Delim s tabo sentimente.

Citiram:

- Arduino je še višje,


Višje od bascoma? Lahko pojasniš?

Citiram:

za povrh pa še ne moreš direktno sprogramirati kode na ploščici izven arduino sistema.


Po čem to sklepaš?

Citiram:

Ampak ima veliko bazo uporabnikov, kar ga naredi izredno primernega za učenje.


Drži. Ne bom se spuščal v debate ali je arduino primeren/bolj primeren za vse aplikacije in za vsako nalogo (profi ali ne), ker pač povsod in pri vsaki stvari so plusi in minusi. In arduino našteje tudi kak minus. Kdaj prevagajo eni, kdaj drugi. Ti bom pa zaupal svoj pogled na stvar:

Plus arduina so številne napisane knjižnjice. Plus arduina je jezik, ki je v osnovi C++ in poenostavlja številne Cjevske kriptizme (bljek!), ki se jim lahko izogneš. Plus arduina pred Bascomom in podobnimi stvarmi, je v tem, da lahko mirno uporabiš že napisane kljižnice v C. In, ker je arduino jezik v osnovi C++, so tudi knjižnjice za arduino večinoma napisane kot knjižnice C++ (sicer pa kot C). Plus arduina in knjižnic je zastavljena abstrakcija hardvera, ki poenostavlja in odpira vrata za prenosljivost kode. Potrebno manj usposabljanja, hitrejša pot do produkta... Ja, kot javašu mi ta stvar čisto naravno sede v koncept. Verjamem tudi, da kdo, ki živi 24 ur na dan v asemblerju, vidi tak pogled hitro kot nedoumljiv in blasfemičen. Vsakemu svoje.

Minus arduino okolja je omejenost na tiste platforme, na katere je portan GCC in na katere so portane arduino knjižnjice (najbolj podprti so Arduino sistemi, torej ATMege na njih. Obstajajo tudi porti na nekatere ARMe, nekje sem zasledil omenjanje tudi PICov) in odvisnost od kvalitete teh portov. Minus je ogaben privzet IDE, ki mu sploh ne moremo reči IDE. V minus bi lahko šteli tudi malo nekonsistentno mešanje C in C++, ampak to, slednje, so finese.

Plus hardverskih ploščic arduino je pa modularnost in "ponovna uporabljivost" zgrajenih modulov. To, da lahko hitro sestaviš aplikacijo iz že dostopnih vezij. In to, da lahko tako sestavljene gradnike kar direktno montiraš v napravo, če imaš opravka z majhnimi serijami. (Ali pa, na katerikoli stopnji razvoja, zamenjaš s ploščico v ustreznem formatu in jo prispajkaš v namensko vezje. Ali pa - končno - uporabiš direkt AVR in čipe v svojem vezju.) Modularnost je, sicer, zafrknjena zadeva. In tudi rešitev, ki jo ponuja arduino, ni brez omejitev. Imaš pač možnost. Poleg tega, je arduino usmerjen na zelo konkretno ciljno publiko: ljubitelje, ki hočejo nekaj narediti. In je v osnovi orodje zanje. Poseben med podobnimi, je pa v tem, da ni zaprt in eksotičen v smislu raznih C-Controlov, takih in drugačnih modulov z Basic interpreterji ipd. Vse je odprto. Hardver. Knjižnice. Še prevaja se z odprtim in standardnim prevajalnikom. In je "C-jevski" kot je le mogoče ob tem, da ni običajni C. Namenoma.

"Arduino jezik" je v bistvu:
1. arduino knjižnjice
2. prototipi funkcij, ki jih samodejno generira in vstavi IDE
3. avtomatsko dodana funkcija main z zanko, ki kliče uporabnikovi funkciji setup in loop

Kodo prevaja standarden prevajalnik GCC. Lahko prevajaš tudi z make, brez IDE, ali z eclipsom/netbeansom. Ravno tako lahko brez IDE naloudaš nastali hex fajl v mikrokontroler, lahko tudi direkt brez bootloaderja, prek ISP.

Osebno uporabljam Arduino knjižnjice v kodi, brez arduino IDE, na mikrokontrolerju AT90USB646, ki nima sicer z uradnimi arduino ploščicami ničesar skupnega. S podobnimi AVRji ne bi smel biti problem. Pač prilagodiš source knjižnjic tu pa tam, če je treba.

Citiram:
Za večino uporabnikov je C najprimernejši, assambler pa za takrat ko rabiš precizne časovne preklope izvajat.


To je zelo odvisno od tega, kateri segment uporabnikov zajema "večina", ki jo imaš v mislih. V arduino lahko uporabljaš toliko Cja kot ga hočeš. To, da ti okolje ponuja v naprej pripravljene razrede, makroje in funkcije, da lahko z njimi narediš neko stvar bolj enostavno in pregledno, še ne pomeni, da jih moraš uporabljat. Kot tudi ti ni treba uporabljat že napisanih knjižnic, jezika ali pevajalnika za uporabo arduino ploščic, če ti je ljubše delati mimo njih. Lahko greš tudi mimo vseh kremšnit, ki ti jih ponuja koncept arduino, in spišeš vse v asemblerju.

Citiram:

Arduino je zaradi svoje uporabnosti in podpore primeren za učenje in razumevanje programiranja -> z poznejšim prehodom na C
Saj lahko uporabimo to znanje jezika tudi na ostalih jedrih mikrokrmilnikov (ARM, 8051...)


Se strinjam. Ravno to je, v mojih očeh, očitna prednost pred Bascomom, recimo. Cjevska sintaksa in Cjevski jeziki so dandanes vseprisotni, od mikrokontrolerjev do spleta.

Citiram:

Ne moreš pričakovati, da boš prišel na neko resno firmo in jim tam pisal programe v Bascomu ali Arduinotu. Prej ali slej boš prišel na neko oviro za katero boš potreboval resen programski jezik.


Na to mora odgovoriti kdo drug. Tudi v Cju in drugje si omejen na dostopne knjižnjice, če ne misliš ravno napisat vsega z nule (dvomim, da te bo vsak za to plačeval). Za marsikatere aplikacije pa najbrž zadoščata oba in sta lahko celo bolj primerna kot C ali kaj drugega. In prepričan sem da, če ta pogled razvijamo naprej, prej ali slej pridemo do primerov, ko za razvoj aplikacij tudi C ni več najbolj primeren, po tem ko že prej odpade asembler, ipd. Embedded področje je namreč široko in raznoliko kot ocean.

Citiram:

Podobna neumnost je na našem faksu saj nam prodajo(50€) ploščice za programiranje, ki imajo nek svoj software WinIDEA?


Spomnim se, da smo tudi mi na FRI nekaj delali s temi WinIDEAmi in freescali, če se ne motim. Pa večinoma, kot mi je ostalo v spominu, okolje sploh ni delalo in smo se ubadali samo s tem.

_________________
Tomaž
-------------------------------------
http://serverway.wordpress.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 39.72
Kraj: Kranj - struževo

PrispevekObjavljeno: Pet Mar 04, 2011 11:37 am    Naslov sporočila:  Re: Arduino - kaj arduino je in kaj ni Odgovori s citatom

walchunus je napisal/a:
Citiram:
Ne moreš pričakovati, da boš prišel na neko resno firmo in jim tam pisal programe v Bascomu ali Arduinotu.

Na to mora odgovoriti kdo drug.

Res je.
Recimo, da napišeš program v enem od naštetih jezikov, s predpripravljenimi knjižnicami. V knjižnici je skrit nek bug (kar ni redkost). Tak program potem teče v enkoderju na buldožerju.
Ko bug (na buldožerju) stopi v akcijo, kdo bo odgovarjal? Firma, ki je naredila knjižnice za Bascom ali Arduino? Shame on you
"Nasrka" firma, ki je enkoder prodala.
Ali drug primer - merjenje krvnega tlaka ali nadzor pacienta.
In tu je potrditev prvega citata.

Omenjeni "softverčki" so primerni za zapiranje rolet na domači hiši...
V C-ju in podobno imaš bistveno večji nadzor nad kodo, ki se dejansko izvaja.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
walchunus
Član
Član



Pridružen-a: Čet 23 Dec 2010 17:32
Prispevkov: 22
Aktiv.: 0.12
Kraj: Postojna

PrispevekObjavljeno: Pet Mar 04, 2011 2:29 pm    Naslov sporočila:  Re: Arduino - kaj arduino je in kaj ni Odgovori s citatom

Prehitro skušamo, kot opažam, posploševati posamezne primere, probleme in področja, ki jih kdo srečuje, kot da so to edini problemi in primeri, s katerimi se embedded računalništvo ubada. Niso. "Embedded" je vse od par assemblerskih vrstic v par K rama, ki dela nekaj preprostega, do zajetnega zalogaja java kode na prav konkretnih sistemčkih, z operacijskim sistemom idr. In vmes so tudi rolete na domačih oknih. Raznoliko kot dno oceana.

aly je napisal/a:
Ko bug (na buldožerju) stopi v akcijo, kdo bo odgovarjal? Firma, ki je naredila knjižnice za Bascom ali Arduino?


Drži. Ampak ti prodajaš tukaj C kot da je že sam po sebi rešitev za vse probleme. Da "če si C", pa teh in podobnih problemov in pasti sploh nimaš. Ali da so rešitve kar na dlani.

Citiram:
V C-ju in podobno imaš bistveno večji nadzor nad kodo, ki se dejansko izvaja.


Prosim, razloži. Kako?

Največji nadzor imaš v strojnem jeziku. Ko kucaš enke in nule direktno v pomnilnik. Tam nimaš prav nobene abstrakcije. Asembler že uvaja določeno abstrakcijo z makroji in knjižnjicami.

Edini smiselni diskurz, po mojem mnenju, je mogoče C++ proti C. Edino, kar loči arduino od C... in arduino kodo od C kode, so objekti. Če jih uporabljaš. v nasprotnem primeru ostane navaden C. Z vsem kar ta je in kar ponuja. Na malo lepši način za programerja.

_________________
Tomaž
-------------------------------------
http://serverway.wordpress.com/
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 491 dni


Powered by phpBB © 2001, 2005 phpBB Group