HotAirGun

Da raspibo.

Indice

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
  • checkerror
  • startstop
  • DefVal
  • setup
  • loop

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

Istruzioni

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

Strumenti personali
Namespace

Varianti
Azioni
Navigazione
Strumenti