• Benvenuti su RaspberryItaly!
Benvenuto ospite! Login Login con Facebook Registrati Login with Facebook


Valutazione discussione:
  • 0 voto(i) - 0 media
  • 1
  • 2
  • 3
  • 4
  • 5

[-]
Tags
led blink

Led Blink
#1
Ciao a tutti, scrivo perché ho avuto l'ardire di acquistare una board pico giusto per provarla e, qualche giorno fa, mi sono messo a scrivere un programma che, altrimenti, avrei fatto con arduino.
Il programma è scritto in micropython (thonny). In sostanza gestisce 5 motori passo passo a diverse velocità. Le velocità arrivano via seriale (stdin) e, attraverso un contatore, a intervalli di tempo mando un clock alla scheda di potenza dei passo passo. In sostanza è un led blinker che varia il tempo del time.sleep. Il programma funziona perfettamente ma, dopo un tempo non definito e mai uguale, si interrompe senza motivo.
Qualcuno ha mai avuto problemi di questo tipo?
Risposta
#2
non ho esperienza al riguardo, ma la norma è
attiva e/o crea log per ogni azione cosi da capire dove e come si blocca.
Heart Libro  | Blog EnricoSartori.it | Idea YouTube
Se un utente ti è stato utile, aumenta la sua reputazione! premi il Pollicione! 
Risposta
#3
Grazie Enrico per la risposta. Di fatto ci ho provato e, in effetti, non si blocca il programma in sé, si blocca solo l'uscita che controllo. Il dato in seriale continua ad arrivare (lo tengo monitorato con il print). In sostanza, quattro uscite continuano a funzionare, quella collegata al led on board smette di funzionare. In funzione di questo, ho provato a cambiare pin e a monitorare l'uscita con l'oscilloscopio e succede la stessa cosa. Qualsiasi pin vado a controllare, questo si blocca dopo un po'. E questo può capitare dopo 10 secondi o dopo 10 minuti.
Risposta
#4
Una sintesi del flusso del programma? Hai provato a spostare il comando per questa uscita per prima e successivamente le altre quattro? Poichè lo stop avviene per diversi pin utilizzati è probabile che la causa, anche indiretta, sia nel flusso dell'esecuzione stessa. Considera che l'istruzione time.sleep blocca il primo core sino al termine del valore impostato (probabile che un interrupt possa "sbloccarlo" momentaneamente, ed è forse meglio utilizzare il secondo core per le temporizzazioni). Nel caso, utilizza l'istruzione print anche per seguire le varie fasi dell'esecuzione del programma, anche incrementando un indice (utile nel caso di un while). Come sono distribuite le alimentazioni? Il pico necessita di una alimentazione stabile e pulita.
Risposta
#5
Grazie Ippogrifo per la risposta e scusa il ritardo nella mia ma il lavoro mi sta sotterrando... In ogni caso ho risolto utilizzando arduino. Ho semplicemente tradotto il programma e funziona perfettamente.
Non vorrei parlarne male, ma pico mi sembra un "chiodo" pazzesco. Ho fatto diversi programmi a caso per verificarne il funzionamento ma sono più le volte che ho dovuto flashare la memoria per resettarlo perché non riceveva più il programma.
Mi sa che rimarrò fedele al mio arduino...
Risposta
#6
al mio, non è mai successo. forse un problema di alimentazione. Il grosso vantaggio di Pico (a mio parere e vedendo l'entusiasmo con cui è stato accolto) è che si possono usare linguaggi già conosciuti, come Python (adattissimo ai principianti) o C
Risposta
#7
Esiste un "core" anche per l'ecosistema "arduinico", io lo proverei.
Anche perché di schede arduino dual core a meno di 5,10€ non ci sono! Smile
Risposta
  


Vai al forum:


Navigazione: 1 Ospite(i)
Forum con nuovi Post
Forum senza nuovi post
Forum bloccato
Forum Redirect