Programmazione Grafica su Arduino

Finalmente una programmazione grafica come io la intendevo

si chiama FlowCode, consigliato da Astro l'ho provato.
scaricate la versione per AVR free http://www.matrixmultimedia.com/lc_index.php?p=22

per programmare direttamente Arduino da FlowCode ho usato queste info ma non va su arduinoUNO.

Gestiscono il problema del reset della UNO con un batch file, se qualcuno ci da' uno sguardo e gli venisse qualche idea sarebbe bello, forse devo solo cambiare la durata della pausa, ma non capisco dove farlo.
http://www.matrixmultimedia.com/mmforums/viewtopic.php?f=26&t=7846

Allego immagine
p.s. questo blink l'ho inventato io, ne possiedo i diritti :slight_smile:

Mi ci vorranno due orette per scaricarlo... ma poi lo provo....

Vi porto la prova della sua potenza.

mi sono detto vediamo se riesco a fare qualcosa di mio, in vita mia non ho mai programmato, il blink e' vero che l'ho fatto, ma avevo letto mille volte lo sketch quindi mi sono rifatto mentalmente a quello che ricordavo.

Il megaprogetto per mettermi alla prova e' stato:
QUANDO PREMI UN TASTO SI ACCENDE UN LED, QUANDO LO LASCI SI SPEGNE :slight_smile:

con arduino avrei dovuto copiare un esempio e sistemarlo per le mie necessita'.

qui invece ho fatto tutto in un attimo:

  • ho scelto un tasto monostabile
  • l'ho connesso al pin2 arduinico
  • ho scelto un led giallo
    -lho connesso al 13arduinico
  • ho dichiarato un input su pin2
  • ho creato la variabile button come byte
  • ho dichiarato un output su pin13
  • ho legato l'output alla variabile button
  • ho creato un loop

PREMI START
tutto funge, premendo il tasto il led si accende

p.s. anche button ora e' mio :slight_smile:

Un attimo però.... mi son perso un passaggio.... al momento lo stai usando come semplice simuatore vero ?...
o stai programmando la board fisica ?

Testato:
Gestiscono il problema del reset della UNO con un batch fil

Guarda che per risolvere questo problema basta mettere l'Optifix 4.4, è una versione hacked dell'Optiboot che funziona alla grande, risolvendo non solo il problema dell'autoreset quando si usa lo sketch ArduinoISP ma anche il bug relativo al fatto che non si riescono con il bootloader originale a spedire sketch più grandi di 30 kB.

belle info,
ma uno sguardo a sto' batchfile me lo dai per favore ?
visto che e' la strada ufficiale flowcode, senza modificare nulla.

Metti lo script, allora. Mica posso scaricarmi centinaia di mega di roba che non mi interessa solo per controllare un file di 2 KB :stuck_out_tongue_closed_eyes:

l'ho gia' messo, e' tutto scritto nel primo post
p.s. flowcode completo e' 76mega

Io sono pignolo per natura... Se leggo "l'ho gia' messo" immagino che ci sia... ]:smiley:
Invece c'è un link ad un forum dove poi c'è un altro link da cui scaricare quello script. Che, ops, non è uno script, ma un file batch per DOS/Win. Non so darti mano: credevo ad una soluzione più semplice. Linux è diverso nel gestire la porta di comunicazione rispetto a Windows.

Testato:
Finalmente una programmazione grafica come io la intendevo
si chiama FlowCode, consigliato da Astro l'ho provato.

Flowcode permette di sviluppare applicazioni abbastanza complesse senza sapere nulla del micro che si vuole utilizzare e di programmazione, è a un livello di astrazione superiore a qualunque altro linguaggio.
Io non uso Flowcode però ne avevo visto una presentazione ad un convegno e mi ha aveva favorevolmente impressionato nell'ottica dell'utilizzo didattico o rivolto a chi deve realizzare semplici automatismi senza dover perdere mesi per capire cos'è un timer o un interrupt, che poi è la stessa filosofia di Arduino.
Sto scaricando la demo per AVR e il file batch per Arduino, poi ti faccio sapere se si riesce a programmare Arduino direttamente da Flowcode tramite il suo bootloader e gli eventuali problemi.

ottimo, magari possimo dare conferma anche su quel topic ufficiale che non funziona.

tu hai anche la 2009 immagino, puoi fare piu' prove.

xleo, ma da quel file batch, aperto come testo, non si capisce se c'e' una pausa da qualche parte che si puo' allungare ?
anche perche' scoprire che c'e' una soluzione sw al reset della uno e' una cosa nuova

p.s capisco che non vuoi installare windows, ma almeno una macchina virtuale con win-xp la devi tenere :slight_smile:

Testato:
tu hai anche la 2009 immagino, puoi fare piu' prove.

Ho a mia disposizione per fare prove 2009 originale, UNO originale, MEGA2560 originale, Luigino 328, Luigino stand alone con bootloader 2009.

p.s capisco che non vuoi installare windows, ma almeno una macchina virtuale con win-xp la devi tenere :slight_smile:

Tu non sai ancora chi è Leo, ti metto un vero scoop, è una foto che ritrae Leo al lavoro, per l'occasione si è camuffato un pochino però è riconoscibilissimo :smiley:

microsoft-wall.jpg

credo che la definizione piu' appropriata sia ECCELSO ?

