Centrul de Excelență pentru Robotică Educațională Focșani

Acasă » Lecții de programare în mediul Arduino

Lecții de programare în mediul Arduino

Reclame

Lecția 1: INTRODUCERE

Autor: prof. ing. Agache Săndel

Cv_CheieCuvinte cheie: Arduino, shield, mediu de programare.

Intrebari                 Ce este Arduino?

Studiu Arduino înseamnă „bun prieten” în limba italiană și reprezintă numele unui sistem cu microprocesor, de fapt o placă de dezvoltare cu microcontroler pe 8 biți, din familia AVR – ATmega 328 P, care permite comunicație serială, comandă Pulse Width Modulation (PWM), achiziție analogică și comunicații Input / Output digitale. Include un microprocesor, un oscilator (cristal din cuarț) și un regulator liniar de 5V. În funcție de tip, Arduino conține și un conector USB. Imaginea unei plăci Arduino de tipul „UNO”  este prezentată în figura 1.

Arduino_Uno

images[5]

Fig. 1

        Pe o placă Arduino se pot așeza mai multe „scuturi” ( shield -uri) de dispozitive care pot avea diferite funcții în prototiparea hardware a robotului, fig. 2.

rob_420141208_104521

Fig. 2

        Mediul de programare utilizează Arduino IDE (Integrated Development Environment) care permite editarea codului în limbajul C. În figura 3 se prezintă o secvență de program pentru controlul unor mișcări.

Secv_program

Fig. 3

După cum vedeți, atitudinea mea pedagogică este preponderent deductivă întrucât lecțiile se adresează liceenilor care au cunoștințe minime de programare în limbajul C/ C++. Cu toate acestea, voi face în așa fel încât și elevii care nu au suficiente cunoștințe de programare, să înțeleagă demersul meu. În baza acestui argument vă prezint un „ABC” al programării în mediul Arduino – „Clipește”:

Void    Exemplul 1 de programare în mediul Arduino

/*
LED-ul se aprinde pentru o secundă, apoi ramâne stins pentru
o secundă.Operația se repetă
*/
// Funcția de setare (inițializare)
void setup() {
// inițializă dată digitală 13 ca o ieșire.
pinMode(13, OUTPUT);
}
// funcția de buclă „trece peste și peste din nou pentru totdeauna”
void loop() {
digitalWrite(13, HIGH);   // pornește (scrie digital) LED- (HIGH este nivelul de tensiune)
delay(1000);              // așteapta o secundă
digitalWrite(13, LOW);    // pornește (scrie digital) LED- (LOW este nivelul de tensiune)
delay(1000);                // așteaptă o secundă
}

Iata câteva legături utile:

-site-ul oficial Arduino http://www.arduino.cc/

-documentație Arduino http://arduino.cc/en/Reference/HomePage?from=Reference.Extended

-tutorial Arduino http://www.tehnorama.ro/arduino/

-Arduino pentru începători:

http://www.robofun.ro/kit-arduino-incepatori


IMPORTANT!

Lecția 2 și celelalte lecții sunt accesibile numai elevilor înscriși la Centrul de Excelență, sau elevilor care au cont pe acest site.

Reclame

