Koleżankom i Kolegom Radioamatorom, Krótkofalowcom,
Konstruktorom i Waszym Rodzinom – w tych trudnych czasach –
Zdrowych, Spokojnych i Pogodnych Świąt Bożego Narodzenia oraz
Szczęśliwego Nowego Roku

Życzy Zespół Home Made


Odpowiedz 
 
Ocena wątku:
  • 1 Głosów - 3 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
Arduino
SP6IFN Offline
Ryszard
****

Liczba postów: 456
Dołączył: 23-03-2010
Post: #11
RE: Arduino
Przykładowy, mój zestaw do programowania wygląda tak jak na foto nr.1.
Aby procesor programowany był widoczny w kompilatorze należy go zdeklarować w pliku <boards.txt> kompilatora, np. tak:
Cytat:##################################################​###############

atmega8a.name=ATmega8a @ 8 MHz

atmega8a.upload.maximum_size=7168
atmega8a.upload.using=arduino:arduinoisp

atmega8a.bootloader.low_fuses=0xe4
atmega8a.bootloader.high_fuses=0xc4
atmega8a.bootloader.path=atmega
atmega8a.bootloader.file=ATmegaBOOT_8.hex
atmega8a.bootloader.unlock_bits=0x3F

atmega8a.build.mcu=atmega8
atmega8a.build.f_cpu=8000000L
atmega8a.build.core=arduino
atmega8a.build.variant=standard
,
a następnie już tylko wybrać z listy płyt dostępnych, foto nr. 2.
W katalogu dostępnych bootloaderów musi być umieszczony również plik.hex ATmegi8.....dostępny na stronach podanych poprzednio.
Konieczny jest również mały "myk" okablowania co widać na fotce nr.1. W przeciwnym wypadku będziemy stale resetowali programator a nie programowany układ, do niczego to nie doprowadzi. Opis "myku" w majsterkowie przy opisie programowania Attiny2313. Link w poprzednim niusie.
Rysio!
Tak jakbym troche nie dokończył myśli. To co napisałem dotyczy wypalenia bootloadera.
Docelowy program wgrywamy w ten sam sposób, ale już bezpośrednio z okna kompilatora Arduino.
Rysio!


Załączone pliki Miniatury
İmage İmage
(Ten post był ostatnio modyfikowany: 01-07-2013 13:08 przez SP6IFN.)
01-07-2013 12:52
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP5FCS Offline
Adam
*****

Liczba postów: 1,072
Dołączył: 02-02-2009
Post: #12
RE: Arduino
Bardzo ciekawe, szybko rozwijające się środowisko, duża ilość przykładów pozwalająca na szybki start i pogłębianie wiedzy o procesorach. Gotowe moduły z procesorem są dobre na początek do nauki i testów, niestety potem i tak trzeba narysować własną płytkę. Wiele rozwiązań jest do adoptowania na potrzeby naszego hobby, część jednak musimy sami opracować.

Mam taką propozycję aby zrobić własną platformę HM-duino, czyli moduły możliwe do wykonania w domu na żelazku z projektami płytek i schematami dostępnymi na forum. Po co ? Będzie nie tylko taniej, każdy będzie mógł przerobić druk pod własne potrzeby, powstanie kilka modułów na potrzeby sterowania nowoczesnym radiem. Jedno nie wyklucza drugiego a zawsze będzie to wykonanie home made.

Pierwszy procesor na ATmega8 prawie jest gotowy (mini komputer QRP ).

73 Adam
01-07-2013 14:10
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9MDD Offline
Rysiek
****

Liczba postów: 380
Dołączył: 01-02-2009
Post: #13
RE: Arduino
Cytat:Mam taką propozycję aby zrobić własną platformę HM-duino, czyli moduły możliwe do wykonania w domu na żelazku z projektami płytek i schematami dostępnymi na forum. Po co ? Będzie nie tylko taniej, każdy będzie mógł przerobić druk pod własne potrzeby, powstanie kilka modułów na potrzeby sterowania nowoczesnym radiem. Jedno nie wyklucza drugiego a zawsze będzie to wykonanie home made.
...home made i w zgodzie z filozofią Open Hardware

Idealną platformą do takich zabaw są płytki arduino mini:

