Close

Pagina 1 di 2 12 UltimaUltima
Risultati da 1 a 10 di 13
  1. #1
    Nutria anziana L'avatar di Enrico rossi
    Data Registrazione
    Jul 2014
    Località
    lugo e bologna
    Acquariofilo
    Dolce
    Età
    30
    Messaggi
    1,055
    Nominato in
    53 Post(s)

    Arduino 2! La vendetta della programmazione.

    La fine arte della programmazione:

    In elettronica si disegnavano gli schemi a blocchi per descrivere interamente le funzionalità del circuito e poi si popolava con i componenti; con i microcontrollori si descrive la serie di operazioni che vanno eseguite, anche in base agli eventi e alle rilevazioni dei sensori, fino a creare il flusso logico completo.
    Questo livello di astrazione è indispensabie per dare l'ossatura al programma che si scriverà nel liguaggio e con le modalità previste da arduino.
    Vi consiglio di usare un metodo per lavorare e cercare di rispettare anche l'esecuzione delle parti apparentemente piu noiose: tutto questo è indispensabile per poter crescere e superare le difficoltà che comunque la programmazione degli algoritmi più sofisticati ti metterà di fronte.
    Secondo il team di arduino e anche secondo me programmare è una forma d'arte, dove la creatività puo fare la differenza. Ci sono tante strade per arrivare alla soluzione finale, ma poche sono veramente efficienti.
    Con i pc la programmazione del software è diventata ipertrofica, con applicazioni da migliaia e migliaia di righe di codice, magari destinate ad abbellire un' interfaccia grafica senza apportare nulla sull'efficienza del programma stesso.
    Con i microcontrollori e con arduino ogni riga di programma si porta via un po di memoria. Arduino ha 32mila Kbyte circa di memoria.
    Con cosi poca memoria una progettazione attenta nell'applicazione per trovare una giusta media fra prestazioni e dimensioni del programma fa una significativa differenza.

    È ora di imparare l'arduinese

    Graziee al lavoro fatto dal team di arduino, il linguaggio che abbiamo a disposizione per programmare è una versione semplificata di c/c++ e arricchito da una serie di comandi creati apposta per darti accesso alle funzioni specifiche della scheda.
    Come tutti gli altri linguaggi anche questo ci permette di descrivere e strutturare il diagramma di flusso precedentemente creato in una serie di istruzioni che possono essere compilate in un altro linguaggio(codice oggetto) che può essere trasferito sul microcontrollore per la sua esecuzione.
    Come accade per le lingue straniere basta poco per imparare a dire”buon giorno” mentreper l'apprendimento vero e proprio passa dallo studio della grammatica e del vocabolario.


    Flusso logico

    Come strutturare le idee affinche possa diventare un programma?
    Basta trasformarli in piccoli passi logici che descrivono funzionalmente quello che deve succedere. I diagrammi di flusso sono di per se una forma di programmazione e sono ad un tale livello di astrazione da essere da un lato comprensibili a tutti e dall'altro sufficienti a descrivere un programma nella sua totalità. Con un diagramma di flusso il “programmatore” è in grado di scrivere il codice. Un diagramma di flusso può essere visto come una serie di frasi che descrivono passo passo quello che succed, utilizzando delle strutture grafiche predefinite per evidenziare gli elementi tipici della programmazione.
    IMG_6156[1].jpg

    esempio di diagramma di flusso

    Le variabili

    Il calcolatore svolge operazioni matematiche,acquisisce valori e svolge delle “attività” in base al confronto fra valori e stati logici. Adesso è necessario fare un piccolo sforzo e ricordare l'algebra imparata a scuola per trovare rapidamente le analogie e comprendere il concetto di variabili. Espressioni come “x=5” o “y=3” e “z=x+y” ci dicono che un certo x assume un valore di 5 una y che assume valore 3 e z che a come valore la somma di x e y, cioè 8. se cambiate i valori di x e y il risultato cambia di conseguenza. Con i programmi troviamo ancora questo tipo di notazione matematico con le variabili, alle quali pero è necessario aggiungere un ulteriore dimensione: il tipo. Nel caso di arduino ci sono i seguenti tipi:
    -int=interi;
    -float=numeri con virgola;
    -bool= stati logici;
    -char=caratteri;
    -byte= singoli byte.
    IMG_6157[1].jpg

    Ciascun tipo può avere delle varianti per ottimizzare la quantità di memoria e il carico di lavoro sul microprocessore (listato 1).
    Nel programma si useranno delle parole che il programma interpreterà come il valore ad esse assegnato e quindi non bisognerebbe usare lettere a caso, ma etichette in grado di semplificare la lettura del codice.
    Le variabili sono utilizzate con gli operatori che ci permettono di fare somme, sottrazioni,moltiplicazioni, confronti, operazioni logiche e cosi via.(listato2)

    La struttura di controllo
    Allegato 6950

    le strutture di controllo sono il cuore del processo logico di un programma e permettono di definire come questo procede in base ai risultati di operazioni sulle variabili o in conseguenza di dati in ingresso. Quindi con arduino abbiamo delle parole che sono riservate alla creazione di strutture di controllo e pertanto non possono essere utilizzate come variabili ed etichette.

    If/else:
    struttura classica e semplice della programmazione; in base all'espressione contenuta fra parentesi esegue due blocchi diversi di codice. Se l'espressione è vera verra eseguito il codice che segue, se è falsa verra eseguito tutto il codice che segue l'else(listato3). L'if puo anche essere usato senza l'uso dell'else(listato 4)
    IMG_6158[1].jpg
    for:
    è un'istruzione che serve per creare un ciclo che ripete il codice un numero finito di volte(listato 5)


    switch case:
    istruzione che serve quando ci sono piu strade da percorrere in base al valore della variabile switch(variabile) . Per ogni valore da gestire si usa il case(valore): seguito dal codice da eseguire in quello specifico caso. Quando viene eseguito un case verranno eseguiti anche i sucessivi case. Se non si vuole che arduino faccia questo si usa il break che fa saltare tutti i test successivi e puo essere usato anche in altre istruzioni. (listato 7)
    IMG_6159[1].jpg
    while:
    continua a ripetere all'infinito il codice all'interno del suo blocco finche l'espressione indicata diventa falsa. Bisogna pero che sia possibile uscire dall'istruzione, se no diventa un ciclo infinito (loop).(listato 8)

    Allegato 6951
    do...while:
    si comporta come il while ma poiché il test per la ripetizione è alla fine del blocco, il codice in esso contenuto è eseguito almeno una volta( listato 9).
    continue:
    puo essere utilizzato per far saltare parte dell'istruzione nelle istruzioni do,for o while. (listato 10)
    IMG_6160[1].jpg
    goto:
    permette di andare ad un punto definito da un etichetta.

    Return:
    interrompe lo svolgimento di una funzione e restituisce un risultato alla funzione che l'ha chiamata (listato 11).

    La struttura base degli sketch

    ogni programma ha una strutura predefinita: all'inizio ci sono le dichiarazioni delle variabili, messe all'inizio per questioni di leggibilità e praticità. Poi c'è la struttura di setup e infine c'è la struttura che viene eseguita come programma e viene ripetuta se necessario anche all'infinito. (listato 12)
    IMG_6161[1].jpg
    le funzioni:

    è grazie alle funzioni proprie dell'hardware e software di arduino che possiamo passare dal mondo sofware a quello dell'hardware. Le funzioni sono istruzioni speciali gia predefinite dalle librerie oppure con la possibilità di crearle noi che ci aiutano e semplificano molti lavori che fa arduino. Come per le porte digitali e analogiche.


    Le librerie:
    le libreria sono insiemi di funzioni,srutture e variabili che ci permettono di semplificare il nostro lavoro e rendere più semplice il codice del programma, cosi avremo vantaggi sia nella praticità del codice sia nella sua memoria.

    IMG_6162[2].jpg
    IMG_6163[1].jpg
    schema semplificativo.

    bibliografia:
    -libro primi passi con arduino ( ve lo consiglio)
    -le mie conoscenze
    foto prese dal libro.
    Ultima modifica di Enrico rossi; 01-10-2014 alle 10:42
    inviato con un discus volante non identificato

  2. #2
    Nutria mannara L'avatar di Jefri
    Data Registrazione
    Mar 2014
    Località
    Vicenza
    Acquariofilo
    Marino/Dolce
    Età
    33
    Messaggi
    7,918
    Nominato in
    490 Post(s)
    Grazie per la condivisione Enrico
    Hai voglia di aiutare il forum a crescere e scrivere un articolo su una specie?
    LINEE GUIDA PER ARTICOLI SULLE SPECIE

    GUIDA COMPLETA ALLA COLTIVAZIONE DELLE PIANTE IN ACQUARIO

  3. #3
    REEFBASTARD L'avatar di ALGRANATI
    Data Registrazione
    Mar 2014
    Località
    Cinisello Balsamo
    Acquariofilo
    Marino
    Età
    56
    Messaggi
    18,573
    Nominato in
    1746 Post(s)
    Posso articolizzarlo?

  4. #4
    Nutria anziana L'avatar di Enrico rossi
    Data Registrazione
    Jul 2014
    Località
    lugo e bologna
    Acquariofilo
    Dolce
    Età
    30
    Messaggi
    1,055
    Nominato in
    53 Post(s)
    Volevo cambiare le foto che sono pessime. Oggi cerco di farle meglio.


    Inviato con un discus volante non identificato
    inviato con un discus volante non identificato

  5. #5
    Nutria L'avatar di mentalità ultras
    Data Registrazione
    Apr 2014
    Località
    Maenza (LT)
    Acquariofilo
    Dolce
    Età
    31
    Messaggi
    357
    Nominato in
    8 Post(s)
    Enrico ma il libro da cui hai fatto le foto è uno specifico di Arduino oppure è un libro di testo scolastico?
    da sempre e per sempre, in ogni categoria, fino alla fine...
    16/06/2013 mi fai tremare il cuore...mi fai smettere di respirare

  6. #6
    Nutria anziana L'avatar di Enrico rossi
    Data Registrazione
    Jul 2014
    Località
    lugo e bologna
    Acquariofilo
    Dolce
    Età
    30
    Messaggi
    1,055
    Nominato in
    53 Post(s)
    è uno specifico di arduino. si intitola primi passi con arduino. :)
    inviato con un discus volante non identificato

  7. #7
    Nutria anziana L'avatar di Ale87tv
    Data Registrazione
    Mar 2014
    Località
    Breda di Piave, Treviso
    Acquariofilo
    Marino/Dolce
    Età
    37
    Messaggi
    4,784
    Nominato in
    191 Post(s)
    benissimo! non ci ho capito un cazzo... ma benissimo!
    So responsabie de queo che digo, no de queo che te capissi ti!

  8. #8
    Nutria anziana L'avatar di Pesce Bastardo
    Data Registrazione
    Apr 2014
    Località
    Napoli
    Acquariofilo
    Marino
    Messaggi
    617
    Nominato in
    3 Post(s)
    E possibile programmarlo per queste pompe qui? http://www.acquaefiltri.net/web2/neg...otore?vmcchk=1

    ovviamente se uno dovesse partire nell'acquisto, si utilizzerebbe anche per altro.

  9. #9
    Nutria anziana L'avatar di Enrico rossi
    Data Registrazione
    Jul 2014
    Località
    lugo e bologna
    Acquariofilo
    Dolce
    Età
    30
    Messaggi
    1,055
    Nominato in
    53 Post(s)
    Se le pompe vanno con la 220 le puoi pilotare con arduino mediante rele :)


    Inviato con un discus volante non identificato
    inviato con un discus volante non identificato

  10. #10
    Nutria mannara L'avatar di billykid591
    Data Registrazione
    Apr 2014
    Località
    Pozzuolo del Friuli (UD)
    Acquariofilo
    Marino/Dolce
    Età
    64
    Messaggi
    6,096
    Nominato in
    98 Post(s)
    Citazione Originariamente Scritto da Enrico rossi Visualizza Messaggio
    Se le pompe vanno con la 220 le puoi pilotare con arduino mediante rele :)


    Inviato con un discus volante non identificato
    Esatto anche se penso funzionino a 12 volt o comunque a bassa tensione...in tal caso credo basterebbe anche un piccolo transistor di media potenza

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •