Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Kategoria: Kamery IP / Alarmy / Automatyka Bram
Montersi
Kategoria: Akumulatorki / Baterie / Ładowarki

Arduino - pytań kilka od początkującego

janchar 22 Lis 2012 21:02
  • #1 22 Lis 2012 21:02
    janchar
    Poziom 12  

    Od jakiegoś czasu obserwuję duże zainteresowanie tym modułem. Do współpracy z nim powstało mnóstwo modułów współpracujących np. ultrasound, wyświetlacze, klawiatury, mostki itd.
    Odszukałem schemat tego "Arduino" i stwierdziłem, że nie ma na tej płytce nic szczególnego.

    Dlatego zwracam się do Was szanowni koledzy, o wytłumaczenie mi, co w nim jest takiego fajnego, że ludzie wybierają "Arduino" a nie tzw. płytki stykowe.

    A może w tych Arduino, są jakieś tajne procedury, które ułatwiają sprawę.
    Z tego co się zorientowałem, to na tej płyteczce znajduje się tylko procesor, przejściówka USB na RS232, kwarc i kilka drobnych elementów.

    Albo siła tkwi w programie, który w przejrzysty sposób objaśnia pisanie programów i w kilku procedurach bibliotecznych, obsługujących wspomniane wcześniej moduły.

    Proszę o wyjaśnienie mi tych kilku pytań.

    Arduino - pytań kilka od początkującego

    Arduino - pytań kilka od początkującego

    Arduino - pytań kilka od początkującego

  • Pomocny post
    #2 22 Lis 2012 21:23
    shadow0013
    Poziom 34  

    Możesz coś zrobić w zasadzie bez lutownicy (niby klocki), łatwiejszy język i środowisko programowania (oparte na C), kursy programowania, najlepiej wpisz w googlach arduino i zapoznaj się z przykładami i opisami, są też polskie strony. Po zabawie z gotowymi płytkami użytkownicy, robią już układy na własnych płytkach (przynajmniej u nas w kraju) np. zegar pong w DIY.

  • Pomocny post
    #3 22 Lis 2012 22:18
    piotrva
    Moderator Mikrokontrolery

    Arduino to w zasadzie (jak mówi przedmówca) taki zestaw do składania z klocków, bez lutownicy.
    W samym oprogramowaniu na PC ułatwieniem są gotowe biblioteki, które umożliwiają programowanie w C++/C bez konieczności zagłębiania się w noty katalogowe procesora.
    Zalety:
    *Modułowość (bez lutownicy - dla początkujących)
    *Gotowe funkcje i biblioteki
    Wady:
    *Tylko kilka procesorów jest wspieranych
    *niejako związanie się z bootloaderem i tymi kilkoma modelami

  • Pomocny post
    #4 22 Lis 2012 22:53
    Klima
    Poziom 30  

    Arduino to przede wszystkim software. Hardware jest tu zupełnie drugorzędny. Może być nawet płytka stykowa.

  • #6 23 Lis 2012 00:06
    janchar
    Poziom 12  

    Oczywiście, zanim zapytałem, przejrzałem internet.
    Mówicie, klocki bez lutowania... na płytce stykowej też nie lutuję.
    Gotowe funkcje... czyli coś robimy, działa to i nie zagłębiamy się dlaczego. To już mi się nie podoba, gdyż to ogłupia. Korzystanie z gotowych bibliotek. A dlaczego nie napisać sobie własnych. Chyba to jest powodem sukcesu. Włosi to cwany naród. Właściwie to oni oprawili to w opakowanie i sprzedają za znacznie wyższe pieniądze.
    Znalazłem schemat. Widzę, że są tam 2 procki. Jeden z nich robi za przejściówkę USB na RS232.
    Natomiast co do bootloadera, to tylko mogę się domyślać, że zapisany jest w tym pierwszym procku.

    Tu znalazłem kilka wersji: http://arduino.cc/en/Main/ArduinoBoardUno/

    ps. do zgłaszającego.
    Załącznik ze schematem skasowałem na życzenie jednego z użytkowników, który zarzucił mi wyłudzanie punktów. Podziękujcie mu.

  • Pomocny post
    #7 23 Lis 2012 11:57
    shadow0013
    Poziom 34  

    Arduino z ciekawości się trochę bawiłem, właśnie na płytce stykowej, ponieważ wcześniej zaprogramowałem już trochę atmeli nie miałem problemów z uruchomieniem. Wyobraź sobie kogoś kto dopiero zaczyna - zrobić (kupić) programator, połączyć wszystko na płytce, wgrać bootloader, poustawiać fusebity, połączyć układ zamiast płytek dodatkowych i można się bawić. Oczywiście trzeba umieć czytać schematy, dobrać zamienniki jeśli w lokalnym sklepie akurat brak takich części i trzeba mieć szczęście że od razu układ będzie działać, nawet w takim prostym układzie może coś źle stykać lub można popełnić błąd przy montażu.
    Kupując podstawową płytkę i dodatkowe masz "czarną" robotę odwaloną została już sama przyjemność czyli programowanie.

  • #8 23 Lis 2012 12:21
    janchar
    Poziom 12  

    Czy mógłbyś przybliżyć, co potrzebowałeś. Czy ten boot loader jest potrzebny i skąd go pobrać. Oczywiście zakładam, że wszystko jest legalne. Programowanie w asemblerze mam już dawno za sobą. Co do programatora, to również jest ok. Chciałbym tego spróbować i samemu mieć jakieś zdanie co o tym sądzić.

  • Pomocny post
    #9 23 Lis 2012 12:43
    piotrva
    Moderator Mikrokontrolery

    Bootloader jest potrzebny do programowania spod Arduino i znajduje się w paczce wraz z plikami programu pobranymi z oficjalnej strony.
    W zasadzie potrzebny jest:
    1. Kompatybilny mikrokontroler (np. atmega328p - najczęściej stosowany)
    2. układ USB<>UART - FT232RL (za jego pomocą też zaprogramujemy bootloader)
    3. drobnica - jakieś kondensatory, rezystory - do podłączenia zasilania i ukłądu resetu wg. schematu Arduino.

  • Pomocny post
    #10 23 Lis 2012 12:44
    shadow0013
    Poziom 34  

    Wszystko jest dostępne i legalne. Bootloader to cały urok tej płytki programujesz i z tego programu (Arduino IDE) wysyłasz program do płytki, reset i działa, ale można go pominąć i zaprogramować atmegę programatorem. Wpisz na googlach bieduino, sunduino, arduino bootloader na elektrodzie też są tematy poświęcone Arduino i jego bootloaderowi. Jak poczytasz wszystko się wyjaśni.

  • #11 26 Lis 2012 12:09
    janchar
    Poziom 12  

    Dziękuję Panowie za dość obszerne i dla mnie cenne wyjaśnienie nurtujących mnie problemów. Dalej to już muszę sam pogrzebać. Tym samym myślę że można by zamknąć temat, chyba że ktoś chce coś jeszcze dodać.
    Jeszcze raz dziękuję i pozdrawiam.

  • Pomocny post
    #12 26 Lis 2012 16:37
    tmf
    Moderator Mikrokontrolery Projektowanie

    Adruino to fajny framework, wbrew temu co napisano powyżej jest napisany w C++, a nie w C. To dosyć istotna różnica. A że jest to framework to udostępnia gotowe biblioteki. Oczywiście można przyjąć postawę, że to ogłupiające i lepiej pisać samemu. Ale z drugiej strony to zależy co jest celem. Szczególnie początkujący mogą utknąć na takich niskopoziomowych kodach, w efekcie nigdy nie stworzą upragnionego urządzenia. A tak ładujesz biblioteki i możesz się skupiać na ich wykorzystaniu. To różnica mniej więcej taka jak pisanie w asemblerze lub pisanie w C. Z drugiej strony arduino jest popularne i liczba gotowego kodu pod to jest bardzo duża. Fakt, że jest on pisany obiektowo też ułatwia jego wykorzystanie. Sam nie używam tego frameworku, ale uwielbiam moduły z arduino. Swoją drogą używam je właśnie ze stykówką - większość, o ile nie wszystkie można po prostu wetknąć w stykówkę i z nich korzystać. To bardzo ułatwia prototypowanie.

  • #13 21 Lut 2013 18:17
    MegaPlayer
    Poziom 11  

    Cześć
    Chciałbym się dowiedzieć paru rzeczy dotyczących Arduino i z tym związanych.
    Komendy zapisywane są na tym mikrokontrolerze/procku czy jak mu tam, ale jakbym chciał przenieść tego "procka" do zbudowanego układu/sprzętu to wogóle da się go wyjąć ? i wmontować w układ a na jego miejsce wstawić czysty ?
    Następne pytanie jest o zakup właśnie Arduino: Chcę kupić Arduino ale niezbyt rozumiem te sprawy... Rozważam kupno tego zestawu: Link
    [polećcie coś;]

    Pozdrawiam

  • Pomocny post
    #14 21 Lut 2013 20:09
    tmf
    Moderator Mikrokontrolery Projektowanie

    Współczesne procesory mają ISP - to znaczy, że można je programować w układzie. Nie ma więc potrzeby stosowania Arduino, po to, aby potem przenieść zaprogramowany mikrokontroler do innego układu, można go od razu zaprogramować w układzie docelowym.
    Zobacz blog:
    http://mikrokontrolery.blogspot.com/p/spis-tresci.html
    Poczytaj, trochę się rozjaśni.

  • #15 22 Lut 2013 22:55
    MegaPlayer
    Poziom 11  

    Dobra trochę o tym poczytałem ale czy jakbym wymontował ten układ z arduino i podłączył wszystko dobrze to działał by ?? [powiedzmy że wkleiłem migacz LEDa na "ten" w arduino to jak go wyjmę i podłącze to migacz działa?? ]

  • #16 23 Lut 2013 08:15
    tmf
    Moderator Mikrokontrolery Projektowanie

    Tak, mikrokontroler będzie pamiętał ostatni wgrany program, więc jeśli włożysz go w inny układ to ciągle będzie realizował stary program.

  • #17 23 Lut 2013 08:18
    McMonster
    Poziom 32  

    Tak, będzie działać, tylko musisz dobrze podłączyć zasilanie i kwarc o odpowiedniej wartości.

  • #18 23 Lut 2013 21:59
    bgolab
    Poziom 22  

    Płytka arduino jest po to by łatwo zaprogramować procesor (bootloader pozwalający przyjmowąć komendy programowania poprzez serial, konwerter USB-serial).
    Można się bez tego obyć i programować układ bezpośrednio programatorem (nie mając kontrolera z bootloaderem) - często tak robię jeśli chce na szybko i tanio coś zaprogramować używając IDE arduino. Płytkę UNO można kupić na Allegro za 59zł.
    Jeśli się ma programator i cel taki by używać procesor bez płytki to taniej jest kupić sam procek (ok. 10 PLN) na allegro. Programator też nie wiele kosztuje - ok. 20zł.
    Można też programować procki ATTINY25 itp używając arduino IDE (MIT High Low Tech project)

    Dodano po 1 [minuty]:

    Oczywiście tzw. shieldy łatwo jest używać jeśli ma się płytkę arduino.

  • #19 24 Lut 2013 18:37
    MegaPlayer
    Poziom 11  

    OK ale jak bym kupił taki programator to komendy w jakim języku będą ?? /to ten san program co do arduino ?? czy czegoś musiałbym użyć innego?

  • #20 24 Lut 2013 19:00
    bgolab
    Poziom 22  

    Dla arduino piszemy używając IDE arduino (edytor + compilator i linker zintegrowany w 1 program). Produktem jest plik z kodem dla procesora z rozszerzeniem hex.

    Jeśli mamy moduł arduino to program wgrywamy wprost do procesora przy pomocy bootloadera poprzez port szeregowy (bootloader jest programem wgranym na moduł arduino, który odbiera kod w hex i programuje flash).

    Jednak możemy mieć procesor bez bootloadera i wtedy potrzebujemy zewnętrzny programator (np. USBasp) i wtedy w menu IDE wybieramy taki właśnie programator.

    Reasumując: niezależnie od tego czy mamy moduł arduino, czy też samodzielny procesor w docelowym układzie to możemy używać tego samego środowiska zarówno do kompilacji/linkowania jak i do programowania procesora.

    Jest mnóstwo opisów w sieci jak użyć tzw. 'barebone arduino' czyli arduino IDE bez oryginalnej płytki.

    Co więcej arduino IDE może być używane na inne procesory. Oczywiście są to specjalne wersje. Ja np. używam libmaple na STM32VLDiscovery (ARM), czy na 16 bitowe MSP430 (projekt Energia).

  • #21 25 Lut 2013 18:40
    MegaPlayer
    Poziom 11  

    Dobra dzięki już więcej wiem :)
    Jeszcze jedno tak na szybko:
    Co oznaczają te komendy -> serial.begin lub coś podobnego z serial. ??
    Może jakiś link do bardzo rozwiniętego kursu arduino dacie ?

  • #24 25 Lut 2013 19:19
    MegaPlayer
    Poziom 11  

    i czy "#delay" to to samo co "int" ?

  • #25 25 Lut 2013 19:24
    bgolab
    Poziom 22  

    Dyrektywy od # są dla preprocesora. 'int' jest typem zmiennej.

    To jest zwyczajne C. Nic więcej z tym, że main jest ukryte (dolinkowywane później).

    Dodano po 54 [sekundy]:

    Może warto jednak zacząć od książki czy jakiegoś tutoriala i by się nie zniechęcić trzeba od razu uruchamiać coś konkretnego.

  • #26 25 Lut 2013 20:02
    MegaPlayer
    Poziom 11  

    Ja się nie zniechęcę a książkę właśnie planuje kupić tylko nie wiem jaką żeby było wszystko od podstaw... [| Od PDFów bolą mnie oczy xD |]

  • #27 25 Lut 2013 20:21
    bgolab
    Poziom 22  

    Ja robię tak, że ściągam książkę i jak mi się podoba to kupuję.
    Można wrzucić hasło arduino na tej stronie i zobaczyć co pasuje:
    http://gen.lib.rus.ec/

  • #28 02 Mar 2013 13:40
    MegaPlayer
    Poziom 11  

    A! jeszcze coś... Czy można połączyć np. dwa Arduino UNO aby mieć więcej portów?? takich jak pin 20, 15, itp.[po prostu więcej pinów??]

  • #29 02 Mar 2013 13:45
    piotrva
    Moderator Mikrokontrolery

    Możesz połączyć dwa Arduino, ale będą one pracować osobno. Jeśli potrzebujesz więcej pinów a konieczne jesteś przywiązany do Arduino, to poszukaj takich układów jak ekspandery portów I/O (np. PCF8574 na I2C), albo rejestry przesuwne SPI (są modele wyjściowe i wejściowe - w zależności co potrzebujesz)

  • #30 02 Mar 2013 14:03
    bgolab
    Poziom 22  

    Jeśli lubimy arduino to można kupić płytki tańsze z dużą ilością pinow: STM32VLDiscovery (projekt libmaple, ostatnia edycja 0.0.12 wspiera Discovery) lub Stellaris Launchpad (projekt Energia, ostatnia edycja wspiera Stellaris).

    Łączenie arduino wymaga zaimplementowania lub skorzystania z projektów, które implementują protokół do przekazywania poleceń do drugiego arduino:
    http://playground.arduino.cc/Code/SerialControl

    Oczywiście trzeba wiedzieć jakie są wymagania do takiego rozwiązania i ustalić jakiś arbitraż między modułami. Najprościej jest master-slave czyli 1 moduł wysyłą polecenia do drugiego przez np. serial itp. Oczywiście mamy to zagadnienia szybkości itd.

    Prościej jest używać jednego modułu z większa ilością, bądź ekspanderów jak zaproponował kolega wcześniej.

  Szukaj w 4mln produktów
Przeglądaj produkty