Differenze tra le versioni di "HotAirGun"

Da raspibo.
Jump to navigation Jump to search
 
(2 versioni intermedie di un altro utente non mostrate)
Riga 4: Riga 4:
 
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.
 
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.
  
Lo scopo era quello di crearsi una stazione di saldatura ad aria calda basandosi su uno schema visto su una rivista di elettronica creando uno strumento utile.
+
Lo scopo era quello di crearsi una stazione di saldatura ad aria calda basandosi su uno schema visto su una rivista di elettronica creando uno strumento utile.  
  
 
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).
 
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).
Riga 136: Riga 136:
 
*setup predispone tutti i parametri per la stazione ad aria calda
 
*setup predispone tutti i parametri per la stazione ad aria calda
 
*loop gestisce un ciclo continuo e non bloccante, verificando con un sistema di priorita' gli eventi piu' urgenti da gestire (calcolo PID, aggiornamento display, verifica rotazione encoder e pressione pulsanti, accensione triac, ecc..)
 
*loop gestisce un ciclo continuo e non bloccante, verificando con un sistema di priorita' gli eventi piu' urgenti da gestire (calcolo PID, aggiornamento display, verifica rotazione encoder e pressione pulsanti, accensione triac, ecc..)
 +
 +
=== Funzioni specifiche di HAG ===
 +
Saldando vari tipi di componenti puo' succedere di imbattersi in alcune particolari necessita' dovute a parti in gomma che resistono all'alta temperatura per pochi secondi, oppure ad esempio fotodiodi che hanno sul case una finestrella.
 +
 +
Sul datasheet di questi componenti si trova qualcosa di scritto che consiglia di non esporre il componente ad una temperatura superiore ad una soglia per un massimo di alcuni secondi.
 +
Generalmente per questo si ricorre ad una prima fase di preriscaldamento e poi si passa per pochi secondi alla temperatura di saldatura.
 +
 +
Altre volte si trova proprio un grafico come quello mostrato di seguito.
 +
 +
[[File:HAG weld curve t.PNG|400px]]
  
 
=== 3D ===
 
=== 3D ===
Riga 171: Riga 181:
  
 
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.
 
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.
 +
 +
Questa e' la sequenza di voci del menu
  
 
<source>
 
<source>

Versione attuale delle 21:18, 22 mag 2020

Ovvero come rendere un progetto hardware e software completamente open

Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.

Lo scopo era quello di crearsi una stazione di saldatura ad aria calda basandosi su uno schema visto su una rivista di elettronica creando uno strumento utile.

Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).

La prima versione pero' aveva alcune caratteristiche:

  1. schemi realizzati con software proprietario
  2. controllore PIC che all'interno del nostro gruppo e' poco diffuso

Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.

Versione 2

455024573 479078.jpg 455705647 436435.jpg 447808582 167273.jpg
 
Hot air gun V2
 
455926349 327987.jpg 447816881 166701.jpg


Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.

Per il progetto abbiamo utilizzato:

  1. kicad per gli schemi elettrici e pcb
  2. ide arduino per il microconroller
  3. freecad per il disegno 3D

I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.

Schema elettrico

Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.

Sono state prodotte due piastre pcb:

  • modulo i2c controller
  • modulo potenza e microcontrollore

I2c controller

Questa e' una scheda di interfacciamento tra l'operatore ed il micro arduino e permette tramite encoder, display, led e buzzer di pilotare la stazione ad aria calda.

L'interfacciamento con arduino avviene su bus i2c, per limitare l'uso di pin, per questo e' stato usato un chip mcp23017 i2c port expander che serve a pilotare pin I/O tramite i2c.

Qualche altra info sull'integrato e' disponibile su questa pagina GPIO_aggiuntivi_MCP23x17.

MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.

L'integrato viene completamente configurato all'avvio da arduino per decidere se i port sono input o output e su alcuni pin in ingresso attivare un interrupt in caso di variazioni di stato per gestire in tempo breve e ottimale l'encoder.

Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.

AC control + Microcontrollore