Podaję linka jako przykład:
http://www.ebay.com/itm/Redesign-Pro-Min...484ef7f822

Łatwo taką płytkę na goldpinach wstawić we własny projekt. i mamy już tak zwanego shielda, czyli rozszerzenie dla płytki arduino z jakąś funkcjonalnością (sterownik przemiennika/sterownik syntezera/sterownik rotora/ itd... / itd...).
W jednym z poprzednich postów pokazywałem prototyp transceivera który takim hm radio shieldem mógłby być.

I jeszcze pytanie na koniec czy są koledzy którzy nie programowali procesorów i byli by zainteresowani postawieniem pierwszych kroków w tej materii własnie w oparciu o arduino?

...przede wszystkim nie zakłócać...
01-07-2013 19:30
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP3WXO Offline
Nowicjusz
*

Liczba postów: 25
Dołączył: 10-01-2010
Post: #14
RE: Arduino
Chciałbym na wstępie zaznaczyć, że nie jestem przeciwnikiem żadnego z kierunków jeżeli chodzi o programowanie AVR-y.
Jak każda rzecz w realnym świecie ma swoje wady i zalety. Poniżej przedstawię swoje rozmyślania i nie chcę, aby odebrano to jako krytykę czegokolwiek jak i kogokolwiek.

A więc do rzeczy.

Nie jestem ekspertem w dziedzinie programowania, ale bardzo mnie to wciągnęło i mam madzieję, że tak zostanie. Zacząłem od Bascoma gdzie spodobała mi się prosta składnia, wiele elementów programowania zostało zautomatyzowane np obsługa wyświetlaczy LCD. Kompilator ten obsługuje w zasadzie wszystkie procesory AVR włącznie z Xmega. Podobnie ma się z programatorami (prawie wszystkie Smile ). Do wielkich minusów tego opraogramowanie jest to, że jest płatne i to nie mało.
Kolega z którym pracuje powiedział mi: spróbuj C. Jest bezpłatne, istnieje kilka darmowych kompilatorów, obsługują tak jak Bascom wszystkie procesory AVR i nie tylko AVR. Próbowaliśmy AVR Studio, Eclipse.
Do gustu przypadło Eclipse, a mi w szczególności, bo jeden sterownik programatora obejmuje i Eclipse i Bascom. Nie trzeba przełączać pomiędzy sterownikami.
Przez jakiś czas zastanawialiśmy się nad Arduino, ale odpadło, ponieważ domyślnie obsługuje parę tylko procesorów AVR (nie jest to problem używając bootloadera, ale zawsze jakieś utrudnienie). Z tego co się orientuje ( mogę nie mylić, tak więc prostujcie panowie ) arduino nie obsługuje Xmega.
Składnia Arduino bardzo przypomina język C, a kompilator automatyzuje parę procesów zachodzących w czasie kompilacji.
Dlatego moje pytanie jest czy warto używać arduino skoro jest C?

Ciekaw jestem waszych opini.
01-07-2013 22:27
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9NJE Offline
Przemek
**

Liczba postów: 92
Dołączył: 23-03-2010
Post: #15
RE: Arduino
Ja właśnie preferuję takie moduliki wtykane w płytkę stykową. Jakoś wydaje mi się to bardziej elastyczne niż tradycyjne "shieldy" i łatwiej mi w ten sposób na szybko poskładać jakiś prototyp.

Na swoje potrzeby zrobiłem klon Arduino Nano. Sprzętowo jest właściwie zgodny z oryginałem Gravitecha, ale przystosowałem go do posiadanych przeze mnie elementów. Przy odrobinie kreatywności w zdobywaniu części wyszło znacznie taniej niż gotowce z Allegro. Projekt z Eagla udostępniłem i opisałem trochę na swojej stronie http://www.sq9nje.pl/klon-arduino-nano/.


Załączone pliki Miniatury
İmage

Przemek SQ9NJE
http://www.sq9nje.pl
01-07-2013 22:45
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9MDD Offline
Rysiek
****

Liczba postów: 380
Dołączył: 01-02-2009
Post: #16
RE: Arduino
(01-07-2013 22:27)SP3WXO napisał(a):  Dlatego moje pytanie jest czy warto używać arduino skoro jest C?

