Genetic programming e arduino

Salve a tutti,
sono un giovane neolaureato in ingegneria aerospaziale.

Questo sarà il mio primo approccio all'ambiente arduino e vi spiego quello che vorrò fare per scopo prettamente ludico.

In sostanza vorrei utilizzare una scheda arduino per controllare un motore cc in velocità secondo un dato riferimento, pilotato attraverso un ponte ad H.
In partenza non avrei nessun requisto da rispettare, in quanto oltre ad essere una cosa ludica, la legge di controllo che voglio implementare su Arduino sarà ricavata attraverso la tecnica del genetic programming e sarà della forma u=f(e) con u il comando ed e=desiderato-valore(letto dal sensore) l'errore, per cui sarà facilmente adattabile ai requisiti fisici dei vari componenti. Arduino dovrebbe permettere di implementare tale legge una volta trovata, esatto?

Dunque alla base di quanto detto, quali componenti necessari dovrei acquistare? (tipo di: scheda arduino (considerando magari altre future applicazioni :)), motore cc con encoder integrato?, ponte ad H)

Grazie a tutti coloro i quali vorranno aiutarmi :slight_smile:

Buongiorno, :slight_smile:
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il su citato REGOLAMENTO ... Grazie. :slight_smile:

Guglielmo

P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nessuno ti potrà rispondere, quindi ti consiglio di farla al più presto. :wink:

Ops, fatto subito :smiley:

Arduino dovrebbe permettere di implementare tale legge una volta trovata, esatto?

Sí.
Ciao Uwe

Dipende da cosa esattamente ci vuoi fare, diciamo che la tua domanda è decisamente generica.
Ora, per controllare un motorino con un algoritmo minimal, potrebbe andare bene tutto, se ti vuoi spingere su cose molto più complicate e raffinate, potrebbe servirti tutto quello che hai studiato da ingegnere aerospaziare e un Cray-1 potrebbe non bastare :stuck_out_tongue:

Da una parte parli di pilotare un motore con un aggiustamento graduale e dall'altro di tecniche di programmazione per un sistema di controllo che si autoadatta in base all'esperienza acquisita...
E questo come partenza, poi vorresti poterlo usare anche per altro...

Vista la tua presentazione, deduco che tu non abbia ancora fatto nulla con arduino per cui devi fare proprio il primo passo.
Io ti dico come ho proceduto io.
Ho preso uno starter kit (lo ammetto, clone) e ho iniziato a sbatterci il naso con sensori e attuatori comuni. Giusto per avere una panoramica iniziale, il difficile, se hai una certa competenza, è far accendere il primo led, ma solo perchè devi capire la filosofia di fondo e configurare l'ambiente di sviluppo, quindi mi hai già capito di che "difficoltà" sto parlando. Poi ho giocato un po' con quello che c'era nel kit e ho visto le potenzialità e la facilità con cui si potevano fare certe cose, ma soprattutto la microfauna di sensori e attuatori che si trovano facilmente.
Fatto questo, sono passato ai progetti specifici, con maggior consapevolezza, a questo punto ci si concentra sulle caratteristiche dei sensori/attuatori in base alle esigenze sapendo già come farli funzionare.

Maurizio

Grazie per le risposte Uwe e Maurizio,
be si è il mio prissimo approccio al mondo Arduino.
La legge di controllo sarà trovata in maniera offline attraverso altri ambienti e non sarà riaggiornata in maniera on-line.

Altre prove della tecnica (on-line) di controllo sono state simulate utilizzando l'HPC della mia università e già loro andavano in difficoltà in termini di tempo per le cartteristiche del plant che dovevo controllare :).

Il mio scopo qui è solo quello di testare una legge di controllo ben definita a priori e fissata nel tempo per cui il sistema sarà incurante degli eventuali disturbi/incertezze del caso.

Come si è già detto questo sarà il mio primo approccio per entrare nell'ottica.
Dunque alla luce di quanto detto mi chiedevo se la lista della "spesa" possa andare bene:

  • Arduino Uno
  • un motore cc / brushless con encoder built in (se si quale mi consigliate sul mercato?)
  • ponte ad H l298N (sul web ho visto motori che hanno il driver integrato, dunque se dovessi prendere uno di questi il ponte ad H non mi servirebbe,giusto?)
  • e poi: cavetteria, bread-board, batteria (?), enorme punto interrogativo (?)
    -altro?

ps: faccio prima a prendere l'Arduino Starter Kit?

Grazie ancora!!!

Purtroppo non ho un'esperienza tale da poterti consigliare su componenti specifici, quindi lascio la cosa ad altri.
Per lo starter kit ho già detto come la penso.
Invece, ti aggiungo un aspetto, tu dici: "batteria (?)", valuta bene come alimentare i vari componenti, perchè l'errore tipico è di prelevare l'alimentazione da arduino, alimentato a sua volta dal classico alimentatore commerciale tipicamente a 9V mediante il suo regolatore interno che porta ai 5V.
Occhio ai consumi, la battuta che facciamo spesso è: arduino non è un alimentatore, piuttosto prendi altri alimentatori separati per alimentare le cose che richiedono più potenza, quindi anche batterie con un eventuale DC/DC converter per adattare la tensione a quel che ti serve.

Ho intuito che l'algoritmo di controllo non dovrebbe essere troppo complicato, altrimenti occhio anche a potenza di calcolo ma soprattutto memoria flash per il programma e ram per le variabili.

Ora ti lascio ad altri più esperti per motori ecc.

Maurizio

Secondo me la uno è “poco”… Io partirei subito con quelle a 32bit, ma occhio alle tensioni, max 3,3v.