Fatta la prova, utilizzando il loro file batch pare funzionare anche il trasferimento del software su Arduino, la cosa buffa è che la fase di programmazione termina con un errore però il programma è stato trasferito e risulta funzionante.
Non mi convincono molto i parametri che utilizzano per AVRdude e poi c'è il fatto che AVRdude per Arduino utilizza un file di configurazione appositamente modificato, mi sa tanto che tocca fare un merge delle due cose.

Launching the programmer...
C:\Programmi\Matrix Multimedia\Flowcode AVR V4\Tools\MX_bats\avrc_arduino1.bat m328p stk500 com3 57600 "1. Lighting an LED.hex"

Stato della periferica COM3:
----------------------------
    Baud:                 57600
    Parit…:               None
    Bit di dati:          8
    Bit di stop:          1
    Timeout:               ON
    XON/XOFF:             OFF
    Sincronizzazione CTS: OFF
    Sincronizzazione DSR: OFF
    Sensibilit… DSR:      OFF
    Circuito DTR:         HANDSHAKE
    Circuito RTS:         OFF


C:\Documents and Settings\Documenti\Downloads\Flowcode_V4_Examples\Components\LED & Switch>"C:\PROGRA~1\MATRIX~1\FLOWCO~1\Tools\MX_bats\..\AVRDUDEusb\avrdude.exe" -p m328p -P com3 -b 57600 -c stk500 -U flash:w:"1. Lighting an LED.hex"                      
avrdude.exe: successfully opened stk500v1 device -- please use -c stk500v1

avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 0.05s

avrdude.exe: Device signature = 0x1e950f
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: reading input file "1. Lighting an LED.hex"
avrdude.exe: input file 1. Lighting an LED.hex auto detected as Intel Hex
avrdude.exe: writing flash (300 bytes):

Writing | ##########################################
........................................


avrdude.exe: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
######## | 100% 10.14s

avrdude.exe: failed to write flash memory, rc=-4


.............................

avrdude.exe: stk500_cmd(): programmer is out of sync

Error returned from [avrdude]

Return code = 1

Flowcode non è ingrado di trasferire il flowxhart al microcontrollore. Controllare le opzioni del programma e le connessioni.

FINISHED

non e' che avevi blink gia' caricato sotto ?

hai provato con la uno ?
ho visto che hai usato il batch numero 1, che serve per la 2009

allego i settaggi, sono i settaggi della UNO cosi' come consigliati sul forum ufficiale:

questo invece il risultato, e non funziona, mi lampegggia solo all'inizio il led13, ma non lampeggiano i led tx-rx

Launching the programmer...
C:\Program Files (x86)\Matrix Multimedia\Flowcode AVR V4\Tools\MX_bats\avrc_arduino2.bat m328p stk500 com4 115200 "blink.hex"

Stato del dispositivo COM4:
---------------------------
    Baud:                 115200
    Parit…:               None
    Bit di dati:          8
    Bit di stop:          1
    Timeout:              ON
    XON/XOFF:             OFF
    Sincronizzazione CTS: OFF
    Sincronizzazione DSR: OFF
    Sensibilit… DSR:      OFF
    Circuito DTR:         ON
    Circuito RTS:         OFF


D:\Backup\Elettronica\FlowCode\scketch\blink>"C:\PROGRA~2\MATRIX~1\FLOWCO~1\Tools\MX_bats\..\AVRDUDEusb\avrdude.exe" -p m328p -P com4 -b 115200 -c stk500 -U flash:w:"blink.hex"                      

Error returned from [avrdude]

Return code = 1

Flowcode non è ingrado di trasferire il flowxhart al microcontrollore. Controllare le opzioni del programma e le connessioni.

FINISHED

arduino_flowcode.JPG

Testato:
non e' che avevi blink gia' caricato sotto ?

Ho provato con la 2009, sono sicuro che ha caricato il programma che ho creato con Flowcode perché il led lo faccio lampeggiare veloce, intervalli di 100 ms.
Sto facendo altre prove e la programmazione è molto random, cioè a volte va a buon fine e a volte no, un paio di volte mi ha dato anche l'ok di programmazione terminata, dove va in errore è la lettura della flash per la verifica.
Sicuramente è solo un problema di parametri per Avrdude.

@astrobeed:
foto STUPENDA! :wink:

@Testato:
non è (solo) mancanza di voglia di "toccare" qualcosa di Microsoft, è che veramente le porte USB sono gestite in maniera differente. Io cmq credo che il "trucco" stia in questa riga, che sta nel 2° file batch:

@mode %ComPort%: baud=%BaudRate% parity=n data=8 stop=1 to=on xon=off odsr=off octs=off dtr=on rts=off idsr=off

credo che riprogrammino in qualche modo la porta per disattivare ill reset. Leggo infatti: rts=off.

leo72:
credo che riprogrammino in qualche modo la porta per disattivare ill reset. Leggo infatti: rts=off.

L'autoreset funziona perfettamente.

Ma allora non ho capito io. Qual è quindi il problema dell'UNO che questo script aggirerebbe?
Se è quello relativo all'uso dell'UNO come programmatore ISP la soluzione, come ho detto, già c'è ed è definitiva e universale, nel senso che funziona sempre dato che non dipende dal sistema ospite (quello script gira solo su Windows) ma è legata alla modifica del bootloader stesso.

attenzione chiariamo sempre di quale batch stiamo parlando,

il batch n2 per la UNO setta ad esempio il DTR a ON, mentre il batch n1 per la 2009 lo mette in Handshake