Ciekaw jestem waszych opini.

Bardzo długo wzbraniałem się przed arduino, uważając że to jakaś dziwaczna nakładka na C, jakiś potworek który zżera i tak małe zasoby mikroprocesora.

Jednakże po dotknięciu tematu "organoleptycznie" (dzięki Tomku SQ9ATC) wyszedłem z założenia że interesuje mnie osiągnięcie efektu, to znaczy nie zamierzam się doktoryzować z procesora tylko po to by wyświetlić "Hello World"(takie samo twierdzenie jak to, że życie jest zbyt krótkie na QRP :/ ). Używając arduino pozwalasz że inni odwalili za Ciebie dużo pracy, bo dostajesz do ręki proste środowisko z masą bibliotek działające od kopa, za darmo. Oczywiście coś kosztem czegoś. Mój program napisany w bascomie do sterownika przemiennika zmieściłem w 2313, Ten sam program w arduino już mi się tam nie mieści.... ale to moja wina bo korzystam z gotowych łatwych funkcji i program puchnie, równie dobrze mógłbym podszlifować C i napisać to oszczędniej.
Jeśli chodzi o porównanie z bascomem... kod pisze się łatwiej i szybciej odnoszę też wrażenie że jest bardziej przejrzysty.

Oczywiście to moja subiektywna opinia więc niema się co sugerować Wink

EDIT:

Przemek fajna stronka! Podoba mi się ten klon...

EDIT 2:

Na xmega już coś koledzy chyba kombinują...
http://code.google.com/p/xmegaduino/

...przede wszystkim nie zakłócać...
01-07-2013 23:42
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP5FCS Offline
Adam
*****

Liczba postów: 1,072
Dołączył: 02-02-2009
Post: #17
RE: Arduino
(01-07-2013 22:27)SP3WXO napisał(a):  Dlatego moje pytanie jest czy warto używać arduino skoro jest C?

Czy warto używać innych języków skoro każdy procesor ma assembler ?

Wszystko zależy od tego komu i do czego ma posłużyć określone narzędzie. Takie środowiska jak Bascom czy Arduino powstały po to aby ułatwić stawianie pierwszych kroków w przygodzie z procesorami. Duża ilość gotowych funkcji, działających przykładów oraz gotowych modułów daje spore oszczędności czasu i przyśpiesza naukę programowania.
Kiedy rośnie nasze doświadczenie oraz wymagania i zaczynamy budować bardziej złożone układy i tak musimy wykonać indywidualny projekt sterownika i napisać własne funkcje do jego obsługi.

Moim zdaniem środowisko Arduino jest dobrą alternatywą dla Bascoma pozwalającą na szybkie zbudowanie kilku pierwszych sterowników oraz opanowanie podstaw mikroprocesorów. Do celów edukacyjnych dostępny zestaw procesorów jest wystarczający a z czasem będzie ich więcej. Niestety ceny modułów nie są niskie (60...200) zł. Naturalnym etapem po Arduino będzie poznawanie tajników języka C. Do "wyciskania procków" trzeba niestety i tak nauczyć się assemblera.

Wiem, że wielu kolegów woli wydać 100zł i kupić gotowy moduł. Jednak dla wielu to spory wydatek, szczególnie jak podczas zabawy coś uszkodzimy. Wykonanie modułu home made to 30% ceny oryginału, można go naprawiać, rozebrać na części, zmieniać druk, dodawać peryferia, itd.

73 Adam
01-07-2013 23:47
Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ9MDD Offline
Rysiek
****

Liczba postów: 380
Dołączył: 01-02-2009
Post: #18
RE: Arduino
(01-07-2013 23:47)SP5FCS napisał(a):  Niestety ceny modułów nie są niskie (60...200) zł.

No więc tak...

Programator USBasp 17PLN (allegro)
Płytka prototypowa 20 PLN
Kabelki połączeniowe 15PLN za xx sztuk
Atmega 328 9PLN

To wystarczy by wystartować z arduino... jeśli w procesorze niema bootloadera w gui zanim klikniemy zaprogramuj wciskamy shift.

W ten sposób programowałem swoje kostki.

