Elektroda.pl
Elektroda.pl
X
Relpol
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Bascom vs. Arduino - co dla początkującego

piotrva 28 Sie 2011 15:06 13784 34
  • #1 28 Sie 2011 15:06
    piotrva
    Moderator Mikrokontrolery

    Witam serdecznie wszystkich (w szczególności bardziej doświadczonych) kolegów.

    Od razu przejdę do sedna mojego pytania, a raczej chęci zasięgnięcia opinii, gdyż swoje zdanie na ten temat mam ustalone, ale ujawnię je na końcu dyskusji.

    Mamy zatem dla początkujących elektroników pragnących zająć się mikrokontrolerami do zaproponowania oprócz C (w czystej formie, czyli AVR-GCC i np. Avr Studio, którego wielu początkujących nie wiadomo dlaczego się boi, choć są już na szczęście świetne polskie publikacje na ten temat) programowanie w środowisku Bascom AVR (Bascom BASIC) lub Arduino (C++ z gotowymi bibliotekami). I pragnął bym teraz poznać Wasze opinie na temat tych 2 środowisk, ich możliwości i sensu dydaktyczno-hobbystycznego rozpoczynania programowania w tych środowiskach. Które jest bardziej przyszłościowe i jakie korzyści oraz straty (intelektualne) poniesie nasz początkujący, któremu na pierwszy ogień podamy jedno z tych środowisk.

    Jak już wspomniałem mam pewną opinię na ten temat, jednak ujawnię ją pod koniec tej dyskusji, gdy zbiorę kilka niezależnych opinii.

    Bardzo też proszę dyskutujących o zachowanie kultury, abyśmy znów nie rozpoczęli dyskusji nad wyższością C nad wszystkim innym, bo nie o tym mamy rozmawiać.

    Z góry dziękuję za każdy głos.

    0 29
  • Relpol
  • Pomocny post
    #2 28 Sie 2011 16:50
    Klima
    Poziom 30  

    Arduino to całe miriady płytek, rozszerzeń, komponentów, szildów itp. Bascom to jedynie kompilator z bibliotekami do kilku zastosowań.
    Poza tym, Bascom nie jest darmowy i chyba nie jest tak popularny jak arduino.

    0
  • Pomocny post
    #3 28 Sie 2011 17:02
    mirekk36
    Poziom 42  

    Moim skromnym zdaniem, o ile mogę się wypowiedzieć, to chyba bardziej proponowałbym początkującym Arduino niż Bascom. Owszem Bascom ma wiele zalet - bo totalnie początkujący strasznie szybko uzyska efekt swoich działań - np wyświetlenie czegoś na LCD ;) co jest dosyć ważne, gdyż się nie zniechęci, nie rzuci tego nowego zainteresowania w kąt i będzie działał dalej....

    Jednak nie wchodząc już w opis wad dalszego wkraczania w Bascoma, skupię się na zaletach Arduino - skoro taki temat. Otóż Arduino to hmmm poniekąd też jakby taki Bascom. Tyle że oparty o język C a nawet o C++. I jakie by nie były ograniczenia tego sposobu programowania to podobnie jak Bascom, ma on ogromną wręcz gigantyczną społeczność i setki jak nie tysiące gotowych rozwiązań. Zatem wyświetlenie czegoś na LCD przy pomocy Arduino sprowadza się do tak prostych operacji jak w Bascomie. Tyle tylko, że tu już człowiek chcąc nie chcąc zaczyna "lizać na siłę" język C/C++. A to jest o wiele zdrowsze na jakąkolwiek przyszłość, bo rozwój w Bascomie zwykle kończy się na szprycowaniu go asemblerem żeby uzyskać coraz więcej i więcej. A tu? a tu przesiadka na zwykły C dla AVRów czy też na czysty C++ to jak zjedzenie innego cukierka.

    Reasumując w takim porównaniu Bascom vs Arduino --> zdecydowanie opowiadam się za Arduino.

    Co do kosztów to też lepiej wychodzi Arduino, ponieważ Bascoma i tak trza kupić żeby coś większego robić, a Arduino jest za Free a na dodatek, na początek można sporo zrobić na gotowej pojedynczej płytce Arduino albo jej klonie albo nawet składając ją samemu. Wystarczy procek ATmega168 i już mamy Arduino ;)

    -1
  • Pomocny post
    #4 28 Sie 2011 21:47
    atmeg
    Poziom 14  

    Cytat:
    Które jest bardziej przyszłościowe i jakie korzyści oraz straty (intelektualne) poniesie nasz początkujący, któremu na pierwszy ogień podamy jedno z tych środowisk.

    Oddaje głos zdecydowanie na Bascom .

    0
  • #5 28 Sie 2011 23:23
    piotrva
    Moderator Mikrokontrolery

    atmeg napisał:
    Cytat:
    Które jest bardziej przyszłościowe i jakie korzyści oraz straty (intelektualne) poniesie nasz początkujący, któremu na pierwszy ogień podamy jedno z tych środowisk.

    Oddaje głos zdecydowanie na Bascom .

    Jakieś uzasadnienie?

    0
  • Pomocny post
    #6 29 Sie 2011 01:12
    dondu
    Moderator Mikrokontrolery Projektowanie

    Zacznę od tego, że uważam, iż: Każdy język jest dobry dopóki pozwala Ci zaprogramować mikrokontroler tak jak chciałeś.

    Ponieważ pytasz o dwa konkretne środowiska, których akurat nie znam, to napiszę krótko:

    Moje zdanie znasz, ale je w skrócie przypomnę:
    - BASCOM poniżej 14 lat (choć może powinno być nawet 12 lat),
    - reszta C a w drugiej kolejności assembler.
    Swoje stanowisko w sprawie zalet i wad także opisałem (wiesz gdzie więc nie podaję linka).

    Ale jak zwykle dodam słowo KOMPROMIS, bo na wybór języka, środowiska, itd. ma wpływ jeszcze wiele innych czynników i trudno ustalać tak sztywne granice jak podałem wyżej. Podobnie jest w przypadku, na temat którego chcesz poznać nasze opinie. Czasami na decyzję może mieć wpływ to, że kolega z tego samego bloku już działa na PIC-ach i pisze w MicroBasic czy MicroC :)

    Co do C - czyste czy np. Robot C, to już moim zdaniem ma mniejsze znaczenie, bo łapie gość składnie i przyzwyczajenia.

    Podsumowując:
    Z tych dwóch doradzałbym Arduino.
    A na końcu na to wszystko jeszcze nakłada się problem głębokości portfela :)

    EDIT:
    Może łatwiej by było, gdybyś zdradził w jakim celu ten temat poruszasz?

    0
  • Relpol
  • #7 29 Sie 2011 08:57
    piotrva
    Moderator Mikrokontrolery

    Moje cele są czysto badawcze-naukowe. Po prostu w tej chwili ukończyłem pisanie kursów programowania mikrokontrolerów zarówno w Bascom jak i Arduino (a programuję również w C) i sam sobie na ten temat wyrobiłem zdanie, a teraz chcę poznać opinie innych.

    0
  • Pomocny post
    #8 29 Sie 2011 09:38
    tmf
    Moderator Mikrokontrolery Projektowanie

    Zdecydowanie Arduino - ma ciekawą filozofię oprogramowania. To że jest w C++ też IMHO jest dużą zaletą, bo na większych platformach też w praktyce będziesz tego języka używał. Arduino ma też coś w rodzaju HAL, więc umożliwia liźniecie pewnej innej koncepcji programowania, charakterystycznej dla większych maszyn. Z drugiej strony soft do Arduino ma olbrzymie narzuty czasowe i objętościowe. Właściwie to cały specyficzny framework jest. Pytanie czy warto w to wchodzić? Ale żeby na nie odpowiedzieć to trzebaby wiedzieć czego oczekujesz i czym chcesz się zająć.
    IMHO Bascom to ślepa uliczka - nie dość, że trzeba za to płacić, to nabytych umiejętności posługiwania językiem nie da się później wykorzystać, a prędzej czy później staniesz przed koniecznością porzucenia tego języka. To mniej więcej tak jakby uczyć się Aramejskiego :)

    0
  • Pomocny post
    #9 30 Sie 2011 19:26
    atmeg
    Poziom 14  

    uzasadnienieDotyczy mojej wcześniejszej wypowiedzi w temacie.Zostałem o to poproszony i rozumiem dlaczego.Aby cieszyć sie tworzeniem układów nie trzeba być Bogiem i niepotrzebne jest podążanie ścieżką mistrzów .Jezyk C niema patentu na jedynie słuszny język. Jedynie słysznym językiem jest kod dwójkowy.... w kwesti układów cyfrowych szeroko rozumianych czyli też mikroprocesorów.W Bascomie początkujący odnajdzie w najprostrzej formie narzędzia do zainicjowania "zapalenia " diody led " jak i zbudowania profesjonalnego sterownika do przemysłowej maszyny.A jak w Baskomie robi się takie sterowniki ?O dużej wartości intelektualnej jak i materialnej? Prosto...wiadomo wymaga to WIEDZY ale nie z jezyka C czy z Bascomu lecz z automatyki i elektroniki. Kluczem do sukcesu nie jest skorzystanie z jakiegoś języka lecz zdobywanie wiedzy i umiejętne gromadzenie jej i umiejętność wykorzystania.
    .....Polecam baskom , plytke stykową i cierpliwość .
    Dla nie ciepliwych ,niezważających na elektronike polecam to Arduindo.Jakby co jestem w gotowości do rozmowy w tym temacie jedynie martwie się czy mój poziom będzie dla innych satysfakcjonujący. Atmeg
    PS Nie uważam Platforme Arduino za coś złego , fajnie że jest . Wszystko co wartościowe wzbogaca nas.Szkoada że narasta wokoło Arduino warstwa firm i ludzi chcących tylko zarobić na tym.
    W Bascomie dla początkujących bedzie tekst :sciągnij to .. i zlutuj ten układ a..
    w Arduino -ściągnij to i kup te płytki...
    Oddaje głos na Bascoma

    0
  • Pomocny post
    #10 30 Sie 2011 20:18
    ZbeeGin
    Poziom 38  

    1. Arduino to też taki BASCOM, choć składnia wywodzi się z C/C++. W "środowisku" Arduino też znajdują się pewne elementy, z których składa się program. Dla większości użytkowników będą to takie "czarne skrzynki", które co coś robią, ale nie do końca wiadomo co i jak to robią. Ważne, że działają. Zaawansowani użytkownicy przejrzą sobie źródła (tu zaleta Arduino - są źródła) i będą wiedzieli więcej.
    2. Era BASCOM-a nieco minęła. Obecne dyskusje typu co lepsze: C czy BASCOM, oczywiście teraz wygrywa C (w domyśle GCC). Ale cofnijcie się wstecz do 2002 roku. Wtedy wynik byłby obrócony o 180 stopni. Raczkujące AVR-GCC nie miało dużo szans w starciu z BASCOM. A komercyjne pakiety kompilatorów C nie były finansowo dostępne dla większości amatorów.
    3. Tak naprawdę to i Arduino, i BASCOM w ciągu paru lat odejdą w zapomnienie. Świat stawia na procesory ARM (Stand-alone czy jako IP Core w FPGA) i tylko czekać, aż stare dobre 8051, AVR, MSP430, M8, ST7 będziemy oglądać tylko w muzeach.

    0
  • #11 30 Sie 2011 20:36
    atmeg
    Poziom 14  

    ZbeeGin zgadzam się , ale to jakby inny kontekst tematu .
    PS, nadal pracujesz w tej firmie gdzie robią kontrolki led 220V?

    0
  • Pomocny post
    #12 30 Sie 2011 21:02
    mirekk36
    Poziom 42  

    ZbeeGin napisał:
    ... i tylko czekać, aż stare dobre 8051, AVR, MSP430, M8, ST7 będziemy oglądać tylko w muzeach.


    Jak mi się podoba takie czarno-wróżenie. ;) Ale kolega chyba nie czytał podobnych przepowieści, które już 20 lat temu były ferowane na temat 8051-nek bardziej jako symbolu 8-bitowców. Zresztą jakby tak z samej elektrody zebrać wszystkie wróżby tego typu to statystyka by pokazała, że średnio kilka razy w roku, co najmniej kilka osób wróżyło rychłe odejście do muzeów 8-bitowców a tu co ??? Klapa ;) coś nie mogą odejść. Warto się więc zastanowić nad różnorodnością zastosowań, upodobaniami ludzi i co ważniejsze przyzwyczajeniami - a nie patrzeć tylko na własną fascynację możliwościami coraz to nowszych procków. Bo jeszcze bardzo długo będzie miejsce i dla 8-bitowców jak i dla ARM'ów - zresztą podobnie jak będzie miejsce dla tych którzy znają Bascoma i tych którzy cieszą się z języka C czy też Arduinowskiej platformy C++.

    Dodano po 1 [minuty]:

    atmeg napisał:
    Kluczem do sukcesu nie jest skorzystanie z jakiegoś języka lecz zdobywanie wiedzy i umiejętne gromadzenie jej i umiejętność wykorzystania.


    O! to jest bardzo dobrze powiedziane. Nic dodać nic ująć.

    0
  • Pomocny post
    #13 31 Sie 2011 00:55
    ZbeeGin
    Poziom 38  

    mirekk36 napisał:
    Jak mi się podoba takie czarno-wróżenie. Ale kolega chyba nie czytał podobnych przepowieści, które już 20 lat temu były ferowane na temat 8051-nek bardziej jako symbolu 8-bitowców. Zresztą jakby tak z samej elektrody zebrać wszystkie wróżby tego typu to statystyka by pokazała, że średnio kilka razy w roku, co najmniej kilka osób wróżyło rychłe odejście do muzeów 8-bitowców a tu co ??? Klapa coś nie mogą odejść.

    Tak off-topic. Jeśli chodzi o elektrodę i 8051, to ten staruszek jeszcze się trzyma tylko dzięki jednemu: DSM-51. Które ktoś wspaniałomyślnie zatwierdził jako pomoc szkolna. :)

    mirekk36 napisał:
    Warto się więc zastanowić nad różnorodnością zastosowań, upodobaniami ludzi i co ważniejsze przyzwyczajeniami - a nie patrzeć tylko na własną fascynację możliwościami coraz to nowszych procków.

    Niestety kulą w płot. Nie jestem wcale zażartym fascynatem nowych technologii. W swoich zbiorach mam kolekcję evali do AVR (aż 4 sztuki), PICa, MSP430, mojego własnego drutowca z 8032 i 8255 na pokładzie, plus ZLMCS51. I do tego jeszcze ZX Spectrum w pełni zdrowia z GENS-em na czele, bo Z-80 był tym pierwszym. A FPGA, ARM? Mam taki jeden, ale obecnie mam inne rzeczy na głowie. Jednakże...
    Wyginięcie - prędzej czy później - 8-bitowych mikrokontrolerów załatwią... sami ich producenci. Trzeba tylko poczekać, aż marketingowcy po raportach handlowców napiszą do swoich kierowników, a ci do swoich szefów, że sprzedaż rozwiązań ARM-owych jest większa niż reszty kontrolerów. Dokładnie od tego momentu, wypadki potoczą się lawinowo.
    Byłem na paru prezentacjach, seminariach i tym podobnych przerywnikach, gdzie za darmo dają łososia i długopisy. Dajmy na to pierwsze z brzegu: ST Microelectronics. O wiele więcej czasu - i entuzjazmu - poświęcono rodzinie STM32 niż rewelacyjnej (jak zachwalał pewien czech), bo sklejonej z wszystkiego co najlepsze w 8-bitowcach rodzinie ST8. Dalej. Zeszłoroczne seminarium Texas Instruments. Na koniec rozdawano evalboardy ze Stellarisem, a nie z MSP430.
    No niestety, to się już dzieje. ARM-zacja już postępuje. Nawet taki potentat jak Microsoft, nieco trzęsie portkami, że są urządzenia oparte o wydajne tego typu mikroprocesory, a oni nie mają na to jeszcze żadnego Windows-a.

    Moje zdanie: Czas BASCOM-a mija, bezpowrotnie. Nawet autor tego narzędzia, jak mu wspomniałem, że zaczynam (2003 rok) poważnie myśleć nad C dla AVR, napisał "You are going in a good direction". W czasie jak tworzenie polskich wersji bascomowego helpa osiągnęło swoje apogeum.
    Jeśli chodzi o Adruino. Ktoś błysnął, ktoś inny się zachłysnął i nagle szał Arduino. Tylko co z tego? Szybko stało się to hitem sprzedaży i tak samo szybko zniknie jak już rynek się nasyci, i paru obrotnych gości zarobi swoją kasę. Sytuację Arduino spotka to samo co klony programatorów Willem. Też był szał, ale bańka pękła. Fakt, producenci płyt głównych też zabili ćwieka uśmiercając LPT. A Willem USB - choć jest - raczej się tak nie sprzedaje.

    0
  • Pomocny post
    #14 31 Sie 2011 03:02
    poorchava
    Poziom 18  

    Co do arduino to nie będę się wypowiadał, bo praktycznej styczności z tym nie miałem. Jeżeli chodzi o BASCOMa to uważam, że nauka programowania w nim nie ma żadnej przyszłości. Jak początkujący nauczy się pisać w C np na AVR, to potem już tylko krok do przesiadki na PIC8/16bit, ARM, ColdFire, MIPS4k i co kto sobie jeszcze chce, kwestia środowiska i specyfiki sprzętu, język jest ten sam. A BASCOM jest tylko do AVR. Potem tacy osobnicy nauczeni BASCOMa tworzą tematy "chcę się przesiąść na PICe. Czy jest BASCOM dla PICów?"

    0
  • Pomocny post
    #15 31 Sie 2011 06:40
    tronics
    Poziom 36  

    @poorchava - a co polecasz 13latkowi, który zaczyna eksperymentować z uC? BASCOM w tym momencie daje najwięcej oczekując najmniej. Oczekując najmniej od programisty oczywiście. Od MCU wymaga całkiem sporo, jako (moim zdaniem) dość ciężki do zoptymalizowania przez kompilator język. Niemniej można zrobić łatwo i przyjemnie dużo rzeczy bez potrzeby pisania własnych procedur obsługi timer/lcd/uart/spi/i2c/1wire itp. Arduino dość podobnie tyle, że przynajmniej bazuje na C/C++ więc łatwiej będzie "zejść" do WinAVR/AVRStudio.

    Jeśli chodzi o korzyści
    BASCOM - łatwy do nauki, szybki start
    ARDUINO - stosunkowo łatwy do nauki, szybki start, składnia C/C++
    Jeśli chodzi o wady (szczególnie straty intelektualne):
    BASCOM - rozleniwia
    ARDUINO - rozleniwia
    Niestety, aby poznać MCU w danym środowisku na wylot trzeba się pomęczyć z własnymi procedurami.

    -2
  • #16 31 Sie 2011 09:01
    piotrva
    Moderator Mikrokontrolery

    Cóż, myślę że po wysłuchaniu wielu konstruktywnych opinii mogę włączyć się do dyskusji i przedstawić swoje stanowisko.
    Więc ogólnie na samym początku zestawiłem sobie takie kryteria:
    1. Język programowania:
    A(rduino): C++/C - przenośność między platformami samego C/C++, uczymy się od podstaw pewnych nawyków i konstrukcji, które możemy wykorzystać w "czystym" C (AVR-GCC).
    B(ascom): BASIC - niezbyt popularny (niszowy) język, brak przenośności na inne platformy, czasem uchy złych nawyków
    A vs. B - 1:0
    2. Biblioteki, oprogramowanie peryferiów
    A: Bardzo duża ilość, otwarte źródła
    B: Trochę tego jest, niektóre mają otwarte źródła w ASM, niektóre płatne
    Ogólnie:
    A vs. B - 2:1
    3. Hardware:
    A: Dedykowane płytki, nie jest konieczna znajomość procesorów na poziomie niższym niż cała płytka, fusebity - a co to takiego? - tu są spore ograniczenia, także co do ilości ewentualnie programowanych poza układem modeli procesorów
    B: Pełna dowolność - obsługiwane prawie wszystkie kostki Atmela 8 bitowe oraz 8/16 bitowe xmega
    Zatem:
    A vs. B - 2:2
    4. Dydaktyka:
    A: Operujemy na poziomie gotowych bibliotek (mówię o przeciętnych początkujących użytkownikach), względnie możemy je modyfikować
    B: Gotowe wbudowane zestawy instrukcji i biblioteki, jednak czasem wchodzimy nieco głębiej w hardware
    Czyli jak pisze Kol. tronics - oba w takim samym stopniu rozleniwiają lub z drugiej strony patrząc oba w takim samym stopniu ułatwiają zabawę
    A vs. B - 3:3
    5. Cena
    A: Środowisko darmowe, ale konieczność zakupu/samodzielnego montażu (choć dla początkującego może on sprawiać trudności - FT232RL w SMD) dedykowanej płytki bazowej i ewentualnie shieldów
    B: Środowisko kosztuje ok. 400 zł, ale za to mamy dowolny sprzęt do wyboru i nie jesteśmy w żaden sposób zobligowani
    Mimo wszystko na start taniej wychodzi A (90zł i zaczynamy jakąś zabawę)
    A vs. B - 4:3

    Cóż zatem gdyby więc ktoś (nie dając wyboru "czystego" C) zapytał mnie o radę to nie bez wahania poleciłbym jednak Arduino - w sumie też można wyjść poza ramy bibliotek i programować prawie jak w C operując na rejestrach w stylu w jakim to będziemy robić w C.
    Ale, jak już zostało powiedziane przez kol. dondu innymi słowami - całą zabawa ma polegać na programowaniu mikrokontrolera tak, aby realizował założone przez programistę zadania. I jeśli ktoś (a znam taką osobę) potrafi stworzyć coś fajnego w Bascom - czemu nie - choć przewagą C i Arduino zatem jest to, iż później, biorąc pod uwagę pewne różnice, zaprogramujemy prawie każdą rodzinę mikrokontrolerów.

    0
  • #17 31 Sie 2011 10:26
    mirekk36
    Poziom 42  

    piotrva napisał:
    ....- choć przewagą C i Arduino zatem jest to, iż później, biorąc pod uwagę pewne różnice, zaprogramujemy prawie każdą rodzinę mikrokontrolerów.


    Tak tylko, że mnóstwo osób nie bierze pod uwagę tego, że nie każdy ma zamiar przesiadać się wciąż na inne coraz to nowsze i większe procesory czy platformy. Jak się nauczy np Bascoma i wystarcza mu to w zupełności bo raz na jakiś czas zrobi sobie w pełni funkcjonalne urządzenie to po kiszkę mu skakać jak dzikiemu zającowi po łące - na inne platformy? A nawet jak zechce - to w stosownym dla siebie czasie i po swojemu.

    Więc moje podsumowanie wyglądałoby raczej odmiennie. Każdy język i każda platforma będzie dobra dopóki będą zainteresowani. A jak praktyka pokazuje zarówno Bascom jak i Arduino mają całe rzesze zagorzałych zwolenników. I bardzo zresztą dobrze - bo obojętnie jak prosta jest platforma czy język to właśnie to przyciąga nowych zainteresowanych i amatorów, dla których ARM czy język C albo C++ bywa czyś tak odległym, że wręcz abstrakcyjnym. Tak więc pozwólmy każdemu uczyć się i stosować to przyjemne hobby w jego własnym tempie.

    A nie określenia nawiedzonych, typu, że "Jak nie jesteś ambitny to weźmiesz się za Bascoma czy Arduino". Albo, że "Jak nie rozumiesz C to nie nadajesz się do tego więc porzuć elektronikę i programowanie" ... bo takie wypowiedzi też na elektrodzie można znaleźć. Co ciekawe tego typu wypowiedzi są charakterystyczne tylko dla polskich forów.

    0
  • #18 31 Sie 2011 13:00
    piotrva
    Moderator Mikrokontrolery

    No niestety czasem Polacy lubią być zgryźliwi i nieuprzejmi... I to nie tylko na forach...
    Cóż, jak zawsze powtarzam, pomimo, że ja np. początkującemu polecał bym Arduino, jeśli nie chciał by od razu brnąć w C lub Arduino jako takie by mu wystarczało, to od pewnego czasu nie mówię, że taki a taki język, czy platforma są "be" - bo można programować w czymkolwiek (Bascom, Arduino, C, ASM, ...), byleby efekt pracy (zaprogramowany mikrokontroler i cały układ) spełniał swoje zadania. I też stąd np. jeśli komuś wystarcza AVR (który ma dosyć bogate możliwości) to dobrze i po co ma się przesiadać na ARM, skoro takiego ARM'a będzie rozgryzał pewien czas a potem i tak nie wykorzysta ani 10% jego możliwości w swoich projektach, a za to AVR w takim samym projekcie będzie użyty powiedzmy w 80%.

    Mimo wszystko myślę, że Arduino jest ciekawą alternatywą dla Bascoma w pewnych zastosowaniach.

    0
  • #19 31 Sie 2011 13:49
    mirekk36
    Poziom 42  

    piotrva napisał:

    Mimo wszystko myślę, że Arduino jest ciekawą alternatywą dla Bascoma w pewnych zastosowaniach.


    No tak, ja pod tym też się podpisuję nogami i rękami, jednocześnie podpowiadając tym, którzy to czytają, że jeśli jednak - jakieś gdzieś tam chociaż małe światełko się pali w głowie, że człowiek będzie później chciał iść dalej i dalej w tym kierunku - to wtedy zdecydowanie lepszy start z arduino - jeśli już mówimy o tych dwóch hmm niech będzie platformach czy jak to zwał ;)

    0
  • Pomocny post
    #20 01 Wrz 2011 22:35
    kedzi1
    Poziom 18  

    Należy najpierw zadać sobie pytanie po co. Jeżeli chcemy potraktować programowanie mikrokontrolerów jako zabawę/ciekawostkę to Bascom będzie dobry. Jeżeli zamierzamy się rozwijać to niech to będzie Arduino, tylko i wyłącznie dlatego, że jest oparte o C.
    Sam jestem zwolennikiem wejścia w świat uC poprzez płytkę stykową (ewentualnie jakiś zestaw eval) + kompilator C. Jest to najbardziej rozwijające.
    Nauka C to podstawa dla elektronika w dzisiejszych czasach i stronienie od niego to wstyd. Należy znać choćby podstawy.
    Wynalazki typu Bascom z czasem ograniczają coraz bardziej. Dlaczego Bascom stał się z czasem mniej popularny. Jak ja zaczynałem to szczytem był LCD alfanumeryczny albo cyfrowy czujnik temperatury. Ogólnie możliwości było mało, a każdej z nich przypisane było polecenie w Bascom. Dziś jest odrom nowoczesnych układów, kart pamięci i innych peryferiów jak modemy, karty sieciowe, wyświetlacze różnego rodzaju. Bascom już dawno za tym wszystkim nie nadąża i zaczął ograniczać. Łączenie Bascom z asm albo tworzenie programów po kilkaset linii (ciurkiem!!!) mija się z celem. Jego założeniem była prostota, szybkość tworzenia aplikacji i nie jest do tego stworzony.
    C zawsze będzie aktualne. bo pozwala wraz z gotowymi bibliotekami na łatwe tworzenie programów, a zarazem jest profesjonalnym narzędziem, które nie nakłada żadnych ograniczeń.

    0
  • Pomocny post
    #21 02 Wrz 2011 20:50
    hans512
    Poziom 14  

    Definitywnie C zamiast Bascoma.

    BASIC (Bascom ma ogolnie skladnie jak BASIC) jest bardzo prostym jezykiem programowania, jednak niestety ma on bardzo powazna wade: jesli jest to nasz pierwszy powazny jezyk ktorego sie uczymy to we krwi zostana nam BARDZO zle nawyki w kwestii programowania (dobry programiasta w BASICU bedzie mial olbrzymie problemy mentalne w przyszlosci by przestawic sie np na programowanie obiektowe - "niezbedne" dzis w biznesie)

    Programowalem w Qbasicu ponad dekade temu, dzis natmiast piszac w C++, C czy Pythonie nadal widze jak bardzo ma to zly na mnie efekt.

    Jesli nie zamierzasz nigdy programowac na powazniej - to bascom jest bardzo dobrym i efektywnym rozwiazaniem. Jesli natomiast planujesz w przyszlosci programowania na powazniej to wez sie od razu za C.

    ps. C jest uniwersalny. BASCOM jest zas obecny na jednej czy kilku architekturach (nie wspominjac o tym ze Basctom to produkt jednej firmy, zas C to uniwersalny jezyk programowania od jakis 40 lat)

    -1
  • Pomocny post
    #22 02 Wrz 2011 21:11
    atmeg
    Poziom 14  

    Ponieważ rozmowa toczy się.
    Co złego jest w Basicku ? Szybkość stworzenia pierwszych aplikacji?
    Dostępność i zrozumiała forma?
    Czemu część osób tak stara się zwalczać ten język i usilnie wmawia iż w nim nie można i że złe nawyki itp...
    Komu przeszkadza iż basick jest szybszy w pisaniu kodu i bardziej przystępny, przecież taka była idea stworzenia tego jezyka./B
    Czy w baisicku nie można stworzyć zawodowo działającego programu?
    Znacie odpowiedż , wiecie że można. Zawsze bez względu na język i środowisko zależy to od człowieka a nie języka .
    Basick i Bascom jest najszybszym i najskuteczniejszym narzędziem do wejścia w swiat mikroprocesorów i niema jakichkolwiek szkodliwych wpływów na użytkownika!
    Dla początkujących elektroników Bascom ...

    1
  • Pomocny post
    #23 02 Wrz 2011 21:52
    McMonster
    Poziom 32  

    Taki "trend" występuje, bo większość wypowiadających się tutaj osób jest mniej lub bardziej zawodowo związana z tematem, a z tego punktu widzenia BASCOM i inne języki basicopodobne są tragiczne właśnie ze względu na podane argumenty. I mają bardzo wiele racji, osoba wystawiona na wpływ tego języka będzie miała ogromne problemy z przestawieniem się na cokolwiek innego, więc taki wybór jest świadomym ograniczaniem się.

    Problem nie występuje, jeśli ktoś chce zacząć od BASCOMa, porobić jakieś prostsze rzeczy byleby one działały i na tym definitywnie zakończyć. Ale jest olbrzymi, gdy chce się rozwijać w temacie, bo wtedy droga jest jedna, C, dla osób nauczonych BASCOMa skrajnie trudna.

    Da się pewnie w tym języku tworzyć komercyjnie kod na mikrokontrolery, ale każdy zawodowiec wie, że trzeba efektywnie wykorzystywać dostępne zasoby, co jest prostsze w C i że rynek się szybko zmienia, a BASCOM jest ograniczony do ledwie dwóch rodzin mikrokontrolerów, gdy C jest... do wszystkiego.

    Basic to po prostu taka informatyczna legenda wśród zawodowych programistów, tutaj masz przykład jej mocy.

    0
  • Pomocny post
    #24 03 Wrz 2011 08:16
    tronics
    Poziom 36  

    @McMonster - akurat z tym cytatem nie ma się co zgadzać biorąc pod uwagę początki programowania z lat 80tych - czyt. maszyn C64, VIC-II, C128 - gdzie podstawą był basic właśnie; a później np. Amiga gdzie Basic też był, a oprócz basica równie ciekawy amos - a jednak commodorowcy i amigowcy później sobie dali radę z C czy E. Niemniej właśnie jest dużo złych nawyków z BASICa, z goto na czele ;)

    0
  • Pomocny post
    #25 03 Wrz 2011 08:59
    Urgon
    Poziom 36  

    AVE...

    Ja opowiem się mimo wszystko za Arduino. Głównie z powodów moich doświadczeń z dialektami BASICa. Wadą Arduino są ceny tych wszystkich płytek, shieldów, modułów i innych pierdółek niezbędnych do zrobienia czegoś. Początkujący użyszkodnik Arduino (jak mój brat) musi być na to przygotowany. Z drugiej strony język C jest bliżej sprzętu niż taki Bascom czy PICBasic (z którym miałem do czynienia). Choć dialekty BASICa są bardzo łatwymi językami do tworzenia programów i analizowania ich pracy. C/C++ jest trudniejszy dla kogoś wychowanego na tym prostym języku, i ja to widzę po sobie...

    Bascom czy Arduino - kwestia tego, czy człowiek woli wydać pieniądze na sprzęt czy na oprogramowanie, oraz tego, czy chce zajmować się tym zawodowo. Da się w dialekcie BASICa napisać nawet duże i złożone programy, ale po co? C/C++ do tego nadaje się lepiej. Jeszcze jedna uwaga: platforma Arduino dzięki temu, że jest częścią większego środowiska Processing (opartego o Javę) bardzo łatwo może współpracować z komputerami...

    Co do kwestii wymieralności procesorów ośmiobitowych, to jeszcze długo na to poczekamy. Są one bowiem tańsze w produkcji i wymagają mniej wysiłku do oprogramowania i wykorzystania. ARM jest dobre, ale wymaga jednak pewnego wysiłku. Ponadto chyba nie ma procesorów ARM w obudowach DIP. Spośród wszystkich mikrokontrolerów wymierają układy 16-bitowe...

    0
  • Pomocny post
    #26 03 Wrz 2011 09:04
    LordBlick
    VIP Zasłużony dla elektroda

    tronics napisał:
    początki programowania z lat 80tych - czyt. maszyn C64, VIC-II, C128 - gdzie podstawą był basic właśnie; a później np. Amiga gdzie Basic też był, a oprócz basica równie ciekawy amos - a jednak commodorowcy i amigowcy później sobie dali radę z C czy E.
    Czując się wywołany do tablicy pragnę zauważyć, że owszem Basic-a liznąłem na C-64, ale jak się dorwałem do asemblera to dopiero było to, w inny sposób nie szło wycisnąć więcej, niż przewidział producent maszyny... ;)
    Co do goto, jest to rozkaz, który ma naturalny odpowiednik w języku maszynowym każdej platformy w skali 1:1, więc jest rozkazem ponad wszelką wątpliwość najbardziej optymalnym. Dzięki niemu łatwo jest skompresować miejsce, używając wspólnych elementów procedur. Tym niemniej nie jest na topie w C...

    0
  • Pomocny post
    #27 03 Wrz 2011 09:44
    tronics
    Poziom 36  

    @LordBlick - wiadomo, że w pewnym momencie z interpretera basica 2.0/3.5/7.0 czy jaki tam był w konkretnych modelach zainstalowany ludzie przesiadali się na lepsze kompilatory basica, później zabawy z pascal/c, albo wręcz od razu asm (czy też choćby dostęp przez program monitora) - niemniej wcale nie jest takim pewnym stwierdzenie, że jak ktoś zaczyna od basica to jest "mentalnie i nieodwracalnie okaleczony". Powodem dla którego commodore basic V2.0 był za ciężki to brak procedur rysujących z basica 7.0 (circle, line, rectangle itp.) - jeśli się chciało sprite narysować i animować konieczna była cała seria peek/poke. Dłubanie prawie jak z ASM bo koniecznie trzeba było wiedzieć co i gdzie modyfikować (jakie obszary pamięci, rejestry vic itp.) - bezsens jeśli chodzi o język wysokiego poziomu.

    Cytat:
    który ma naturalny odpowiednik w języku maszynowym każdej platformy w skali 1:1

    taki ljmp z '51 jak najbardziej, w x86 chyba tylko jmp, nawet nie chce mi się zerkać na inne. Dobra rzecz jeśli się zna umiar, po kursie basic można podejrzewać, że umiaru się nie ma... To też fakt, bo C zawiera więcej ciekawych konstrukcji (do...while, if...else, case switch) niż stary commodorkowy basic 2.0 (bodajże if...then...else częstokroć z goto właśnie). Odtworzenie algorytmu programu z nadużywanym goto może być frustrujące i pewnie dlatego wielu programistów na to krzywym okiem spogląda.

    0
  • Pomocny post
    #28 03 Wrz 2011 15:37
    McMonster
    Poziom 32  

    Ja jednak myślę, że ten cytat jest trafiony. Commodore to czasy zapaleńców, ludzie chcieli robić ciekawe rzeczy, ale mieli akurat Basica. Tu jest mowa o uczniach/studentach, którzy z zapałem zwykle wiele wspólnego nie mają i dostają Basica mniej lub bardziej narzuconego.

    Miałem podobne przypadki w liceum, ale tam część osób miała kontakt z Pascalem, a nauczyciel narzucił C++. Mi to było bez różnicy, chociaż praktycznie C++ nie znałem, a spędziłem długie lata dłubiąc w 13h w Pascalu (i wciąż go mile wspominam, w przeciwieństwie do Basica), ale większość klasy po prostu sobie nie dawała rady.

    0
  • #29 07 Wrz 2011 04:56
    poorchava
    Poziom 18  

    Cytat:
    Ponadto chyba nie ma procesorów ARM w obudowach DIP. Spośród wszystkich mikrokontrolerów wymierają układy 16-bitowe...


    Nie wszystkie. Jeżeli chodzi o Microchipa, to się zgadzam, ich MCU 16 bitowe wypadną z rynku ale moim zdaniem akurat nie przez swoją "szesnastobitowość" tylko przez totalnie dziadowska jakoś produktu. Wypuszczane są produkty z koszmarnymi ilościami niedoróbek, niektórych bardzo poważnych (np. "16-bit MCU with USB OTG", a w erracie "OTG functionality i usb module doesn't work. Setting module in OTG mode causes device reset." ). Widziałem kiedyś PICa 24H-cośtam, który miał ponad 100 pozycji w erracie...

    Ale na przykład takie MSP430 mają się bardzo dobrze i moim zdaniem jeszcze przez jakiś czas ARMy ich nie wyprą z rynku z względu na idiotycznie niski pobór prądu (100 nA w Sleepie, w którym procesor może spędzać 99% czasu) i super przydatność do zastosowania w aplikacjach bateryjnych. Widziałem nawet filmik jak uruchomili taki MCU na baterii zrobionej z 3 cytryn połączonych kawałkiem miedzi o.O.

    0
  • #30 07 Wrz 2011 07:33
    mirekk36
    Poziom 42  

    poorchava napisał:

    Ale na przykład takie MSP430 mają się bardzo dobrze i moim zdaniem jeszcze przez jakiś czas ARMy ich nie wyprą z rynku z względu na idiotycznie niski pobór prądu (100 nA w Sleepie, w którym procesor może spędzać 99% czasu) i super przydatność do zastosowania w aplikacjach bateryjnych. Widziałem nawet filmik jak uruchomili taki MCU na baterii zrobionej z 3 cytryn połączonych kawałkiem miedzi o.O.


    Nie tylko z cytryn ale także baterii z truskawek, kiwi, winogron czy papaya ;)

    http://www.youtube.com/watch?v=ZxGZIiyyxrM

    0