Il funzionamento di HAG prevede un microcontrollore che regoli continuamente la potenza da erogare sulla resistenza presente all'interno del generatore di aria calda alimentata dai 240 volts di rete in corrente alternata.

Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):

  • Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia
  • Calcolo della differenza tra temperatura attuale e quella desiderata
  • Elaborazione dell'algoritmo PID
  • Rilevamento del passaggio della tensione alternata per lo zero.
  • Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC
  • Attesa del tempo calcolato dal PID
  • Disattivazione del TRIAC

Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):

  • Interfacciamento con l'utente (gestione display, encoder, pulsanti)

Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):

  • Debug su seriale

Zero crossing detection

Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.

All'uscita c'e' una resistenza di limitazione di valore elevato per pilotare un fotoaccoppiatore che emette un impulso all'inversione di polarita' della tensione di rete.

L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.

Driving del triac

Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.

Lavorando in corrente alternata non basta applicare un segnale PWM, ma bisogna lavorare in sincrono con il segnale sinusuoidale, per questo motivo viene rilevato il passaggio della tensione per lo zero.

Il triac e' un dispositivo che si spegne automaticamente al passaggio della tensione per lo zero, questo implica che va pilotato con un impulso a temporizzazione precisa per essere attivato, ma ha anche due grossi vantaggi:

  • il software deve calcolare solamente il tempo da attendere prima di attivarlo
  • lo spegnimento automatico ad ogni passaggio per lo zero garantisce che un eventuale problema software al micro causi una alimentazione a massima potenza della resistenza (che avrebbe effetti distruttivi)

Da notare che aumentando il valore sulla variabile TCNT_timer quindi aumentando il tempo di attesa prima di attivare il triac si ha minore potenza sulla resistenza.

Gestione termocoppia

La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.

La gestione di questo tipo di sensori va fatta con un circuito apposito per cui alcuni produttori producono integrati dedicati, nel nostro caso MAX6675 che fornisce una uscita digitale su porta SPI.

Per la lettura dall'integrato sul codice sono presenti due funzioni:

  • TempC si occupa della lettura dei registri dell'integrato
  • TC_Read inserisce nelle variabili i valori letti da TempC. Sono gestire anche due casi in il MAX6675 non e' connesso (return -200) e termocoppia scollegata (return -100).

PCB

Il pcb per alcune caratteristiche si potrebbe anche creare con metodi casalinghi, ma essendo in gioco la tensione di rete abbiamo preferito farli produrre ad un servizio di realizzazione industriale che garantisce una finitura con vernice isolante e serigrafie.

Codice

Il software di questo progetto ha alcune caratteristiche che devono essere garantite:

  • gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)
  • affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento
  • avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile

Alcune funzioni implementate:

  • HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)
  • ZeroCCallBack al passaggio per lo zero della tensione di rete incrementa il contatore per il calcolo del timing di calcolo pid, setta il registro pwm per pilotare la resistenza
  • ISR gestione del TRIAC all'overflow del TIMER1
  • Debug funzioni di debug su led del controller e seriale
  • ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione
  • SaveParMenu salva su eeprom i valori modifica alla funzione precedente
  • SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale
  • weldCurve questa e' una funzione particolare per la saldatura di alcuni componenti che richiedono un preriscaldamento, una stabilita' di temperatura per alcuni secondi, una temperatura di saldatura che non deve durante oltre un limite di tempo stabilito sul datasheet
  • PID implementa l'algoritmo PID
  • TC_Read legge i registri dell'integrato di gestione della termocoppia
  • TempC gestisce i valori letti dalla funzione precedente
  • checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal
  • DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri
  • checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd
  • startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura

Infine le due funzioni standard del codice arduino:

  • setup predispone tutti i parametri per la stazione ad aria calda
  • loop gestisce un ciclo continuo e non bloccante, verificando con un sistema di priorita' gli eventi piu' urgenti da gestire (calcolo PID, aggiornamento display, verifica rotazione encoder e pressione pulsanti, accensione triac, ecc..)