Poglądowo zapodaję programik do soft startu silników rotora. Chodzi o to by nie szarpać antenami, projekt zrobiłem w ramach nauki arduino, całość z zaprojektowaniem płytki i napisaniem programu zajęło mi jeden wieczór.
Program zakłada sterowanie prawo lewo góra dół dwoma silnikami, współdzielenie czasu tak by każdy kanał pracował "niezależnie", procesor attiny 2313.

Kod:
/**************************************************​****************
Program miękkiego startu silników rotora dla Piotra SP5MG
Copyleft SQ9MDD 2013
**************************************************​****************/

//==================================================​===============
//zmienne:
//wejscia i wyjścia
int we1 = 0;
int we2 = 1;
int we3 = 2;
int we4 = 3;
int we1_state = 0;
int we2_state = 0;
int we3_state = 0;
int we4_state = 0;
int live_led = 6;
int wy1 = 13;
int wy2 = 12;
int wy3 = 11;
int wy4 = 7;

//dodatkowe zmienne
int wy1_licznik = 0;
int wy2_licznik = 0;
int wy3_licznik = 0;
int wy4_licznik = 0;
int stan_live_led = 1;
unsigned long tempo_startu_silnika = 30; //odcinek czasu co jaki następuje dodanie wartości do PWM
unsigned long tempo_mrugania_diodki_pulse = 150;
unsigned long czas_do_ostatniej_zmiany_wysterowania_silnika = millis() + tempo_startu_silnika;
unsigned long czas_do_ostatniej_zmiany_wysterowania_diody = millis() + tempo_mrugania_diodki_pulse;

void setup(){
  pinMode(we1,INPUT);
  pinMode(we2,INPUT);
  pinMode(we3,INPUT);
  pinMode(we4,INPUT);
  pinMode(live_led,OUTPUT);
  pinMode(wy1,OUTPUT);
  pinMode(wy2,OUTPUT);
  pinMode(wy3,OUTPUT);
  pinMode(wy4,OUTPUT);
}

void loop(){
  unsigned long time = millis();
  if(time >= czas_do_ostatniej_zmiany_wysterowania_silnika){

    //kanał pierwszy we1 - >wy1
    we1_state = digitalRead(we1);
    if (we1_state == HIGH){
      analogWrite(wy1,wy1_licznik);
      if(wy1_licznik<=255){
        wy1_licznik++;
      }
    }
    else{
      wy1_licznik = 0;
      analogWrite(wy1,wy1_licznik);
    }

    //kanał drugi we2 -> wy2
    we2_state = digitalRead(we2);
    if (we2_state == HIGH){
      analogWrite(wy2,wy2_licznik);
      if(wy2_licznik<=255){
        wy2_licznik=wy2_licznik+1;
      }
    }
    else{
      wy2_licznik = 0;
      analogWrite(wy2,wy2_licznik);
    }

    //kanał trzeci we3 - >wy3
    we3_state = digitalRead(we3);
    if (we3_state == HIGH){
      analogWrite(wy3,wy3_licznik);
      if(wy3_licznik<=255){
        wy3_licznik=wy3_licznik+1;
      }
    }
    else{
      wy3_licznik = 0;
      analogWrite(wy3,wy3_licznik);
    }  

    //kanał czwarty we4 - >wy4
    we4_state = digitalRead(we4);
    if (we4_state == HIGH){
      analogWrite(wy4,wy4_licznik);
      if(wy4_licznik<=255){
        wy4_licznik++;
      }
    }
    else{
      wy4_licznik = 0;
      analogWrite(wy4,wy4_licznik);
    }
    czas_do_ostatniej_zmiany_wysterowania_silnika​ = time + tempo_startu_silnika;  
  }
  //dioda pulsująca rytmicznie
  if(time>=czas_do_ostatniej_zmiany_wysterowania_diody){
    if(stan_live_led==1){
      digitalWrite(live_led, HIGH);
      stan_live_led = 0;
      czas_do_ostatniej_zmiany_wysterowania_diody = time+(tempo_mrugania_diodki_pulse/16);
    }
    else{
      digitalWrite(live_led, LOW);
      stan_live_led = 1;
      czas_do_ostatniej_zmiany_wysterowania_diody = time+(tempo_mrugania_diodki_pulse*16);  
    }
  }
  
  //W zasadzie koniec programu jeszcze tylko jedno.
  //Kiedy wartość 'time' przekroczy maksimum (4294967295 czyli około 49dni) i zacznie liczyć od nowa,
  //to funkcje nie będą wywoływane bo czas będzie zawsze mniejszy niż wyliczony z max time + czas wykonania.
  //dlatego resetujemy czasy w przypadku gdy licznik time się przekręca.  
  if (time==0){
    czas_do_ostatniej_zmiany_wysterowania_silnika​ = tempo_startu_silnika;
    czas_do_ostatniej_zmiany_wysterowania_diody = tempo_mrugania_diodki_pulse;
  }
}

