https://www.raspibo.org/wiki/api.php?action=feedcontributions&user=Dancast78&feedformat=atomraspibo - Contributi utente [it]2024-03-28T09:10:19ZContributi utenteMediaWiki 1.35.5https://www.raspibo.org/wiki/index.php?title=Discussione:Termostato&diff=7274Discussione:Termostato2020-04-13T16:04:38Z<p>Dancast78: /* Quale raspberry? */</p>
<hr />
<div>Quando provo ad installare phpredis e lancio phpize mi viene restituito l'errore <br />
Cannot find config.m4.<br />
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module<br />
<br />
ho provato a rimuovere e reinstallare php5-dev, ma il problema permane.<br />
qualche suggerimento?<br />
grazie<br />
<br />
----<br />
<br />
Devi lanciare phpize nella cartella in cui hai scaricato gli script da github (se guardi nell'archivio https://github.com/phpredis/phpredis si trova nella cartella principale).<br />
Per trovarla puoi lanciare il comando find e vedere dove hai scaricato gli script<br />
<br />
find / -name config.m4<br />
<br />
vai nella cartella e lancia phpize da lì.<br />
<br />
Daniele<br />
----------<br />
<br />
Ciao Daniele e grazie per la risposta.<br />
<br />
Ho seguito il tuo suggerimento e ho risolto il problema di installazione di phpredis.<br />
<br />
Solo che ora, qualsiasi file php apro, ho una blank page. Ho alzato i livelli di log dal php.ini ma a quanto pare non c'è alcun errore e anche il classico file di test con il phoinfo() restituisce errore, ma solo una bella pagina bianca.<br />
<br />
Se apro la pagina di default di ngix invece appare, ma quella è in html. Ho verificato se ci fosse qualche errore in php.ini, ma niente...<br />
non ci capisco più nulla.<br />
<br />
Smadonnandoci ulteriormente sono arrivato alla situazione in cui tutti i file php non vengono eseguiti ma vengono 'scaricati'. <br />
<br />
Quindi è un problema di configurazione di ngix col php. Ma ancora non ho risolto...<br />
<br />
----------<br />
<br />
Ho aggiornato un pò la pagina che ho scritto ormai qualche anno fa. L'avevo riaggiornata ma qualcosa è di nuovo cambiato. <br />
<br />
Sto reinstallando anche io un Raspberry ex novo dato che avevo in mente di aggiornare il progetto. <br />
<br />
Ricontrolla, un attimo anche i passaggi iniziali, ho lasciato la cartella del server web predefinita, dato che ora nginx prevede /var/www/html.<br />
<br />
Mi sono trovato nella tua stessa situazione ed ho sistemato con una modifica al file /etc/nginx/sites-enabled/default, la direttiva cha causava probemi era "include fastcgi.conf;"<br />
<br />
location ~ \.php$ {<br />
try_files $uri =404;<br />
fastcgi_split_path_info ^(.+\.php)(/.+)$;<br />
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini<br />
# With php5-cgi alone:<br />
# With php5-fpm:<br />
fastcgi_pass unix:/var/run/php5-fpm.sock;<br />
fastcgi_index index.php;<br />
include fastcgi.conf;<br />
}<br />
<br />
----------------<br />
<br />
Ora la parte web funziona anche se non completamente perchè durante l'installazione di redis restituisce un errore:<br />
Una volta lanciato il "./configure [--enable-redis-igbinary]" restituisce queste errore:<br />
<br />
checking if compiler supports -R... yes<br />
checking build system type... Invalid configuration `[--enable-redis-igbinary]': machine `[--enable-redis' not recognized<br />
configure: error: /bin/bash ./config.sub [--enable-redis-igbinary] failed<br />
<br />
----------<br />
<br />
Ciao,<br />
il comando che hai dato "./configure [--enable-redis-igbinary]" non esiste. <br />
<br />
Nel senso che le parentesi quadre si usano per indicare un parametro opzionale(in questo caso --enable-redis-igbinary). Significa che puoi dare il comando:<br />
<br />
./configure<br />
<br />
oppure <br />
<br />
./configure --enable-redis-igbinary<br />
<br />
Lancia semplicemente il primo comando.<br />
----<br />
ciao<br />
Ok ok ...faccio la mia mezzora di vergnogna! :D<br />
Però ancora non ci riesco, se apro le pagina http://raspberrypi2/html/termo/temperature.php<br />
appaiono le righe in testata...<br />
connect('127.0.0.1', 6379); $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); $t_min_notte=$redis->get('t_min_notte'); $t_max_notte=$redis->get('t_max_notte'); $t_min_giorno=$redis->get('t_min_giorno'); $t_max_giorno=$redis->get('t_max_giorno'); ?><br />
"Regolazione temperature termostato" (questo è il titolo della pagina).<br />
Quindi ancora qualcosa non va...<br />
----<br />
Potrebbe essere una configurazione di php se fai girare la paginetta con phpinfo, il parametro short_open_tag è settato a on?<br />
<br />
Per intenderci nelle pagine si può iniziare a scrivere codice con '''<?php''' (short_open_tag indifferentemente on oppure off) oppure '''<?''' (short_open_tag deve essere settato ad on), io il codice lo scrivo con la forma abbreviata quindi solo con il minore e il punto interrogativo.<br />
<br />
Vedi se il parametro è settato off dovresti provare a settarlo ad on agendo sui files php.ini.<br />
<br />
Per controprova puoi modificare il tag di apertura di una pagina e vedere se così funziona.<br />
<br />
Come ti avevo già scritto ricontrolla anche i primi passi, ho dovuto fare anche una modifica al file /boot/config.txt perchè a me non funzionava 1wire e non vedevo i sensori.<br />
<br />
PS: nella mia installazione ex novo non ho modificato nulla e mi trovo short_open_tag settato on.<br />
<br />
----<br />
<br />
Ciao Daniele<br />
era proprio quel parametro! Modificato dal php.ini (e riavviato il tutto) ha funzionato. Grazie Mille!<br />
<br />
Considera che ho installato tutto su un RSB 2 e che sono ripartito 3 volte da sistema operativo pulito (a forza di fare prove e modificare file di configurazione arrivavo al punto che non funzionava più nulla) eppure quel parametro era su Off.<br />
<br />
Ancora non sono riuscito a far funzionare tutto (non leggo la temperatura) ma probabilmente è qualcosa sul path, non c'è stato verso di installare gli script sulla root) mentre quella modifica sul config.txt è stata una delle prime cose che ho fatto perchè in effetti non mi rilevava i sensori ed avevo trovato documentazione a riguardo.<br />
<br />
Ti ringrazio ancora...e ti aggiorno sugli sviluppi! E complimenti per il lavoro.<br />
<br />
----<br />
<br />
Non se ne esce ..:)<br />
<br />
Non mi appare nulla di grafico sulle pagine (intendo grafici o temperature) e sul log di ngix è un continuo avere righe con questi errori:<br />
<br />
2015/12/31 15:22:30 [error] 520#0: *16 FastCGI sent in stderr: "<br />
PHP message: PHP Notice: Undefined index: start in /var/www/html/termo/termo.php on line 21<br />
PHP message: PHP Notice: Undefined index: end in /var/www/html/termo/termo.php on line 21<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 4 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 4 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 4 in /var/www/html/termo/termo.php on line 54<br />
2015/12/31 15:22:30 [error] 520#0: *16 FastCGI sent in stderr: "hp on line 47<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 46<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 46<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: A non well formed numeric value encounter<br />
12015/12/31 15:22:30 [error] 520#0: *16 FastCGI sent in stderr: "et: 13 in /var/www/html/termo/termo.php on line 53<br />
<br />
----<br />
<br />
'''PHP Notice: ''' non è un errore è solo una informazione quindi niente di preoccupante, per gli altri errori, penso possano dipendere dalla mancata lettura dei sensori di temperatura(se ancora non riesci a leggerli).<br />
<br />
Hai modificato gli script 04_leggi_temperatura.sh e 05_memorizza_temp.sh per metterci gli indirizzi dei tuoi sensori?<br />
<br />
Su redis vedi che i dati vendono correttamente pubblicati? Prova il comando<br />
<br />
redis monitor<br />
<br />
Io sto procedendo con la nuova versione, ma sono ancora un pò indietro con i test e con l'interfaccia. Ho anche riscritto il codice in python, dato che il tutto diventa più complesso puoò anche darsi che crei una immagine pronta per Raspberry Pi modello B, vediamo se riesco ad arrivare ad un punto soddisfacente.<br />
<br />
----<br />
Ciao Daniele e buon anno!<br />
<br />
la temperatura dei sensori è stata l'unica cosa che ha funzionato sempre :), gli script restituiscono correttamente la temperatura.<br />
<br />
Il mio dubbio infatti è proprio redis, per me non è correttamente funzionante e redis monitor mi restituisce 'comanda non trovato'. Ho provato a cercare anche tutti i file redis ma escono solo file di configurazione o cartelle.<br />
<br />
----<br />
Buon anno!<br />
<br />
..ho sbagliato a scrivere....<br />
<br />
redis-cli monitor<br />
<br />
guarda che ho anche corretto la pagina, probabilmente mancava la schedulazione della memorizzazione temperature, se lanci il monitor e lo lasci aperto in un'altra finestra lanciando lo script 05_memorizza_temp.sh dovresti vedere passare un pò di inserimenti di valori.<br />
<br />
Dopo lancia anche termostato.sh e dovresti completare il giro.<br />
<br />
----<br />
Ciao...<br />
dunque, i dati passano...passa qualcosa anche mentre accedo alle pagine web, ma i vari grafici non appaiono, questo è uno screen-shot di cosa appare:<br />
[[Media:http://imageshack.com/a/img633/3715/nks2zn.jpg]]<br />
<br />
Altra cosa, una delle ultime righe di termo.php contiene questo codice che però fa riferimento ad uno script inesistente:<br />
$comando="/root/redis_2_csv.sh " . $start . " " . $end;.<br />
<br />
----<br />
Ok, ho capito, che non sembra essere un problema di redis. <br />
<br />
Proviamo a vedere se è un problema di Flotr2 la libreria grafica, dell'archivio che hai scaricato da github puoi provare a vedere se funzionano gli esempi che dovrebbero essere pià o meno a questo indirizzo.... http://raspberrypi2/html/Flotr2/examples/index.html <br />
<br />
A questo punto se non vanno gli esempi bisogna vedere se c'è qualche altro problema con php, se gli esempi vanno allora potrebbe esserci qualcosa che non va sull'interrogazione di redis dalle pagine web.<br />
<br />
Hai provato se variando la programmazione settimanale http://raspberrypi2/html/termo/prog_settimana.php le modiche vengono salvate?<br />
<br />
Ho aggiornato la pagina del wiki aggiungendo anche redis_2_csv.sh è uno script che ho creato per il debug e che ho utilizzato nei primi tempi per vedere se l'algoritmo funzionava correttamente. Gli id dei sensori sono scritti a mano nel codice, correggili mettendoci i tuoi magari ti serve più avanti per fare un debug.<br />
<br />
----<br />
Dunque...<br />
Ho resettato il RP2 e l'ho riportato al jessie.<br />
<br />
Ho ricominciato tutto dall'inizio, reinstallando tutto. Una cosa che ho fatto è installare gli script sh sotto /root/ e non sotto altro utente come avevo fatto precedentemente (cambiando comunque path sul codice).<br />
<br />
Una cosa che manca alla documentazione ora e che prima c'era è quella della modifica del php.ini inserendo extension=redis.so.<br />
<br />
altra cosa: per far funzionare redis è necessario eseguire anche l'installazione con questo comando: sudo pecl install redis<br />
<br />
Per finire bisogna cambiare il codice su termo.php alla riga 39, infatti riporta questa linea :<br />
<br />
$temp_1 = $redis->lRange('Temp_1', $start, $end); <br />
$temp_2 = $redis->lRange('Temp_2', $start, $end); <br />
<br />
ma per farla funzionare ho dovuto mettere<br />
<br />
$temp_1 = $redis->lRange('camera', $start, $end);<br />
$temp_2 = $redis->lRange('cucina', $start, $end);<br />
<br />
Ora vedo tutto, anzi, in realtà mi manca il dato della temperatura esterna...probabilmente è sempre il nome del campo errato, ma non so qual è quello corretto.<br />
<br />
----<br />
Direi che hai fatto grossi passi avanti!<br />
<br />
Per le modifiche al wiki al momento le ho riportate io, ma puoi controllare e correggere direttamente anche tu e' il bello del wiki!, fai solo attenzione all'impaginazione, non e' difficile guarda come e' fatta la pagina e usa il bottone "visualizza anteprima". Ho anche riportato le modifiche sull'archivio github per la parte web.<br />
<br />
La libreria redis l'ho tolta io perche' me la sono trovata gia' installata sulla nuova versione del termostato, ma penso sia dovuto alla versione di Raspbian, ho messo una nota.<br />
<br />
Se vuoi navigare su redis da browser ti consiglio redis-commander (ho provato solo quello, probabilmente c'e' di meglio, ma per un uso minimale mi sembra accettabile).<br />
<br />
A guardare gli script (/root/termostato/06_display_letture.sh, non so perche' gli avessi dato questo nome...) sembra che la temperatura esterna venga salvata nella variabile temp_esterna. Pero' lo script non viene lanciato da altri script (io alla fine l'ho disabilitato), l'ho aggiunto nella schedulazione delle letture in crontab.<br />
<br />
Ho disabilitato la lettura della temperatura esterna perche' non ne ho ricavato un beneficio, se le temp sono molto basse e vuoi disegnare tutte le temp, quelle di casa risultano molto appiattite.<br />
<br />
Se forzi la scala del grafico come e' ora in un range di temperature poi la curva della temp esterna non la vedi quasi mai.<br />
<br />
Comunque se vuoi cercare la stazione piu' vicina a casa tua http://www.wunderground.com/cgi-bin/findweather/getForecast?query=bologna&MR=1 in fondo alla pagina e prendi l'id dal link.<br />
<br />
Daniele<br />
<br />
----<br />
Ciao,<br />
bè, a modificare il wiki ci avevo pensato, però senza il tuo consenso non mi sarei mai permesso ;)<br />
Riguardo il grafico con le temperature esterne, hai ragione..il grafico diventa illeggibile: ho collegato un sensore esterno e la temperatura esterna la leggo da quello.<br />
Una domanda, ma redis memorizza solo gli ultimi dati oppure ha uno storico?<br />
Perchè sarebbe interessante implementare le analisi dei grafici sui dai storici.<br />
----<br />
Ciao, <br />
redis memorizza tutto, anzi in realtà, manca la parte di svecchiamento dei dati é una di quelle cose che non ho mai sviluppato in attesa di capire se i dati mi servissero.<br />
Se vuoi li puoi leggere direttamemte da lí oppure esportarli verso un db. Comunque la pagina php con il grafico accetta in ingresso anche i parametri di start e stop, da un'occhiata al codice, magari per un'analisi iniziale pó andare bene.<br />
<br />
== Immagine raspberry termostato web==<br />
<br />
Salve, per iniziare volevo dirti che il progetto è fantastico ed è quello che serviva proprio a me per il mio impianto domotico... Ma ho dei problemi con le varie configurazioni essendo un neofita... <br />
<br />
Se qualcuno che ha seguito la guida e sia riuscito a farlo funzionare perfettamente potrebbe creare una immagine della sua micro sd, per esempio con Win32 Disk Imager, ed aiutare cosi i caproni come me facendo un upload dell'immagine su un cloud come google drive... Io con tutta la buona volontà non riesco a cavarne un ragno dal buco... O riinstallato il tutto più di 5 volte ma non c'è verso. <br />
<br />
Grazie mille per la collaborazione.<br />
----<br />
<br />
== Info termostato web ====<br />
<br />
Ciao Daniele<br />
<br />
Mi sto applicando a realizzare un termostato. Mi sono letto velocemente il tuo progetto tutto perfetto.<br />
Con la fretta una cosa mi sfugge, guardando gli screenshot non capisco se visualizzi solo o se puoi intervenire da remoto per modificare i limiti di temperatura min e max interattivamente.<br />
La tua risposta mi sarebbe utile per capire se è utile che realizzi il mio termostato o no. <br />
Grazie<br />
Giovanni<br />
<br />
- <br />
<br />
Ciao Giovanni<br />
<br />
La temperatura e' modificabile da remoto, ma questo progetto e' un po' obsoleto e ho voluto realizzarne una versione un po' piu' moderna anche perche' avevo ricevuto richieste di informazioni da persone che avevano altre necessita' oltre alle mie e far evolvere il progetto avrebbe portato vantaggi anche per il mio utilizzo come in effetti e' stato. <br />
<br />
La nuova versione non e' cosi' ben documentata e ci sono ancora alcune cosette da sistemare, ma ti invito a guardarla e magari a migliorare la documentazione la pagina dedicata e' questa [[Termostato_2.0]], tra l'altro la stagione potrebbe essere favorevole a qualche implementazione ora che il termostato non e' cosi' necessario....<br />
<br />
Essendo piu' complessa penso sia meglio che ti condivida l'immagine gia' pronta piuttosto che reinstallare da zero.<br />
<br />
== Quale raspberry? ==<br />
<br />
Ciao Daniele,<br />
E da un pò che mi gira l'idea di controllare il riscaldamento via web, raspberry pi mi sembra lo strumento più adatto.<br />
Ieri mi sono imbattuto in questo progetto ed è proprio quello che vorrei realizzare.<br />
Nonostante decenni di informatica, conosco appena raspberry, dovendolo acquistare per realizzare il progetto vorrei chiederti quale versione sia compatibile.<br />
Credi che il P1 model B+ sia sufficiente? E il Pi zero W? <br />
Grazie.<br />
Marco<br />
<br />
Ciao Marco,<br />
<br />
benvenuto, il P1 model B+ è sufficiente, è quello che sto usando io per il Pi zero W non penso ci siano problemi.<br />
<br />
Un termostato non ha tanta elaborazione alle spalle, magari è solo un po' lenta l'interfaccia web. Un po' di cpu viene usata per leggere i sensori di temperatura perciò se pensi di collegarne tanti meglio magari diradare le letture, ma si può valutare al momento.<br />
<br />
Tieni presente che ormai questo progetto ha parecchi anni e penso sia difficile che funzioni.<br />
<br />
Ho sviluppato una versione più moderna descritta qui http://www.raspibo.org/wiki/index.php?title=Termostato_2.0 forse la documentazione è un po' meno esausistiva, ma in parte è basata su qanto descritto qui, l'ho aggiornata secondo le domande che ho ricevuto in questi anni.<br />
<br />
Ti condivido l'immagine già pronta P1 model B+ via mail.<br />
<br />
Anche la versione due versione forse è già un po' datata, chissa che entro il prossimo inverno mi venga voglia di fare una ulteriore versione... vediamo.<br />
<br />
Daniele</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Discussione:Termostato&diff=7273Discussione:Termostato2020-04-13T15:41:05Z<p>Dancast78: /* Quale raspberry? */</p>
<hr />
<div>Quando provo ad installare phpredis e lancio phpize mi viene restituito l'errore <br />
Cannot find config.m4.<br />
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module<br />
<br />
ho provato a rimuovere e reinstallare php5-dev, ma il problema permane.<br />
qualche suggerimento?<br />
grazie<br />
<br />
----<br />
<br />
Devi lanciare phpize nella cartella in cui hai scaricato gli script da github (se guardi nell'archivio https://github.com/phpredis/phpredis si trova nella cartella principale).<br />
Per trovarla puoi lanciare il comando find e vedere dove hai scaricato gli script<br />
<br />
find / -name config.m4<br />
<br />
vai nella cartella e lancia phpize da lì.<br />
<br />
Daniele<br />
----------<br />
<br />
Ciao Daniele e grazie per la risposta.<br />
<br />
Ho seguito il tuo suggerimento e ho risolto il problema di installazione di phpredis.<br />
<br />
Solo che ora, qualsiasi file php apro, ho una blank page. Ho alzato i livelli di log dal php.ini ma a quanto pare non c'è alcun errore e anche il classico file di test con il phoinfo() restituisce errore, ma solo una bella pagina bianca.<br />
<br />
Se apro la pagina di default di ngix invece appare, ma quella è in html. Ho verificato se ci fosse qualche errore in php.ini, ma niente...<br />
non ci capisco più nulla.<br />
<br />
Smadonnandoci ulteriormente sono arrivato alla situazione in cui tutti i file php non vengono eseguiti ma vengono 'scaricati'. <br />
<br />
Quindi è un problema di configurazione di ngix col php. Ma ancora non ho risolto...<br />
<br />
----------<br />
<br />
Ho aggiornato un pò la pagina che ho scritto ormai qualche anno fa. L'avevo riaggiornata ma qualcosa è di nuovo cambiato. <br />
<br />
Sto reinstallando anche io un Raspberry ex novo dato che avevo in mente di aggiornare il progetto. <br />
<br />
Ricontrolla, un attimo anche i passaggi iniziali, ho lasciato la cartella del server web predefinita, dato che ora nginx prevede /var/www/html.<br />
<br />
Mi sono trovato nella tua stessa situazione ed ho sistemato con una modifica al file /etc/nginx/sites-enabled/default, la direttiva cha causava probemi era "include fastcgi.conf;"<br />
<br />
location ~ \.php$ {<br />
try_files $uri =404;<br />
fastcgi_split_path_info ^(.+\.php)(/.+)$;<br />
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini<br />
# With php5-cgi alone:<br />
# With php5-fpm:<br />
fastcgi_pass unix:/var/run/php5-fpm.sock;<br />
fastcgi_index index.php;<br />
include fastcgi.conf;<br />
}<br />
<br />
----------------<br />
<br />
Ora la parte web funziona anche se non completamente perchè durante l'installazione di redis restituisce un errore:<br />
Una volta lanciato il "./configure [--enable-redis-igbinary]" restituisce queste errore:<br />
<br />
checking if compiler supports -R... yes<br />
checking build system type... Invalid configuration `[--enable-redis-igbinary]': machine `[--enable-redis' not recognized<br />
configure: error: /bin/bash ./config.sub [--enable-redis-igbinary] failed<br />
<br />
----------<br />
<br />
Ciao,<br />
il comando che hai dato "./configure [--enable-redis-igbinary]" non esiste. <br />
<br />
Nel senso che le parentesi quadre si usano per indicare un parametro opzionale(in questo caso --enable-redis-igbinary). Significa che puoi dare il comando:<br />
<br />
./configure<br />
<br />
oppure <br />
<br />
./configure --enable-redis-igbinary<br />
<br />
Lancia semplicemente il primo comando.<br />
----<br />
ciao<br />
Ok ok ...faccio la mia mezzora di vergnogna! :D<br />
Però ancora non ci riesco, se apro le pagina http://raspberrypi2/html/termo/temperature.php<br />
appaiono le righe in testata...<br />
connect('127.0.0.1', 6379); $redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE); $t_min_notte=$redis->get('t_min_notte'); $t_max_notte=$redis->get('t_max_notte'); $t_min_giorno=$redis->get('t_min_giorno'); $t_max_giorno=$redis->get('t_max_giorno'); ?><br />
"Regolazione temperature termostato" (questo è il titolo della pagina).<br />
Quindi ancora qualcosa non va...<br />
----<br />
Potrebbe essere una configurazione di php se fai girare la paginetta con phpinfo, il parametro short_open_tag è settato a on?<br />
<br />
Per intenderci nelle pagine si può iniziare a scrivere codice con '''<?php''' (short_open_tag indifferentemente on oppure off) oppure '''<?''' (short_open_tag deve essere settato ad on), io il codice lo scrivo con la forma abbreviata quindi solo con il minore e il punto interrogativo.<br />
<br />
Vedi se il parametro è settato off dovresti provare a settarlo ad on agendo sui files php.ini.<br />
<br />
Per controprova puoi modificare il tag di apertura di una pagina e vedere se così funziona.<br />
<br />
Come ti avevo già scritto ricontrolla anche i primi passi, ho dovuto fare anche una modifica al file /boot/config.txt perchè a me non funzionava 1wire e non vedevo i sensori.<br />
<br />
PS: nella mia installazione ex novo non ho modificato nulla e mi trovo short_open_tag settato on.<br />
<br />
----<br />
<br />
Ciao Daniele<br />
era proprio quel parametro! Modificato dal php.ini (e riavviato il tutto) ha funzionato. Grazie Mille!<br />
<br />
Considera che ho installato tutto su un RSB 2 e che sono ripartito 3 volte da sistema operativo pulito (a forza di fare prove e modificare file di configurazione arrivavo al punto che non funzionava più nulla) eppure quel parametro era su Off.<br />
<br />
Ancora non sono riuscito a far funzionare tutto (non leggo la temperatura) ma probabilmente è qualcosa sul path, non c'è stato verso di installare gli script sulla root) mentre quella modifica sul config.txt è stata una delle prime cose che ho fatto perchè in effetti non mi rilevava i sensori ed avevo trovato documentazione a riguardo.<br />
<br />
Ti ringrazio ancora...e ti aggiorno sugli sviluppi! E complimenti per il lavoro.<br />
<br />
----<br />
<br />
Non se ne esce ..:)<br />
<br />
Non mi appare nulla di grafico sulle pagine (intendo grafici o temperature) e sul log di ngix è un continuo avere righe con questi errori:<br />
<br />
2015/12/31 15:22:30 [error] 520#0: *16 FastCGI sent in stderr: "<br />
PHP message: PHP Notice: Undefined index: start in /var/www/html/termo/termo.php on line 21<br />
PHP message: PHP Notice: Undefined index: end in /var/www/html/termo/termo.php on line 21<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 0 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 1 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 2 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 3 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: Undefined offset: 4 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 4 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 4 in /var/www/html/termo/termo.php on line 54<br />
2015/12/31 15:22:30 [error] 520#0: *16 FastCGI sent in stderr: "hp on line 47<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 8 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 46<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 9 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: A non well formed numeric value encountered in /var/www/html/termo/termo.php on line 65<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 46<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 47<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 53<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 54<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 55<br />
PHP message: PHP Notice: Undefined offset: 10 in /var/www/html/termo/termo.php on line 56<br />
PHP message: PHP Notice: A non well formed numeric value encounter<br />
12015/12/31 15:22:30 [error] 520#0: *16 FastCGI sent in stderr: "et: 13 in /var/www/html/termo/termo.php on line 53<br />
<br />
----<br />
<br />
'''PHP Notice: ''' non è un errore è solo una informazione quindi niente di preoccupante, per gli altri errori, penso possano dipendere dalla mancata lettura dei sensori di temperatura(se ancora non riesci a leggerli).<br />
<br />
Hai modificato gli script 04_leggi_temperatura.sh e 05_memorizza_temp.sh per metterci gli indirizzi dei tuoi sensori?<br />
<br />
Su redis vedi che i dati vendono correttamente pubblicati? Prova il comando<br />
<br />
redis monitor<br />
<br />
Io sto procedendo con la nuova versione, ma sono ancora un pò indietro con i test e con l'interfaccia. Ho anche riscritto il codice in python, dato che il tutto diventa più complesso puoò anche darsi che crei una immagine pronta per Raspberry Pi modello B, vediamo se riesco ad arrivare ad un punto soddisfacente.<br />
<br />
----<br />
Ciao Daniele e buon anno!<br />
<br />
la temperatura dei sensori è stata l'unica cosa che ha funzionato sempre :), gli script restituiscono correttamente la temperatura.<br />
<br />
Il mio dubbio infatti è proprio redis, per me non è correttamente funzionante e redis monitor mi restituisce 'comanda non trovato'. Ho provato a cercare anche tutti i file redis ma escono solo file di configurazione o cartelle.<br />
<br />
----<br />
Buon anno!<br />
<br />
..ho sbagliato a scrivere....<br />
<br />
redis-cli monitor<br />
<br />
guarda che ho anche corretto la pagina, probabilmente mancava la schedulazione della memorizzazione temperature, se lanci il monitor e lo lasci aperto in un'altra finestra lanciando lo script 05_memorizza_temp.sh dovresti vedere passare un pò di inserimenti di valori.<br />
<br />
Dopo lancia anche termostato.sh e dovresti completare il giro.<br />
<br />
----<br />
Ciao...<br />
dunque, i dati passano...passa qualcosa anche mentre accedo alle pagine web, ma i vari grafici non appaiono, questo è uno screen-shot di cosa appare:<br />
[[Media:http://imageshack.com/a/img633/3715/nks2zn.jpg]]<br />
<br />
Altra cosa, una delle ultime righe di termo.php contiene questo codice che però fa riferimento ad uno script inesistente:<br />
$comando="/root/redis_2_csv.sh " . $start . " " . $end;.<br />
<br />
----<br />
Ok, ho capito, che non sembra essere un problema di redis. <br />
<br />
Proviamo a vedere se è un problema di Flotr2 la libreria grafica, dell'archivio che hai scaricato da github puoi provare a vedere se funzionano gli esempi che dovrebbero essere pià o meno a questo indirizzo.... http://raspberrypi2/html/Flotr2/examples/index.html <br />
<br />
A questo punto se non vanno gli esempi bisogna vedere se c'è qualche altro problema con php, se gli esempi vanno allora potrebbe esserci qualcosa che non va sull'interrogazione di redis dalle pagine web.<br />
<br />
Hai provato se variando la programmazione settimanale http://raspberrypi2/html/termo/prog_settimana.php le modiche vengono salvate?<br />
<br />
Ho aggiornato la pagina del wiki aggiungendo anche redis_2_csv.sh è uno script che ho creato per il debug e che ho utilizzato nei primi tempi per vedere se l'algoritmo funzionava correttamente. Gli id dei sensori sono scritti a mano nel codice, correggili mettendoci i tuoi magari ti serve più avanti per fare un debug.<br />
<br />
----<br />
Dunque...<br />
Ho resettato il RP2 e l'ho riportato al jessie.<br />
<br />
Ho ricominciato tutto dall'inizio, reinstallando tutto. Una cosa che ho fatto è installare gli script sh sotto /root/ e non sotto altro utente come avevo fatto precedentemente (cambiando comunque path sul codice).<br />
<br />
Una cosa che manca alla documentazione ora e che prima c'era è quella della modifica del php.ini inserendo extension=redis.so.<br />
<br />
altra cosa: per far funzionare redis è necessario eseguire anche l'installazione con questo comando: sudo pecl install redis<br />
<br />
Per finire bisogna cambiare il codice su termo.php alla riga 39, infatti riporta questa linea :<br />
<br />
$temp_1 = $redis->lRange('Temp_1', $start, $end); <br />
$temp_2 = $redis->lRange('Temp_2', $start, $end); <br />
<br />
ma per farla funzionare ho dovuto mettere<br />
<br />
$temp_1 = $redis->lRange('camera', $start, $end);<br />
$temp_2 = $redis->lRange('cucina', $start, $end);<br />
<br />
Ora vedo tutto, anzi, in realtà mi manca il dato della temperatura esterna...probabilmente è sempre il nome del campo errato, ma non so qual è quello corretto.<br />
<br />
----<br />
Direi che hai fatto grossi passi avanti!<br />
<br />
Per le modifiche al wiki al momento le ho riportate io, ma puoi controllare e correggere direttamente anche tu e' il bello del wiki!, fai solo attenzione all'impaginazione, non e' difficile guarda come e' fatta la pagina e usa il bottone "visualizza anteprima". Ho anche riportato le modifiche sull'archivio github per la parte web.<br />
<br />
La libreria redis l'ho tolta io perche' me la sono trovata gia' installata sulla nuova versione del termostato, ma penso sia dovuto alla versione di Raspbian, ho messo una nota.<br />
<br />
Se vuoi navigare su redis da browser ti consiglio redis-commander (ho provato solo quello, probabilmente c'e' di meglio, ma per un uso minimale mi sembra accettabile).<br />
<br />
A guardare gli script (/root/termostato/06_display_letture.sh, non so perche' gli avessi dato questo nome...) sembra che la temperatura esterna venga salvata nella variabile temp_esterna. Pero' lo script non viene lanciato da altri script (io alla fine l'ho disabilitato), l'ho aggiunto nella schedulazione delle letture in crontab.<br />
<br />
Ho disabilitato la lettura della temperatura esterna perche' non ne ho ricavato un beneficio, se le temp sono molto basse e vuoi disegnare tutte le temp, quelle di casa risultano molto appiattite.<br />
<br />
Se forzi la scala del grafico come e' ora in un range di temperature poi la curva della temp esterna non la vedi quasi mai.<br />
<br />
Comunque se vuoi cercare la stazione piu' vicina a casa tua http://www.wunderground.com/cgi-bin/findweather/getForecast?query=bologna&MR=1 in fondo alla pagina e prendi l'id dal link.<br />
<br />
Daniele<br />
<br />
----<br />
Ciao,<br />
bè, a modificare il wiki ci avevo pensato, però senza il tuo consenso non mi sarei mai permesso ;)<br />
Riguardo il grafico con le temperature esterne, hai ragione..il grafico diventa illeggibile: ho collegato un sensore esterno e la temperatura esterna la leggo da quello.<br />
Una domanda, ma redis memorizza solo gli ultimi dati oppure ha uno storico?<br />
Perchè sarebbe interessante implementare le analisi dei grafici sui dai storici.<br />
----<br />
Ciao, <br />
redis memorizza tutto, anzi in realtà, manca la parte di svecchiamento dei dati é una di quelle cose che non ho mai sviluppato in attesa di capire se i dati mi servissero.<br />
Se vuoi li puoi leggere direttamemte da lí oppure esportarli verso un db. Comunque la pagina php con il grafico accetta in ingresso anche i parametri di start e stop, da un'occhiata al codice, magari per un'analisi iniziale pó andare bene.<br />
<br />
== Immagine raspberry termostato web==<br />
<br />
Salve, per iniziare volevo dirti che il progetto è fantastico ed è quello che serviva proprio a me per il mio impianto domotico... Ma ho dei problemi con le varie configurazioni essendo un neofita... <br />
<br />
Se qualcuno che ha seguito la guida e sia riuscito a farlo funzionare perfettamente potrebbe creare una immagine della sua micro sd, per esempio con Win32 Disk Imager, ed aiutare cosi i caproni come me facendo un upload dell'immagine su un cloud come google drive... Io con tutta la buona volontà non riesco a cavarne un ragno dal buco... O riinstallato il tutto più di 5 volte ma non c'è verso. <br />
<br />
Grazie mille per la collaborazione.<br />
----<br />
<br />
== Info termostato web ====<br />
<br />
Ciao Daniele<br />
<br />
Mi sto applicando a realizzare un termostato. Mi sono letto velocemente il tuo progetto tutto perfetto.<br />
Con la fretta una cosa mi sfugge, guardando gli screenshot non capisco se visualizzi solo o se puoi intervenire da remoto per modificare i limiti di temperatura min e max interattivamente.<br />
La tua risposta mi sarebbe utile per capire se è utile che realizzi il mio termostato o no. <br />
Grazie<br />
Giovanni<br />
<br />
- <br />
<br />
Ciao Giovanni<br />
<br />
La temperatura e' modificabile da remoto, ma questo progetto e' un po' obsoleto e ho voluto realizzarne una versione un po' piu' moderna anche perche' avevo ricevuto richieste di informazioni da persone che avevano altre necessita' oltre alle mie e far evolvere il progetto avrebbe portato vantaggi anche per il mio utilizzo come in effetti e' stato. <br />
<br />
La nuova versione non e' cosi' ben documentata e ci sono ancora alcune cosette da sistemare, ma ti invito a guardarla e magari a migliorare la documentazione la pagina dedicata e' questa [[Termostato_2.0]], tra l'altro la stagione potrebbe essere favorevole a qualche implementazione ora che il termostato non e' cosi' necessario....<br />
<br />
Essendo piu' complessa penso sia meglio che ti condivida l'immagine gia' pronta piuttosto che reinstallare da zero.<br />
<br />
== Quale raspberry? ==<br />
<br />
Ciao Daniele,<br />
E da un pò che mi gira l'idea di controllare il riscaldamento via web, raspberry pi mi sembra lo strumento più adatto.<br />
Ieri mi sono imbattuto in questo progetto ed è proprio quello che vorrei realizzare.<br />
Nonostante decenni di informatica, conosco appena raspberry, dovendolo acquistare per realizzare il progetto vorrei chiederti quale versione sia compatibile.<br />
Credi che il P1 model B+ sia sufficiente? E il Pi zero W? <br />
Grazie.<br />
Marco<br />
<br />
Ciao Marco,<br />
benvenuto, il P1 model B+ è sufficiente, è quello che sto usando io per il Pi zero W non penso ci siano problemi.<br />
Un termostato non ha tanta elaborazione alle spalle, magari è solo un po' lenta l'interfaccia web. Un po' di cpu viene usata per leggere i sensori di temperatura perciò se pensi di collegarne tanti meglio magari diradare le letture, ma si può valutare al momento.<br />
Tieni presente che ormai questo progetto ha parecchi anni e penso sia difficile che funzioni.<br />
Ho sviluppato una versione più moderna descritta qui http://www.raspibo.org/wiki/index.php?title=Termostato_2.0 forse la documentazione è un po' meno esausistiva, ma in parte è basata su qanto descritto qui, l'ho aggiornata secondo le domande che ho ricevuto in questi anni.<br />
Ti condivido l'immagine già pronta P1 model B+ via mail.<br />
<br />
Anche la versione due versione forse è già un po' datata, chissa che entro il prossimo inverno mi venga voglia di fare una ulteriore versione... vediamo.<br />
<br />
Daniele</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7245Prossimi appuntamenti2020-02-24T07:57:07Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
'''Chiusura temporanea del Centro Sociale Croce di Casalecchio di Reno.'''<br />
<br />
Come comunicato dalla direzione vi segnaliamo che da Domenica 23.02.2020 fino alle ore 24,00 di Domenica 01.03.2020, il Centro Sociale Croce di Casalecchio di Reno sarà chiuso e saranno annullati a data da destinarsi tutti gli eventi programmati.<br />
<br />
Il prossimo incontro previsto dal nostro calendario: 10 marzo.<br />
<br />
A presto</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7244Prossimi appuntamenti2020-02-24T07:56:43Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
'''Chiusura temporanea del Centro Sociale Croce di Casalecchio di Reno.'''<br />
<br />
Come comunicato dalla direzione vi segnaliamo che da Domenica 23.02.2020 fino alle ore 24,00 di Domenica 01.03.2020, il Centro Sociale Croce di Casalecchio di Reno sarà chiuso e saranno annullati a data da destinarsi tutti gli eventi programmati.<br />
<br />
Il prossimo incontro previsto dal nostro calendario: 10 marzo.<br />
<br />
A presto<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7243Prossimi appuntamenti2020-02-24T07:56:15Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Chiusura temporanea del Centro Sociale Croce di Casalecchio di Reno.<br />
<br />
Come comunicato dalla direzione vi segnaliamo che da Domenica 23.02.2020 fino alle ore 24,00 di Domenica 01.03.2020, il Centro Sociale Croce di Casalecchio di Reno sarà chiuso e saranno annullati a data da destinarsi tutti gli eventi programmati.<br />
<br />
Il prossimo incontro previsto dal nostro calendario: 10 marzo.<br />
<br />
A presto<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7234Prossimi appuntamenti2020-01-28T16:30:47Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
I prossimi incontri saranno:<br />
<br />
*28 gennaio collaboriamo lavorando sul progetto MicroFocus un sistema di messa a fuoco per microscopi usb <br />
<br />
Come sempre gli incontri iniziano dalle ore 21 <br />
<br />
<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7232Prossimi appuntamenti2020-01-12T15:12:12Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
I prossimi incontri saranno:<br />
<br />
*14 gennaio Pacchettizzazione Debian<br />
*28 gennaio<br />
<br />
Come sempre gli incontri iniziano dalle ore 21 <br />
<br />
<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7231Prossimi appuntamenti2019-12-16T19:42:05Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
I prossimi incontri saranno:<br />
<br />
*17 dicembre Bash poetry slam<br />
<br />
Attenzione il 24 dicembre (quarto martedì del mese) non ci vedremo, faremo una pausa per le feste.<br />
<br />
Come sempre gli incontri iniziano dalle ore 21 <br />
<br />
<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7230Introduzione a Node-Red2019-12-10T08:34:52Z<p>Dancast78: /* Avvertenze */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
10 dicembre 2019 dalle 21.<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno).<br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma =<br />
*Utilizzo di progetti<br />
*Autenticazione<br />
*Interfacciamento con hardware<br />
*Nascita del software<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Video della serata https://archive.org/details/introduzione_a_nodered<br />
*Slides e materiale presentato https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7229Introduzione a Node-Red2019-12-10T08:34:31Z<p>Dancast78: /* Programma di massima */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
10 dicembre 2019 dalle 21.<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno).<br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma =<br />
*Utilizzo di progetti<br />
*Autenticazione<br />
*Interfacciamento con hardware<br />
*Nascita del software<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Video della serata https://archive.org/details/introduzione_a_nodered<br />
*Slides e materiale presentato https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7228Introduzione a Node-Red2019-12-10T08:33:00Z<p>Dancast78: /* Quando e dove */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
10 dicembre 2019 dalle 21.<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno).<br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Video della serata https://archive.org/details/introduzione_a_nodered<br />
*Slides e materiale presentato https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7227Prossimi appuntamenti2019-12-10T08:31:41Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
I prossimi incontri saranno:<br />
<br />
*10 dicembre Node-red<br />
*17 dicembre Bash poetry slam<br />
<br />
Come sempre dalle ore21 <br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7226Prossimi appuntamenti2019-12-10T08:31:04Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
I prossimi incontri saranno:<br />
<br />
*10 dicembre Node-red<br />
*17 dicembre Bash poetry slam<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7218Prossimi appuntamenti2019-11-26T07:34:59Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
Il prossimo incontro sarà '''martedi' 26 novembre 2019 alle 21'''. Serata a tema '''"Conference setup"''' per l'evento "[https://www.festivalculturatecnica.it/portfolio-items/sabato-7-dicembre-2019/ DAL BIT ALL’INTELLIGENZA ARTIFICIALE, DIMMI COME FUNZIONA…]" nell'ambito del festival della cultura tecnica. <br />
<br />
Prossimi appuntamenti:<br />
<br />
*10 dicembre Node-red<br />
*17 dicembre Bash poetry slam<br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7217Prossimi appuntamenti2019-11-26T07:07:05Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
Il prossimo incontro sarà '''martedi' 26 novembre 2019 alle 21'''. Serata a tema '''"Conference setup"''' per l'evento "[https://www.festivalculturatecnica.it/portfolio-items/sabato-7-dicembre-2019/ DAL BIT ALL’INTELLIGENZA ARTIFICIALE, DIMMI COME FUNZIONA…]" nell'ambito del festival della cultura tecnica. <br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7208Prossimi appuntamenti2019-11-12T11:36:50Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
Il prossimo incontro sarà '''martedi' 12 novembre 2019 alle 21'''. Serata a tema '''"Saldatura a stagno THT ed SMD"'''. <br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7203Prossimi appuntamenti2019-10-22T06:06:08Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
Il prossimo incontro sarà '''martedi' 22 ottobre 2019 alle 21'''. Serata a tema '''"Scrivi un programma e diventa un circuito elettronico.... FPGA a Raspibo"'''. <br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Gruppo_Meteo/StimaPCB&diff=7201Gruppo Meteo/StimaPCB2019-10-16T10:31:07Z<p>Dancast78: </p>
<hr />
<div>= STIMA PCB =<br />
<br />
Per il momento è possibile ottenere i circuiti stampati da OSH Park:<br />
<br />
* STIMA bluetooth https://oshpark.com/shared_projects/cKkpi2IN<br />
* STIMA I2C https://oshpark.com/shared_projects/DMztH0Vu<br />
* STIMA breakout sensor board: https://oshpark.com/shared_projects/6XorC9H2<br />
* STIMA I2C HUB https://oshpark.com/shared_projects/e5HS7gP1<br />
* Stima AirQuality Connector board https://oshpark.com/shared_projects/owmle8Pe (Ancora da testare)<br />
* MICS-4514 Breakout board https://oshpark.com/shared_projects/ei8rMhO6 (Ancora da testare)</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7200Introduzione a Node-Red2019-10-12T16:13:40Z<p>Dancast78: /* Link */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Video della serata https://archive.org/details/introduzione_a_nodered<br />
*Slides e materiale presentato https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7199Introduzione a Node-Red2019-10-12T16:06:00Z<p>Dancast78: /* Link */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Video della serata https://archive.org/details/introduzione_a_nodered<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7198Introduzione a Node-Red2019-10-12T16:05:09Z<p>Dancast78: /* Diapositive */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
https://github.com/raspibo/Introduzione_a_Node-RED<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Trasmissione in streaming (sperimentale) [http://bisognodipace.org/raspibo/ Avvia lo streaming]<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7197Introduzione a Node-Red2019-10-07T20:24:42Z<p>Dancast78: /* Link */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
* In preparazione<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Trasmissione in streaming (sperimentale) [http://bisognodipace.org/raspibo/ Avvia lo streaming]<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7196Introduzione a Node-Red2019-10-07T20:24:10Z<p>Dancast78: /* Link */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
* In preparazione<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
*Sito ufficiale di [https://nodered.org/ Node-Red]<br />
*Trasmissione in streaming (sperimentale) [http://bisognodipace.org/raspibo/]<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7193Prossimi appuntamenti2019-10-03T10:58:04Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
Il prossimo incontro sarà '''martedi' 8 ottobre 2019 alle 21'''. Serata a tema [[Introduzione a Node-Red]] in anteprima per gli amici di Raspibo. <br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7192Introduzione a Node-Red2019-10-03T10:54:18Z<p>Dancast78: /* Avvertenze */</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
* In preparazione<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che ci siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
Sito ufficiale di [https://nodered.org/ Node-Red]<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Introduzione_a_Node-Red&diff=7191Introduzione a Node-Red2019-10-03T10:53:32Z<p>Dancast78: Creata pagina con 'category:serate a tema <div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000...'</p>
<hr />
<div>[[category:serate a tema]]<br />
<div style="float:right;border:1px solid black;padding:10px;margin:10px background:#F5F6CE; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" "><br />
{| width="400px" style="text-align:center"<br />
! [[File:RASPIBOfinale.png|200px]]<br />
|-<br />
| <hr><br />
|-<br />
| <span style="font-size:150%;font-weight:bold">Introduzione a Node-Red</span><br />
|-<br />
| Facciamo una prima carrellata di informazioni su Node-Red [https://nodered.org/]<br />
|}<br />
</div><br />
<br />
= Diapositive =<br />
* In preparazione<br />
<br />
= Node-Red =<br />
Node-Red è uno strumento di programmazione per cablare insieme dispositivi hardware, API e servizi online in modi nuovi e interessanti.<br />
<br />
Node-Red si programma con un editor basato su browser che rende semplice la programmazione anche a chi non ha dimestichezza con la scrittura di software.<br />
<br />
= Quando e dove =<br />
8 ottobre 2019 dalle 21 circa.<br />
<br />
[[makerspace]] di RaspiBO (centro sociale CROCE Via Canonica 18 a Casalecchio di Reno). <br />
<br />
= Costi - Registrazioni =<br />
L'evento è gratuito e aperto al pubblico, se vi va potete lasciare una piccola donazione, ma non sentitevi obbligati. <br />
<br />
Non sono necessarie iscrizioni o prenotazioni.<br />
<br />
= Programma di massima =<br />
Vedremo<br />
*Nascita del progetto<br />
*alcuni concetti di base di node-red<br />
*una serie esperimenti da migliorare, completare, ampliare<br />
<br />
= Avvertenze =<br />
Attenzione questa e' la prima serata della nuova stagione di serate a tema. <br />
<br />
Molti aspetti sono ancora in fase di rodaggio, e' possibile che siano imprevisti, la serata verra' replicata a dicembre.<br />
<br />
= Link =<br />
Sito ufficiale di [https://nodered.org/ Node-Red]<br />
<br />
= Info =<br />
Per richieste e informazioni potete rivolgervi alla lista [http://liste.raspibo.org/wws/subscribe/agora agora] di raspibo.</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Prossimi_appuntamenti&diff=7190Prossimi appuntamenti2019-10-02T06:47:43Z<p>Dancast78: </p>
<hr />
<div><!-- === '''12 giugno 2018, ore 20:30''' === --><br />
<br />
<!-- Io la data per gli appuntamenti fissi la eliminerei, tanto e` scritto due righe piu` giu`, altrimenti si deve sempre riscrivere, --~~~~ --><br />
<!-- Anche se è sempre da riscrivere penso sia un segno visibile. Magari scriviamo uno script che l'aggiorni.... (renzo) --><br />
<br />
Gli appuntamenti del non-corso continuano...<br />
<br />
Il prossimo incontro sarà '''martedi' 8 ottobre 2019 alle 21'''. Serata a tema node-red in anteprima per gli amici di Raspibo. <br />
<br />
Il Makerspace &egrave; comunque a disposizione dei gruppi che vogliono incontrarsi per portare avanti progetti (usate il sistema di booking).</div>Dancast78https://www.raspibo.org/wiki/index.php?title=Discussione:HotAirGun&diff=7137Discussione:HotAirGun2019-08-07T11:26:30Z<p>Dancast78: Creata pagina con 'test'</p>
<hr />
<div>test</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7136HotAirGun2019-07-31T11:05:01Z<p>Dancast78: /* Codice */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== Funzioni specifiche di HAG ===<br />
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.<br />
<br />
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.<br />
Generalmente per questo si ricorre ad una prima fase di preriscaldamento e poi si passa per pochi secondi alla temperatura di saldatura.<br />
<br />
Altre volte si trova proprio un grafico come quello mostrato di seguito.<br />
<br />
[[File:HAG weld curve t.PNG|400px]]<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
'''Accensione'''<br />
<br />
Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.<br />
<br />
Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.<br />
<br />
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.<br />
<br />
'''Modifica parametri'''<br />
<br />
Per settare i parametri di saldatura e' possibile accedere ai menu premendo il bottone dell'encoder.<br />
<br />
Premendo in successione piu' volte il pulsante si passano in rassegna tutte le voci della prima colonna ovvero FastSet, ParSet, Materials Presents, Funct<br />
<br />
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.<br />
<br />
Arrivati sulla voce KI viene mostrati il valore attuale impostato per la temperatura minima ed e possibile variarlo ruotando la manopola.<br />
<br />
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.<br />
<br />
Questa e' la sequenza di voci del menu<br />
<br />
<source><br />
FastSet -> AirTemp -> AirFlow -> Exit<br />
ParSet -> KP -> KI -> KD -> MinT -> MaxT -> Exit<br />
Materials Presets -> Sn -> heat shrink -> LDPE -> PP/Hard PVC/HDPE -> ABS/PC/Soft PVC -> Exit<br />
WeldCurve -> VeldCycle -> TempCurve -> Target1 -> Time1 -> Target2 -> Time2 -> Exit<br />
Funct -> AutoOff -> Default Setting -> Exit<br />
</source><br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=File:HAG_weld_curve_t.PNG&diff=7135File:HAG weld curve t.PNG2019-07-31T10:57:43Z<p>Dancast78: </p>
<hr />
<div></div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7133HotAirGun2019-07-29T11:05:35Z<p>Dancast78: /* Istruzioni */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
'''Accensione'''<br />
<br />
Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.<br />
<br />
Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.<br />
<br />
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.<br />
<br />
'''Modifica parametri'''<br />
<br />
Per settare i parametri di saldatura e' possibile accedere ai menu premendo il bottone dell'encoder.<br />
<br />
Premendo in successione piu' volte il pulsante si passano in rassegna tutte le voci della prima colonna ovvero FastSet, ParSet, Materials Presents, Funct<br />
<br />
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.<br />
<br />
Arrivati sulla voce KI viene mostrati il valore attuale impostato per la temperatura minima ed e possibile variarlo ruotando la manopola.<br />
<br />
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.<br />
<br />
Questa e' la sequenza di voci del menu<br />
<br />
<source><br />
FastSet -> AirTemp -> AirFlow -> Exit<br />
ParSet -> KP -> KI -> KD -> MinT -> MaxT -> Exit<br />
Materials Presets -> Sn -> heat shrink -> LDPE -> PP/Hard PVC/HDPE -> ABS/PC/Soft PVC -> Exit<br />
WeldCurve -> VeldCycle -> TempCurve -> Target1 -> Time1 -> Target2 -> Time2 -> Exit<br />
Funct -> AutoOff -> Default Setting -> Exit<br />
</source><br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7132HotAirGun2019-07-29T11:05:06Z<p>Dancast78: /* Istruzioni */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
'''Accensione'''<br />
<br />
Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.<br />
<br />
Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.<br />
<br />
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.<br />
<br />
'''Modifica parametri'''<br />
<br />
Per settare i parametri di saldatura e' possibile accedere ai menu premendo il bottone dell'encoder.<br />
<br />
Premendo in successione piu' volte il pulsante si passano in rassegna tutte le voci della prima colonna ovvero FastSet, ParSet, Materials Presents, Funct<br />
<br />
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.<br />
<br />
Arrivati sulla voce KI viene mostrati il valore attuale impostato per la temperatura minima ed e possibile variarlo ruotando la manopola.<br />
<br />
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.<br />
<br />
<source><br />
FastSet -> AirTemp -> AirFlow -> Exit<br />
ParSet -> KP -> KI -> KD -> MinT -> MaxT -> Exit<br />
Materials Presets -> Sn -> heat shrink -> LDPE -> PP/Hard PVC/HDPE -> ABS/PC/Soft PVC -> Exit<br />
WeldCurve -> VeldCycle -> TempCurve -> Target1 -> Time1 -> Target2 -> Time2 -> Exit<br />
Funct -> AutoOff -> Default Setting -> Exit<br />
</source><br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7131HotAirGun2019-07-29T11:04:47Z<p>Dancast78: /* Istruzioni */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
'''Accensione'''<br />
<br />
Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.<br />
<br />
Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.<br />
<br />
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.<br />
<br />
'''Modifica parametri'''<br />
<br />
Per settare i parametri di saldatura e' possibile accedere ai menu premendo il bottone dell'encoder.<br />
<br />
Premendo in successione piu' volte il pulsante si passano in rassegna tutte le voci della prima colonna ovvero FastSet, ParSet, Materials Presents, Funct<br />
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.<br />
Arrivati sulla voce KI viene mostrati il valore attuale impostato per la temperatura minima ed e possibile variarlo ruotando la manopola.<br />
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.<br />
<br />
<source><br />
FastSet -> AirTemp -> AirFlow -> Exit<br />
ParSet -> KP -> KI -> KD -> MinT -> MaxT -> Exit<br />
Materials Presets -> Sn -> heat shrink -> LDPE -> PP/Hard PVC/HDPE -> ABS/PC/Soft PVC -> Exit<br />
WeldCurve -> VeldCycle -> TempCurve -> Target1 -> Time1 -> Target2 -> Time2 -> Exit<br />
Funct -> AutoOff -> Default Setting -> Exit<br />
</source><br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7130HotAirGun2019-07-29T11:03:58Z<p>Dancast78: /* Istruzioni */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
'''Accensione'''<br />
<br />
Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.<br />
<br />
Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.<br />
<br />
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.<br />
<br />
'''Modifica parametri'''<br />
<br />
Per settare i parametri di saldatura e' possibile accedere ai menu premendo il bottone dell'encoder.<br />
<br />
Premendo in successione piu' volte il pulsante si passano in rassegna tutte le voci della prima colonna ovvero FastSet, ParSet, Materials Presents, Funct<br />
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.<br />
Arrivati sulla voce KI viene mostrati il valore attuale impostato per la temperatura minima ed e possibile variarlo ruotando la manopola.<br />
Premendo il pulsante sull'encoder viene chiesta conferma per l'impostazione del parametro.<br />
<br />
FastSet -> AirTemp -> AirFlow -> Exit<br />
ParSet -> KP -> KI -> KD -> MinT -> MaxT -> Exit<br />
Materials Presets -> Sn -> heat shrink -> LDPE -> PP/Hard PVC/HDPE -> ABS/PC/Soft PVC -> Exit<br />
WeldCurve -> VeldCycle -> TempCurve -> Target1 -> Time1 -> Target2 -> Time2 -> Exit<br />
Funct -> AutoOff -> Default Setting -> Exit<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7129HotAirGun2019-07-29T10:52:02Z<p>Dancast78: /* Istruzioni */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
'''Accensione'''<br />
<br />
Una volta collegata la spina ad una presa con cavo di terra premere l'interruttore di accensione.<br />
<br />
Per qualche istante sul display comparira' una scritta che indica il nome del progetto e la data ora di compilazione del software.<br />
<br />
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.<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7128HotAirGun2019-07-29T10:48:11Z<p>Dancast78: /* Assemblaggio */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
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.<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7127HotAirGun2019-07-29T10:47:35Z<p>Dancast78: /* Assemblaggio */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
L'assemblaggio non e' particolarmente complesso. <br />
<br />
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.<br />
<br />
Per le pareti abbiamo scelto una plastica trasparente per rendere vsibile il pcb e rendere anche per simboleggiare lo spirito open del progetto.<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7126HotAirGun2019-07-29T10:43:56Z<p>Dancast78: /* Codice */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
Infine le due funzioni standard del codice arduino:<br />
*setup predispone tutti i parametri per la stazione ad aria calda<br />
*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..)<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7125HotAirGun2019-07-29T10:38:25Z<p>Dancast78: /* Codice */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom verifica lo stato della eeprom, se vuota (arduino nuovo) viene invocata la funzione DefVal<br />
*DefVal si occupa di salvare su eeprom i valori predefinit dei principali parametri<br />
*checkerror verifica alcune variabili per notificare errori all'utilizzatore tramite seriale ed lcd <br />
*startstop se il tasto di start/stop e' stato premuto setta le variabili per gestire il ciclo di riscaldamento e saldatura<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7100HotAirGun2019-07-04T11:13:16Z<p>Dancast78: /* Codice */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
Alcune funzioni implementate:<br />
*HandleMCPInterrupt gestisce gli eventi generati dalla scheda I2c Controller per l'interfacciamento con l'utente (rotazione e click dell'encoder, pressione pulsanti)<br />
*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<br />
*ISR gestione del TRIAC all'overflow del TIMER1<br />
*Debug funzioni di debug su led del controller e seriale<br />
*ModParMenu modifica i parametri di lavoro, limitando la scelta entro un range di valori impostati nella sezione configurazione<br />
*SaveParMenu salva su eeprom i valori modifica alla funzione precedente<br />
*SetMac carica parametri di temperatura e airflow per alcuni tipi di materiale<br />
*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<br />
*PID implementa l'[https://it.wikipedia.org/wiki/Controllo_PID algoritmo PID]<br />
*TC_Read legge i registri dell'integrato di gestione della termocoppia<br />
*TempC gestisce i valori letti dalla funzione precedente<br />
*checkemptyeeprom<br />
*checkerror<br />
*startstop<br />
*DefVal<br />
*setup<br />
*loop<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7099HotAirGun2019-07-04T10:47:21Z<p>Dancast78: /* Codice */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
Il software di questo progetto ha alcune caratteristiche che devono essere garantite:<br />
*gestione del timing piu' precisa possbile (gestione degli eventi tramite interrupt e gestione delle priorita' degli eventi)<br />
*affidabilita', un pilotaggio errato del TRIAC potrebbe causare un calore prodotto dalla resistenza che ne causerebbe il danneggiamento<br />
*avendo scelto un microcontrollore di costi contenuti il codice deve essere otimizzato per rientrare nelle dimensioni di memoria disponibile<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7098HotAirGun2019-07-03T11:19:11Z<p>Dancast78: /* Driving del triac */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== Gestione termocoppia ===<br />
La pistola ad aria calda ha al suo interno come sensore di temperatura una termocoppia di tipo K.<br />
<br />
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.<br />
<br />
Per la lettura dall'integrato sul codice sono presenti due funzioni:<br />
*TempC si occupa della lettura dei registri dell'integrato<br />
*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).<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7097HotAirGun2019-07-03T11:02:52Z<p>Dancast78: /* Driving del triac */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
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.<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7096HotAirGun2019-07-02T11:06:51Z<p>Dancast78: /* Zero crossing detection */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== Driving del triac ===<br />
Il microcontrollore periodicamente ricalcola la potenza necessaria da applicare sulla resistenza tramite l'algoritmo PID.<br />
<br />
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.<br />
<br />
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:<br />
*il software deve calcolare solamente il tempo da attendere prima di attivarlo<br />
*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)<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7095HotAirGun2019-07-01T11:04:02Z<p>Dancast78: /* AC control + Microcontrollore */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== Zero crossing detection ===<br />
Per rilevare il passaggio per lo zero della tensione di rete viene utilizzato un ponte di diodi direttamente connesso alla tensione di rete.<br />
<br />
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.<br />
<br />
L'uscita del fotoaccoppiatore e' connessa ad un pin del microcontrollore per il pilotaggio dell'interrupt.<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7094HotAirGun2019-06-26T10:52:29Z<p>Dancast78: /* 3D */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
Rispetto alla prima versione di HotAirGun la forma del case e' cambiata a causa del diverso formato del controller I2c.<br />
<br />
Inoltre il case e' stato ridisegnato utilizzando Free Cad.<br />
<br />
A parte il frontale che ha un layout orientato a questo progetto, il case e' riutilizzabile come contenitore per altri progetti.<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7093HotAirGun2019-06-26T10:42:38Z<p>Dancast78: /* PCB */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== PCB ===<br />
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.<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7092HotAirGun2019-06-25T11:08:37Z<p>Dancast78: /* AC control + Microcontrollore */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
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.<br />
<br />
Sono quindi da gestire alcune funzionalita' indispensbili (Alta priorita'):<br />
*Verifica della temperatura all'interno del generatore di aria calda tramite termocoppia<br />
*Calcolo della differenza tra temperatura attuale e quella desiderata<br />
*Elaborazione dell'algoritmo PID<br />
*Rilevamento del passaggio della tensione alternata per lo zero.<br />
*Attivazione di un interrupt sul microcontrollore e se necessario attivazione del TRIAC<br />
*Attesa del tempo calcolato dal PID<br />
*Disattivazione del TRIAC<br />
<br />
Sono quindi da gestire alcune funzionalita' di interfaccia (Bassa priorita'):<br />
*Interfacciamento con l'utente (gestione display, encoder, pulsanti)<br />
<br />
Sono quindi da gestire alcune funzionalita' aggiuntive (Bassa priorita'):<br />
*Debug su seriale<br />
<br />
=== PCB ===<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7091HotAirGun2019-06-25T10:50:42Z<p>Dancast78: /* I2c controller */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
<br />
Qualche altra info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
<br />
=== PCB ===<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78https://www.raspibo.org/wiki/index.php?title=HotAirGun&diff=7090HotAirGun2019-06-24T16:30:06Z<p>Dancast78: /* Versione 2 */</p>
<hr />
<div>[[category:serate a tema]]<br />
[[Category:Progetti]]<br />
= Ovvero come rendere un progetto hardware e software completamente open =<br />
Questo progetto nasce diverso tempo fa come esperimento personale di Msystem.<br />
<br />
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.<br />
<br />
Il progetto e' stato realizzato, pubblicato su github e presentato durante una serata(i dettagli in fondo alla pagina).<br />
<br />
La prima versione pero' aveva alcune caratteristiche:<br />
#schemi realizzati con software proprietario<br />
#controllore PIC che all'interno del nostro gruppo e' poco diffuso<br />
<br />
Per far evolvere il progetto Msystem ha pensato di riprogettare il tutto in compagnia e utilizzare unicamente software open source.<br />
<br />
= Versione 2 =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px;" <br />
|colspan="2" style="text-align: center; width:33%" |[[File:455024573 479078.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:455705647 436435.jpg|300px]]<br />
|colspan="2" style="text-align: center; width:33%" |[[File:447808582 167273.jpg|300px]]<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp;<br />
|-<br />
|colspan="6" style="text-align: center;" | Hot air gun V2<br />
|-<br />
|colspan="6" style="text-align: center;" | &nbsp; <br />
|-<br />
|colspan="3" style="text-align: center; width:50%" |[[File:455926349 327987.jpg|450px]]<br />
|colspan="3" style="text-align: center; width:50%" |[[File:447816881 166701.jpg|450px]]<br />
|}<br />
<br />
<br />
Tutto il progetto e' disponibile a questo indirizzo https://github.com/raspibo/HotAirGun.<br />
<br />
Per il progetto abbiamo utilizzato:<br />
#kicad per gli schemi elettrici e pcb<br />
#ide arduino per il microconroller<br />
#freecad per il disegno 3D<br />
<br />
I componenti utilizzati sono standard per permettere la replica del progetto anche tra qualche tempo.<br />
<br />
== Schema elettrico ==<br />
*https://github.com/raspibo/HotAirGun/blob/master/kicad/PLOT/HotAirGun.pdf<br />
<br />
Lo schema in kicad e' stato diviso su piu' fogli per rendere piu' facile la comprensione dei blocchi.<br />
<br />
Sono state prodotte due piastre pcb:<br />
*modulo i2c controller<br />
*modulo potenza e microcontrollore<br />
<br />
=== I2c controller ===<br />
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.<br />
<br />
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.<br />
Qualche altr info sull'integrato e' disponibile su questa pagina [[GPIO_aggiuntivi_MCP23x17]].<br />
<br />
MCP23017 offre 2 port a 8 bit che abbiamo usato per interfacciare il display LCD oltre a un encoder con pulsante, led e buzzer.<br />
<br />
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.<br />
<br />
Questa scheda e' configurabile a piacere con poche variazioni, noi abbiamo scelto un interfacciamento con 3 pulsanti, 1 led ed un buzzer.<br />
<br />
=== AC control + Microcontrollore ===<br />
<br />
=== PCB ===<br />
<br />
=== Codice ===<br />
<br />
=== 3D ===<br />
<br />
=== Assemblaggio ===<br />
<br />
=== Istruzioni ===<br />
<br />
= Versione 1 =<br />
Nell'archvio git questa versione si trova sul branch V1 https://github.com/raspibo/HotAirGun/tree/V1<br />
<br />
Alcune info sulla prima versione sono state descritte durante la serata di presentazione qui sotto.<br />
<br />
= Documentazione =<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:33%" |<br />
==Controllo in fase==<br />
|style="text-align: center; width:33%" |<br />
==Controllo PID==<br />
|style="text-align: center; width:33%" |<br />
==Schema Elettrico==<br />
|-<br />
|style="text-align: center; width:33%" |<br />
[[File:CtrFase.jpg|300px|thumb|center|Controllo in tensione sulla resistenza che riscalda l'aria calda]]<br />
|style="text-align: center; width:33%" |<br />
[[File:PID.jpg|300px|thumb|center|Implementazione del controllo PID su controllori a basse prestazioni, soluzioni adottate per limitare l'uso della RAM.]]<br />
|style="text-align: center; width:33%" |<br />
[[File:SCH.jpg|300px|thumb|center|Schema elettrico]]<br />
|}<br />
<br />
== Archivio codice ==<br />
<br />
* [https://www.thingiverse.com/thing:2151432 Thingiverse]<br />
* [https://github.com/raspibo/HotAriGun Github]<br />
<br />
== Altro ==<br />
* [https://www.thingiverse.com/thing:825907 Supporto per terza mano]<br />
* [http://www.g7smy.co.uk/2014/08/rotary-encoders-on-the-i2c-bus/ Rotary Encoders on the i2c bus]<br />
* [https://cds.linear.com/docs/en/datasheet/2485fd.pdf 4-Bit ∆Σ ADC with Easy Drive Input Current Cancellation and I2C Interface] per gestire termocoppie K in I2C <br />
* [http://it.farnell.com/maxim-integrated-products/max6675isa/ic-conv-da-tematura-a-gitale-spi/dp/2518704?ost=MAX6675&selectedCategoryId=&categoryNameResp=Tutti&searchView=table&iscrfnonsku=false MAX6675ISA+ Sensore di Temperatura IC, Tensione, ± 3°C, 0 °C, +1024 °C, SOIC, 8 Pin]<br />
<br />
<br />
<br />
<br />
= Serata Hot Air Gun - 21 marzo 2017 =<br />
[[File:Hotairgun.png||400px|thumb|right|link=HotAirGun]]<br />
Il progetto di reingegnerizzazione del progetto è nato da una serata di seguito l'annuncio.<br />
<br />
== Annuncio ==<br />
RaspiBO vi propone una serata dedicata al making homemade in ambito elettronico.<br />
<br />
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....).<br />
<br />
Toccheremo vari aspetti della realizzazione di questo progetto:<br />
* realizzazione dell'hardware <br />
* teoria del controllo PID <br />
* interfacciamento della sonda di temperatura <br />
* realizzazione del contenitore stampato in 3D<br />
<br />
<br />
{| style="background:#FBFBFB; width:100%; border:1px solid #a7d7f9; vertical-align:top; color:#000; padding: 5px 10px 10px 8px; -moz-border-radius: 10px; -webkit-border-radius: 10px; border-radius:10px; align: center;" <br />
|style="text-align: center; width:50%" |<br />
==Hot Air Gun==<br />
|style="text-align: center; width:50%" |<br />
==Box==<br />
|-<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGun1.jpg|300px]]<br />
|style="text-align: center; width:50%" |<br />
[[File:HotAriGunFrame.jpg|300px]]<br />
|}<br />
<br />
== Quando e dove ==<br />
L'evento si terrà presso la '''biblioteca Meridiana in via Gandusio 6 (c/o Circolo Arci Guernelli) a Bologna dalle ore 20:30 '''; vedere [http://osm.org/go/xdUSTx~8Y?m=&node=4512718874 questa mappa].<br />
<br />
== Costi - Registrazioni ==<br />
L'evento è gratuito; è gradita la '''registrazione su''' [https://ibt2.ismito.it/#/day/2017-03-21 Booking Raspibo]<br />
<br />
Per pubblicizzare l'iniziativa, potete usare la locandina che [http://www.raspibo.org/wiki/images/1/19/Hotairgun.png trovate qui].<br />
<br />
Per qualunque domanda, potete iscrivervi alla [http://liste.raspibo.org/wws/subscribe/agora mailing list agora] o scrivere ad [mailto:info@raspibo.org info@raspibo.org]</div>Dancast78