Funzioni specifiche di HAG

Saldando vari tipi di componenti puo' succedere di imbattersi in alcune particolari necessita' dovute a parti in gomma che resistono all'alta temperatura per pochi secondi, oppure ad esempio fotodiodi che hanno sul case una finestrella.

Sul datasheet di questi componenti si trova qualcosa di scritto che consiglia di non esporre il componente ad una temperatura superiore ad una soglia per un massimo di alcuni secondi. Generalmente per questo si ricorre ad una prima fase di preriscaldamento e poi si passa per pochi secondi alla temperatura di saldatura.

Altre volte si trova proprio un grafico come quello mostrato di seguito.

HAG weld curve t.PNG

3D

Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.

Inoltre il case e' stato ridisegnato utilizzando Free Cad.

A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.

Assemblaggio

L'assemblaggio non e' particolarmente complesso.

Essendo abbastanza compatto va fatta un po' di attenzione alla lunghezza dei fili di interconnessione e alla separazione tra le parti sotto tensionedi rete e quelle a bassa tensione.

Per le pareti abbiamo scelto una plastica trasparente per rendere vsibile il pcb e rendere anche per simboleggiare lo spirito open del progetto, questo porta anche il vantaggio di poter vedere i vari led di diagnostica sulla basetta.

Istruzioni

Accensione

Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.

Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.

In questa fase vengono fatti alcuni check e la stazione si porta in stato di stop mostrando, se tutto regolare, sul display la temperatura attuale all'interno della pistola e la quantita' di aria erogata.

Modifica parametri

Per settare i parametri di saldatura e' possibile accedere ai menu premendo il bottone dell'encoder.

Premendo in successione piu' volte il pulsante si passano in rassegna tutte le voci della prima colonna ovvero FastSet, ParSet, Materials Presents, Funct

Ruotando la manopola invece si scorre in orizzontale, ad esempio con due click e tre rotazioni si scorrono le seguenti voci di menu: FastSet, ParSet, KP, KI, MinT.

Arrivati sulla voce KI viene mostrati il valore attuale impostato per la temperatura minima ed e possibile variarlo ruotando la manopola.

Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.

Questa e' la sequenza di voci del menu

FastSet -> AirTemp -> AirFlow -> Exit
ParSet -> KP -> KI -> KD -> MinT -> MaxT -> Exit
Materials Presets -> Sn -> heat shrink -> LDPE -> PP/Hard PVC/HDPE -> ABS/PC/Soft PVC -> Exit
WeldCurve -> VeldCycle -> TempCurve -> Target1 -> Time1 -> Target2 -> Time2 -> Exit
Funct -> AutoOff -> Default Setting -> Exit

Versione 1

Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1

Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.

Documentazione

Controllo in fase

Controllo PID

Schema Elettrico

Controllo in tensione sulla resistenza che riscalda l'aria calda
Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.
Schema elettrico

Archivio codice

Altro



Serata Hot Air Gun - 21 marzo 2017

Hotairgun.png

Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.

Annuncio

RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.

La serata sara' dedicata al progetto di una centralina di controllo di un saldatore ad aria calda utilizzabile sia per la saldatura (e dissaldatura) di componenti smd, ma anche per altre operazioni che richiedano una fonte di aria calda a temperatura costante (lavorazione di materie plastiche, asciugatura piccole quantita' di colle e vernici ecc....).

Toccheremo vari aspetti della realizzazione di questo progetto:

  • realizzazione dell'hardware
  • teoria del controllo PID
  • interfacciamento della sonda di temperatura
  • realizzazione del contenitore stampato in 3D


Hot Air Gun

Box

HotAriGun1.jpg

HotAriGunFrame.jpg

Quando e dove

L'evento si terrà presso la biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 ; vedere questa mappa.

Costi - Registrazioni

L'evento è gratuito; è gradita la registrazione su Booking Raspibo

Per pubblicizzare l'iniziativa, potete usare la locandina che trovate qui.

Per qualunque domanda, potete iscrivervi alla mailing list agora o scrivere ad info@raspibo.org