İmage

İmage


Załączone pliki
.lay  softstart-sp5mg.LAY (Rozmiar: 50.48 KB / Pobrań: 1054)

...przede wszystkim nie zakłócać...
02-07-2013 0:16
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SQ4AVS Offline
Rafał
*****

Liczba postów: 1,401
Dołączył: 29-01-2010
Post: #19
RE: Arduino
Ryszardzie piszesz:
Mój program napisany w bascomie do sterownika przemiennika zmieściłem w 2313, Ten sam program w arduino już mi się tam nie mieści.... ale to moja wina bo korzystam z gotowych łatwych funkcji i program puchnie
-myślę, że w Bascomie też używasz gotowych funkcji czyli rozumiem, że Bascom daje oszczędniejszy kod.
Mnie do arduino zachęcił jeden z Kolegów pracy który robił obsługę sensorów ultradźwiękowych "na szybko". Przekonuje mnie do arduino bardzo duża ilość bibliotek ale mimo wszystko nie zamierzam rezygnować z bascoma bo nie mam w nim ograniczenia kodu (mam kupioną wersję pełną), brak zabawy z użyciem innych procków no i sporo gotowców. Co do zaczęcia zabawy z arduino to polecam jednak gotowe moduły z ebay-a po prostu taniej się nie da zrobić samemu a i przesyłka darmowa wystarczy wklepać arduino i wybierać. Uważam Ryszardzie, że masz bardzo dobry pomysł z tym cyklem dla arduino dla początkujących myślę, że bardzo wielu osobom początkującym by pomógł, bo z tego co wiem to brak jest polskiej książki o arduino.
02-07-2013 6:22
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
SP9MRN Offline
MAc
*****

Liczba postów: 819
Dołączył: 29-08-2009
Post: #20
RE: Arduino
Moim zdaniem biblioteki są kluczem. Jest ich cała masa, z każdą chwilą są nowe i coraz lepsze.
Obsługa wyświetlacza - czy tekstowego czy graficznego sprowadza się do umownego "print"
Podobnie jest z innymi bibliotekami.
Uroda arduino leży w otwartości systemu, w tym, że biblioteki pisze społeczność a nie firma.

Zgadzam się z Rafałem, że moduł "mini" z ebaya za 4,08$ (wraz z przesyłką z chin) jest cenowo nie do pobicia.
Trzeba do tego tylko jakiś konwerer na ft232 i można się bawić.
Myślę, że można nie skupiać się na robieniu HM modułu procesorowego a raczej na bardziej specjalizowanych modułach.
Jeżeli ktoś mi powie, że moduł z dwoma przekaźnikami z optoizolacją można zrobić taniej niż za 2,26$ to chyba nie uwierzę... (foto)


Kupowałem od chińczyków sporo rzeczy, dwa razy przesyłka nie dotarła - ale to była strata na poziomie 2x3$. Różnica w cenie chińskiej i polskiej jest tak ogromna, że moim zdaniem warto zaryzykować (chociaż trudno to ryzykiem nazwać). Ale to już każdy sam musi rozważyć.

73
MAc İmage

PS dodam, że to samo środowisko może załadować Arduino DUE - czyli płytkę na SAM3X8E (32-bitowy ARM Cortex-M3). To już jest potęga... :-)
(Ten post był ostatnio modyfikowany: 02-07-2013 11:28 przez SP9MRN.)
02-07-2013 11:28
Odwiedź stronę użytkownika Znajdź wszystkie posty użytkownika Odpowiedz cytując ten post
Odpowiedz 


Skocz do:


Użytkownicy przeglądający ten wątek: 2 gości