13 comentarii

  1. Tacu Silviu-Ioan spune:

    Pot sa ma inscriu la Centrul de Excelenta daca nu sunt elev ?

    Apreciat de 1 persoană

  2. marian spune:

    cum pot sa ma inscriu?

    Apreciază

  3. Andra Zaporojan spune:

    buna ziua, cum pot sa imi fac cont pe acest site? sunt interesata de Arduino si lectiile imi par foarte frumos explicate. email-ul este al tatalui meu.multumesc

    Apreciază

  4. Buna seara Andra!
    Daca esti din Focsani, treci intr-o zi pe la Colegiul Tehnic ”Edmond Nicolau”. Toate cele bune!

    Apreciază

  5. Eu am lucrat ca electronist, depanator radio-tv, chiar am construit amplificatoare audio…de la 0, totdeauna m-a pasionat automatizariile si platforma aduino mi se pare foarte interesanta, credeti ca as putea sa acumulez noi cunostinte, avand in vedere ca am 50 ani, oricum m-ar interesa si pentru copilul meu in varsta de 9 ani. Cu ansamblarea ma descurc, cu programarea !!!!!

    Apreciat de 1 persoană

    • Va felicit domnule Riciu pentru pasiunea dv.! Sigur ca puteti acumula noi cunostinte, pasiunea vă va ajuta in acest sens. Programarea in mediul Arduino se realizeaza in limbajul C (putin adaptat), trebuie doar sa va initieze cineva si apoi puteti continua singur. Din pacate, activitatea la Centrul de Excelenta pentru Robotica Educationala a fost suspendata temporar cu ”sprijinul” celor care ar fi trebuit sa sprijine aceasta activitate: I.S.J. Vrancea. În România există multa invidie și nepăsare…Va multumesc pentru faptul ca ati interacționat cu platforma Centrului de Excelenta si va doresc mult succes! prof. ing. Agache Sandel

      Apreciat de 1 persoană

      • john flower spune:

        Pe durata cat LED-ul e aprins, ii pot controla luminozitatea prin modificarea de catre arduino a tensiunii continue aplicate, fara rezistenta aditionala, si fara PWM?

        Apreciază

  6. Ghemulet Alexandru spune:

    Buna ziua,sunt de la colegiu Edmond Nicolau in clasa a 9-a si sunt foarte interesat in ceea ce priveste robotica inca de mic si chiar doresc sa aflu mai multe despre acest domeniu.Va multumesc !

    Apreciază

  7. religioffblog spune:

    Pe durata cat LED-ul e aprins, ii pot controla luminozitatea prin modificarea de catre arduino a tensiunii continue aplicate, fara rezistenta aditionala, si fara PWM?

    Apreciază

  8. religioffblog spune:

    Curentul prin LED-ul legat intre o iesire analogica si o intrare analogica poate fi reglat/variat prin comanda tensiunii de pe pinul de iesire, si monitorizate valorile tensiunii de pe pinul de iesire in acelasi timp cu curentul pe pinul de intrare?

    Apreciază

    • Buna ziua! Toti pinii microcontrolerului ATmega contin cate o rezistenta de pull-up. La configurarea software circuitul intern al microcontrolerului este reconfigurat și orice semnal rezultat din interferente poate schimba starea pinilor.
      Altfei spus, orice semnal slab din jur (de la comutatoare, tastaturi etc.) poate fi interpretat ca semnal de intrare.
      Rezistență de tragere sau retragere, de regula între 10k și 100k, este numita asa pentru a defini starea de intrare atunci când nu este conectată nicio sursă de semnal. Acestea reteaza zgomotul cand acesta e mare. Rezistentele de pull-up si pull-down, trebuie luate in sinergie cu contactele. O rezistenta de pull-up de exemplu este legata la VDD in serie cu un comutator (contact mecanic, releu, tranzistor iesirea unui circuit digital). Iesirea se afla intre contact si rezistenta de pull-up. Rezistenta de pull-up este suficient de mica astfel incat daca la iesire se pune intrarea unor alte circuite digitale, acelea sa nu schimbe starea logica cand comutatorul este deschis. La pull-down e exact invers, rezistenta este conectata intre iesire si GND. Atunci cand comutatorul este deschis, atunci iesirea va avea potentialul 0.
      Si aici gasiti cateva informatii: http://creativechip.ro/index.php/15/12/09/arduino-notiuni-de-baza-de-electronica-iii/ Mai mult, pentru a nu se arde LED-urile conectate la pini, acestea se inseriaza cu cate o R de 220-300 Ohm. Pinii digitali pot fi si PWM, de ex. Arduino uno are Pini intrare/ieșire digitali: 14 (dintre care 6 pot oferi ieșire PWM), iar valoarea tensiunii se poate regla prin factorul de umplere D = t_on / (t_on + t_off) * 100 = pulse_width / period * 100. Modularea folosește variația factorului de umplere a unei forme de undă dreptunghiulară pentru a genera la ieșire o tensiune analogică.

      Apreciază

Lasă un răspuns

Completează mai jos detaliile tale sau dă clic pe un icon pentru a te autentifica:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare /  Schimbă )

Fotografie Google

Comentezi folosind contul tău Google. Dezautentificare /  Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare /  Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare /  Schimbă )

Conectare la %s

%d blogeri au apreciat asta: