<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>python Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/python/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/python/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Sat, 27 Feb 2021 22:08:58 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.2</generator>

<image>
	<url>https://logicaprogrammabile.it/wp-content/uploads/2017/11/cropped-logicaprogrammabile-logo-02-32x32.png</url>
	<title>python Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/python/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Il miglior progetto timelapse camera con Raspberry Pi Zero</title>
		<link>https://logicaprogrammabile.it/miglior-progetto-timelapse-camera-raspberry-pi-zero-picam/</link>
					<comments>https://logicaprogrammabile.it/miglior-progetto-timelapse-camera-raspberry-pi-zero-picam/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 01 Mar 2021 07:00:04 +0000</pubDate>
				<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[Timelapse]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6334</guid>

					<description><![CDATA[<p>Timplapse con registrazione circolare I progetti timelapse basati su schede Raspberry Pi sono numerosi, ben documentati e replicabili. Perchè quindi creare l&#8217;ennesimo progetto camera timelapse? La mia esigenza è quella di creare un sistema che scatta delle fotografia ad intervalli regolari, ma con la possibilità...</p>
<p>The post <a href="https://logicaprogrammabile.it/miglior-progetto-timelapse-camera-raspberry-pi-zero-picam/">Il miglior progetto timelapse camera con Raspberry Pi Zero</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Timplapse con registrazione circolare</h1>
<p>I progetti timelapse basati su schede Raspberry Pi sono numerosi, ben documentati e replicabili. Perchè quindi creare l&#8217;ennesimo progetto camera timelapse?</p>
<p>La mia esigenza è quella di creare un sistema che scatta delle fotografia ad intervalli regolari, ma con la possibilità di registrarle in modo circolare. Cosa significa registrazione circolare?<br />
Il classico timelapse esegue un numero continuo di scatti. Il timelapse circolare invece, dopo aver raggiunto un numero massimo di scatti continua la sequenza di registrazione sovrascrivendo le foto meno recenti.</p>
<p>Questo sistema ha il vantaggio di non andare mai a saturare la memoria e quindi si adatta in tutte quelle situazioni in cui non possiamo andare spesso a scaricare le fotografie.</p>
<p>Infatti questo sistema è utile quando viene installato in zone remote e quando non abbiamo la certezza di andare a scaricare le foro in maniera regolare avendo la certezza che la registrazione saturerà la memoria del Raspberry.</p>
<p><span id="more-6334"></span></p>
<p>Nel dispositivo che ho realizzato ho inserito anche una serie di pulsanti in modo da avere un sistema gestire il software senza usare l&#8217;interfaccia grafica.</p>
<p>Lo scarico dei dati avviene utilizzando dei pulsanti che permettono di stoppare il timelapse, trasferire i files sulla pen drive e riprendere il ciclo di funzionamento.</p>
<p>Nella figura seguente è possibile osservare lo schema elettrico.</p>
<figure id="attachment_6589" aria-describedby="caption-attachment-6589" style="width: 838px" class="wp-caption aligncenter"><img fetchpriority="high" decoding="async" class="wp-image-6589 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/Timelapse_schema.png" alt="schema timelapse" width="838" height="471" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/Timelapse_schema.png 838w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/Timelapse_schema-300x169.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/Timelapse_schema-150x84.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/Timelapse_schema-768x432.png 768w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/Timelapse_schema-585x329.png 585w" sizes="(max-width: 838px) 100vw, 838px" /><figcaption id="caption-attachment-6589" class="wp-caption-text"><strong>Schema elettrico di collegamento</strong></figcaption></figure>
<p>I quattro ingressi del Raspberry sono normalmente bassi (resistenze da 10k collegate a massa), premendo un pulsante porteremmo la 3.3Vdc sul pin di ingresso. I due led invece servono per avere delle indicazioni luminose sull&#8217;operazione che il software sta eseguendo.</p>
<figure id="attachment_6592" aria-describedby="caption-attachment-6592" style="width: 700px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-6592 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam1.jpg" alt="pi zero cam" width="700" height="402" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam1.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam1-300x172.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam1-150x86.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam1-585x336.jpg 585w" sizes="(max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-6592" class="wp-caption-text"><strong>Pi Zero cam timelapse &#8211; lato componenti</strong></figcaption></figure>
<figure id="attachment_6591" aria-describedby="caption-attachment-6591" style="width: 394px" class="wp-caption aligncenter"><img decoding="async" class="wp-image-6591 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam.jpg" alt="Pi Zero cam timelapse" width="394" height="700" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam.jpg 394w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam-169x300.jpg 169w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam-84x150.jpg 84w" sizes="(max-width: 394px) 100vw, 394px" /><figcaption id="caption-attachment-6591" class="wp-caption-text"><strong>Pi Zero cam timelapse &#8211; vista frontale</strong></figcaption></figure>
<figure id="attachment_6594" aria-describedby="caption-attachment-6594" style="width: 700px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6594 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam2.jpg" alt="zero cam" width="700" height="394" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam2.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam2-300x169.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam2-150x84.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam2-585x329.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-6594" class="wp-caption-text"><strong>Pi Zero cam timelapse &#8211; lato connettori</strong></figcaption></figure>
<figure id="attachment_6595" aria-describedby="caption-attachment-6595" style="width: 700px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6595 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam3.jpg" alt="Pi Zero cam timelapse" width="700" height="402" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam3.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam3-300x172.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam3-150x86.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam3-585x336.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-6595" class="wp-caption-text"><strong>Pi Zero cam timelapse &#8211; interfaccia di controllo</strong></figcaption></figure>
<figure id="attachment_6597" aria-describedby="caption-attachment-6597" style="width: 700px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6597 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam4.jpg" alt="zero cam timelapse" width="700" height="412" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam4.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam4-300x177.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam4-150x88.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/zero_cam4-585x344.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" /><figcaption id="caption-attachment-6597" class="wp-caption-text"><strong>Pi Zero cam timelapse &#8211; montaggio su supporto</strong></figcaption></figure>
<p>Il codice scritto in Python permette di acquisisce e memorizzare le foto, gestisce i pulsanti i led e scaricare le foto sulla pen drive.</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">from picamera import PiCamera
from os import system
import shutil
import time
import RPi.GPIO as GPIO
import os.path
import os

src_folder = "/home/pi/PythonProject/tl_pics/"
dest_folder = "/media/pi/logicapro/foto"

StartTL = True
AutoStart = True

i = 0
loop = False
newloop = False

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

GPIO.setup(19, GPIO.IN)
GPIO.setup(26, GPIO.IN)
GPIO.setup(4, GPIO.IN)
GPIO.setup(17, GPIO.IN)

GPIO.setup(27, GPIO.OUT)
GPIO.setup(22, GPIO.OUT)

#led rosso on giallo off
GPIO.output(27, GPIO.HIGH)
GPIO.output(22, GPIO.LOW)

camera = PiCamera()
camera.resolution= (1024,768)

pics_id = open('/home/pi/PythonProject/PicsIndex.dat')
i = int(pics_id.read())
pics_id.close()

if (i&gt;0):
    loop=True

def StopTL(channel):
    global StartTL
    global AutoStart
        
    print("STOP TL")
    
    if StartTL == True:
        StartTL = False
        AutoStart = False
        print ("StartTL =", StartTL)
        print ("AutoStart =", AutoStart)
        GPIO.output(27, GPIO.HIGH)        
        time.sleep(1)    
        
            
def RunTL(channel):
    global StartTL
    global AutoStart
    
    print("START TL")
    
    if StartTL == False:
        StartTL = True
        AutoStart = True
        print ("StartTL =", StartTL)
        print ("AutoStart =", AutoStart)
        pics_id = open('/home/pi/PythonProject/PicsIndex.dat')
        i = int(pics_id.read())
        print ("RunTL i =", i)
        pics_id.close()
        GPIO.output(27, GPIO.LOW)
        GPIO.output(22, GPIO.LOW)        
        time.sleep(1)

GPIO.add_event_detect(17, GPIO.RISING, callback=StopTL, bouncetime=500)
GPIO.add_event_detect(4, GPIO.RISING, callback=RunTL, bouncetime=500)

while True:
    
    #primo pulsante
    if AutoStart == True:
        #start timelapse       
        while (StartTL):
            i += 1
            #print (i)
            if loop==True:
                #print ("i=", i)
                
                try:
                    t = time.localtime()
                    anno = str(t[0])
                    mese = str(t[1])
                    giorno = str(t[3])
                    #print(giorno + "-" + mese + "-" + anno)
                    #se esiste il file lo cancello
                    if (os.path.isfile('/home/pi/PythonProject/tl_pics/image{0:05d}.jpg'.format(i)) == True):
                        print("elimino file esistente ".format(i))
                        os.remove('/home/pi/PythonProject/tl_pics/image{0:05d}.jpg'.format(i))
                    
                    print("Eseguo shot " + str(i))
                    camera.capture('/home/pi/PythonProject/tl_pics/image{0:05d}.jpg'.format(i))
                    time.sleep(0.7)
                    GPIO.output(27, GPIO.HIGH)
                    time.sleep(0.3)
                    GPIO.output(27, GPIO.LOW)
                    #time.sleep(60)
                    pics_id = open('/home/pi/PythonProject/PicsIndex.dat', 'w')
                    pics_id.write(str(i))
                    pics_id.close()
                    print("pic_shot = " + str(i))
                except (e):
                    print("Errore shot " + str(i))
                    f = open('/home/pi/PythonProject/Error.txt', 'a')
                    f.write("Errore shot file " + str(e) + " ")
                    f.write(str(i) + "\n")
                    f.close()
                except:
                    print("Errore generico shot " + str(i))
                    f = open('/home/pi/PythonProject/Error.txt', 'a')
                    f.write("Errore shot file " + str(i) + " \n")
                    f.close()
            
                fc = open('/home/pi/PythonProject/CopyLog.txt', 'a')
                fc.write("Current shot ")
                fc.write(str(i) + "\n")
                fc.close()
            
                #attendi 2 minuti 60x2sec
                for tempo in range (60): #range(60):
                    GPIO.output(22, GPIO.HIGH)
                    time.sleep(0.1)
                    GPIO.output(22, GPIO.LOW)
                    time.sleep(1.9)
                    
                    if StartTL == False:
                        break
            
            #10080 5040
            if i &gt;= 4320:
                i=0                
                loop=True                
                print("NEW LOOP")
                time.sleep(1)
            
            if GPIO.input(17):
                break
            
        print ("Exit loop")    
    
    #terzo pulsante
    if GPIO.input(19):
        #crea un video dai file del timelapse
        print("Terzo Pulsante")
        GPIO.output(22, GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(22, GPIO.LOW)
        time.sleep(0.5)
        GPIO.output(22, GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(22, GPIO.LOW)
        time.sleep(0.5)
        GPIO.output(22, GPIO.HIGH)
        time.sleep(0.5)
        GPIO.output(22, GPIO.LOW)
        time.sleep(0.5)
        os.system("sudo reboot")
        
    #quarto pulsante
    #copia le foto nella cartella della pen drive
    if GPIO.input(26):
        GPIO.output(27, GPIO.HIGH)
        GPIO.output(22, GPIO.HIGH)
        time.sleep(1)
        try:
            print("Copia file in corso")
            time.sleep(1)

            src = os.listdir(src_folder)

            for files in src:
                GPIO.output(22, GPIO.HIGH)
                time.sleep(0.1)

                if (files.endswith(".jpg")):
                    shutil.copy("/home/pi/PythonProject/tl_pics/" + files, dest_folder + "/" + files)
                    print(files)
                    
                GPIO.output(22, GPIO.LOW)
                time.sleep(0.1)
            
            #fine copia files
            GPIO.output(27, GPIO.LOW)
            GPIO.output(22, GPIO.LOW)
            
            os.system("sudo umount /media/pi/logicapro")
            time.sleep(3)
            
            print("Copia file terminata")
            AutoStart=True
            StartTL = True
            
        except (IndexError):
            print("Errore copia file")
            AutoStart=False
            GPIO.output(22, GPIO.HIGH)
            GPIO.output(27, GPIO.HIGH)
            time.sleep(3)
            GPIO.output(22, GPIO.LOW)
            GPIO.output(27, GPIO.LOW)
            f = open('/home/pi/PythonProject/Error.txt', 'a')
            f.write("Errore copia file ")
            f.write(str(files) + "\n")
            f.close()
        except  (Exception, e):
            print("Errore generico")
            f = open('/home/pi/PythonProject/Error.txt', 'a')
            f.write("Errore generico " + str(e))
            f.write(str(files) + "\n")
            f.close()
            AutoStart=True
            StartTL = True
        

GPIO.cleanup()
</pre>
<p>I commenti nel codice illustrano come lavorano le istruzione Python.</p>
<p>Per la realizzazione ho scelto di utilizzare una Raspberry Pi ZERO, principalmente per il basso costo e le dimensioni contenute. La Pi camera può essere sostituita con la versione ir.</p>
<p>Per quanto riguarda l&#8217;alimentazione della scheda in zone remote è necessario un pannello solare, un regolatore di carica e una batteria dimensionati opportunamente per fornire la corrente per alimentare la Pi Zero e la Pi Camera.</p>
<p>The post <a href="https://logicaprogrammabile.it/miglior-progetto-timelapse-camera-raspberry-pi-zero-picam/">Il miglior progetto timelapse camera con Raspberry Pi Zero</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/miglior-progetto-timelapse-camera-raspberry-pi-zero-picam/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Il tuo primo programma con Python</title>
		<link>https://logicaprogrammabile.it/primo-programma-python-idle/</link>
					<comments>https://logicaprogrammabile.it/primo-programma-python-idle/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Thu, 16 Apr 2020 17:00:49 +0000</pubDate>
				<category><![CDATA[Tutorial Python]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6244</guid>

					<description><![CDATA[<p>Come scrivere il primo programma Python Abbiamo visto nell&#8217;articolo procedente come installare Python nel nostro pc. Anche se non conoscete le istruzioni del linguaggio Python potete iniziare a scrivere un piccolo programma in modo tale da capire cosa avviene durante la scrittura del codice e...</p>
<p>The post <a href="https://logicaprogrammabile.it/primo-programma-python-idle/">Il tuo primo programma con Python</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come scrivere il primo programma Python</h1>
<p>Abbiamo visto <a href="https://logicaprogrammabile.it/programmare-utilizzando-python/">nell&#8217;articolo procedente</a> come installare <strong>Python</strong> nel nostro pc. Anche se non conoscete le istruzioni del linguaggio <strong>Python</strong> potete iniziare a scrivere un piccolo programma in modo tale da capire cosa avviene durante la scrittura del codice e durante la sua esecuzione.</p>
<p>Aprite <strong>IDLE</strong> e dal menu <strong>File</strong> selezionate <strong>New File</strong>. Verrà aperta una nuova finestra per poter scrivere il codice del nostro programma.</p>
<p><span id="more-6244"></span></p>
<p>Inseriamo le seguenti istruzioni</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">#importo la libreria per inserire delle pause tra le istruzioni
import time

#eseguo un ciclo per 10 volte
for x in range (10):
    #scrivo sul monito la frase Ciao mondo e unisco il numero del ciclo
    print("Ciao Mondo " + str(x))
    #creo una pausa di mezzo secondo
    time.sleep(0.5)</pre>
<p>Salviamo file seguendo il percorso <strong>File-&gt;Save,</strong> nominiamo il file con un <strong>nome a piacere</strong> e salviamolo su una cartella del nostro disco (ricordate che l&#8217;estensione del nome del file deve essere .py).</p>
<p>Per eseguire il programma dobbiamo andare nel menu <strong>Run</strong> e selezionare la voce <strong>Run Module</strong> (oppure premere sulla tastiera il tasto funzione <strong>F5</strong>).</p>
<p>Se non vengono segnalati errori nel codice il risultato è il seguente:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="raw">Ciao Mondo 0
Ciao Mondo 1
Ciao Mondo 2
Ciao Mondo 3
Ciao Mondo 4
Ciao Mondo 5
Ciao Mondo 6
Ciao Mondo 7
Ciao Mondo 8
Ciao Mondo 9
Ciao Mondo 10</pre>
<p>Nel codice ho inserito alcuni commenti per capire meglio cosa fanno le istruzioni. Non importa, per ora, conoscere cosa fanno le istruzioni che avete scritto. Questo piccolo programma serve principalmente per capire come creare un file <strong>Python</strong>, come salvarlo ed eseguirlo.</p>
<p>The post <a href="https://logicaprogrammabile.it/primo-programma-python-idle/">Il tuo primo programma con Python</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/primo-programma-python-idle/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programmare usando Python</title>
		<link>https://logicaprogrammabile.it/programmare-utilizzando-python/</link>
					<comments>https://logicaprogrammabile.it/programmare-utilizzando-python/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Thu, 26 Mar 2020 11:08:28 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6197</guid>

					<description><![CDATA[<p>Imparare a programmare con Python La maggior parte dei dispositivi elettronici che ci circondano, dal piccolo elettrodomestico alla smartphone, hanno circuiti elettronici che vengono gestiti da un software. Anche se non ci accorgiamo, ogni giorno, direttamente o indirettamente, abbiamo a che fare con dei programmi...</p>
<p>The post <a href="https://logicaprogrammabile.it/programmare-utilizzando-python/">Programmare usando Python</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Imparare a programmare con Python</h1>
<p>La maggior parte dei dispositivi elettronici che ci circondano, dal piccolo elettrodomestico alla smartphone, hanno circuiti elettronici che vengono gestiti da un software. Anche se non ci accorgiamo, ogni giorno, direttamente o indirettamente, abbiamo a che fare con dei programmi che ci permettono di utilizzare in modo semplice, diversi dispositivi.</p>
<p>E&#8217; prevedibile che nel prossimo futuro i software saranno presenti in maniera ancora più massiccia, andando a governare ogni tipo dispositivo elettronico. Se consideriamo solo il mercato IoT, stimato in miliardi di dispositivi installati, capiamo quale sia l&#8217;importanza dello sviluppo software.</p>
<p><span id="more-6197"></span></p>
<p>Di conseguenza, imparare a programmare, ci mette nelle condizioni di capire meglio il funzionamento dei dispositivi elettronici. Questo produce inoltre altri vantaggi, infatti queste competenze potranno essere impiegate anche in altri numerosi campi, dallo sviluppo di applicazioni per pc a quelle per dispositivi mobili o per il web.</p>
<p>Attualmente ci sono decine di linguaggi di programmazione consigliati a chi volesse iniziare a programmare. Non esiste un linguaggio migliore di un altro, tutti hanno dei pro e dei contro e la scelta ricade dal tipo di software che vogliamo sviluppare e dalle risorse che abbiamo a disposizione.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6241" src="https://logicaprogrammabile.it/wp-content/uploads/2020/03/python_logo.png" alt="Logo Python" width="290" height="82" srcset="https://logicaprogrammabile.it/wp-content/uploads/2020/03/python_logo.png 290w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/python_logo-150x42.png 150w" sizes="auto, (max-width: 290px) 100vw, 290px" /></p>
<p>Il linguaggio più apprezzato per le persone che vogliono iniziare a programmare, ma che non hanno nessuna esperienza, è certamente <strong>Python</strong>. I vantaggi di questo linguaggio sono riassunti in questi pochi punti:</p>
<ul>
<li>semplice da imparare
<ul>
<li>(la sua sintassi è molto semplice da imparare e la scrittura del codice permette di capire subito la struttura del codice)</li>
</ul>
</li>
<li>multi piattaforma
<ul>
<li>(il software può essere scritto utilizzando diversi sistemi operativi e può girare in tantissimi dispositivi, dai microcontrollori ai pc più potenti)</li>
</ul>
</li>
<li>open source</li>
<li>vasta community
<ul>
<li>(la community Python ci permette di imparare dall&#8217;esperienza fatta da altri utenti)</li>
</ul>
</li>
</ul>
<h2>Installare Python (su Windows)</h2>
<p>La prima cosa da fare è installare Python sul proprio pc. La procedura risulta molto semplice, è sufficiente andare sul sito ufficiale <a href="https://www.python.org/">Python.org</a>, cliccare sul link download e cliccare sul pulsante Download Python. Il pacchetto di installazione deve essere effettuato in base al proprio sistema operativo.</p>
<p>Una volta scaricato il file eseguibile, basta eseguirlo con un doppio clic e seguire le istruzioni del wizard.</p>
<p>Se tutto è andato a buon fine nel menu Start di Windows dovremmo avere una cartella con nome Python 3.8 (Il numero si riferisce alla versione installata e potrebbe differire a seconda della vostra installazione).<br />
All&#8217;interno di questa cartella ci sono due icone che si riferiscono alla documentazione Python e due icone che lanciano due programmi la <strong>REPL</strong> e <strong>l&#8217;Idle</strong>.</p>
<p>Il programma <strong>REPL</strong> è un ambiente a linea di comando che permette di eseguire i comandi Python. Questo è utile per provare dei comandi immediatamente per capirne il funzionamento.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6239" src="https://logicaprogrammabile.it/wp-content/uploads/2020/03/ReplIDE.jpg" alt="Repl python" width="794" height="507" srcset="https://logicaprogrammabile.it/wp-content/uploads/2020/03/ReplIDE.jpg 794w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/ReplIDE-300x192.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/ReplIDE-150x96.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/ReplIDE-768x490.jpg 768w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/ReplIDE-585x374.jpg 585w" sizes="auto, (max-width: 794px) 100vw, 794px" /></p>
<p><strong>Idle</strong> invece è un editor che ci permette di scrivere i programmi Python, di poterli salvare ed eseguire.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6240" src="https://logicaprogrammabile.it/wp-content/uploads/2020/03/Idle.jpg" alt="Python IDE Editor" width="687" height="448" srcset="https://logicaprogrammabile.it/wp-content/uploads/2020/03/Idle.jpg 687w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/Idle-300x196.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/Idle-150x98.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2020/03/Idle-585x381.jpg 585w" sizes="auto, (max-width: 687px) 100vw, 687px" /></p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/programmare-utilizzando-python/">Programmare usando Python</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/programmare-utilizzando-python/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Internet of Things disponibile Zerynth Studio PRO</title>
		<link>https://logicaprogrammabile.it/iot-disponibile-zerynth-studio-pro/</link>
					<comments>https://logicaprogrammabile.it/iot-disponibile-zerynth-studio-pro/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Thu, 29 Jun 2017 17:34:21 +0000</pubDate>
				<category><![CDATA[Tutorial Zerynth]]></category>
		<category><![CDATA[python]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=5538</guid>

					<description><![CDATA[<p>L’uso di Python per l’Internet of Things professionale è oggi realtà con Zerynth &#160; Come anticipato pochi mesi fa durante il lancio della nuova versione 2.0 del suo software stack, Zerynth ha appena lanciato Zerynth Studio PRO. La versione professionale dello stack software per lo...</p>
<p>The post <a href="https://logicaprogrammabile.it/iot-disponibile-zerynth-studio-pro/">Internet of Things disponibile Zerynth Studio PRO</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>L’uso di Python per l’Internet of Things professionale è oggi realtà con Zerynth</h1>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5541" src="https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth_Studi_PRO_FOTA.png" alt="Zerynth Studio PRO" width="661" height="334" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth_Studi_PRO_FOTA.png 661w, https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth_Studi_PRO_FOTA-300x152.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth_Studi_PRO_FOTA-600x303.png 600w" sizes="auto, (max-width: 661px) 100vw, 661px" /></p>
<p>&nbsp;</p>
<p>Come anticipato pochi mesi fa durante il lancio della nuova versione 2.0 del suo software stack, Zerynth ha appena lanciato <strong>Zerynth Studio PRO</strong>. La versione professionale dello stack software per lo sviluppo di soluzioni IoT in linguaggio Python include <strong>funzionalità di tipo industriale</strong> come: aggiornamenti Over-The-Air del Firmware; power saving; possibilità di selezionare l&#8217;RTOS; da 50 ad infiniti dispositivi programmabili per produzioni pre-serie e industriali; firmware sicuro a livello hardware.</p>
<p>Il toolkit lanciato dalla startup italiana nel 2015 dopo una campagna Kickstarter di successo, ha consentito ad un’ampio numero di sviluppatori (non solo elettronici) di progettare con successo applicazioni embedded e soluzioni Internet of Things (IoT) utilizzando svariati<strong> microcontrollori a 32 bit</strong> e collegandosi a diverse infrastrutture cloud. Tutti con un potente ma semplice linguaggio di programmazione come il Python e una footprint di soli <strong>60-80k di Flash</strong> e <strong>3-5k di RAM</strong>. I vantaggi della programmazione IoT con Zerynth includono la possibilità di riutilizzare il codice del prototipo per la soluzione finale (grazie alla Zerynth Virtual Machine) e di connettersi a qualsiasi architettura cloud, con conseguente riduzione del tempo sul mercato e maggiore flessibilità.</p>
<p><span id="more-5538"></span></p>
<p>Con questo nuovo rilascio che punta dritto agli utenti professionali, Zerynth arricchisce l&#8217;elenco delle funzionalità del suo stack software, inclusa la possibilità di eseguire un aggiornamento completo del software dopo che la soluzione è stata installata sul campo.</p>
<p>Infatti, una volta creata una soluzione IoT, sia che si tratti di una flotta collegata Wi-Fi di distributori automatici intelligenti o di un sistema basato su rete Lora per il monitoraggio di una conduttura petrolifera, lo sviluppatore potrebbe avere bisogno di mantenere aggiornata la soluzione ai nuovi requisiti espressi dal cliente. Per soddisfare questa specifica, Zerynth ha incluso la funzionalità di aggiornamento Firmware Over-the-Air (FOTA) in Zerynth Studio PRO. E, cosa più importante, lo hanno reso <a href="https://docs.zerynth.com/latest/official/core.zerynth.stdlib/docs/official_core.zerynth.stdlib_fota.html#stdlib-fota">incredibilmente semplice</a> ed estremamente potente: mentre l’update è in esecuzione, il resto del firmware continua a funzionare normalmente, con un&#8217;importante riduzione del tempo di offline dei dispositivi: un aspetto critico in molte applicazioni industriali dove è necessario garantire la continuità di funzionamento.</p>
<h2><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5542" src="https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth-Studio-PRO-steps.png" alt="Zerynth studio pro" width="653" height="328" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth-Studio-PRO-steps.png 653w, https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth-Studio-PRO-steps-300x151.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2017/06/Zerynth-Studio-PRO-steps-600x301.png 600w" sizes="auto, (max-width: 653px) 100vw, 653px" /></h2>
<h2>Come ottenere Zerynth Studio</h2>
<p>Nella sua versione gratuita, <a href="http://www.zerynth.com/zerynth-studio/">scaricabile dal sito</a>, Zerynth Studio consente tutte le funzionalità necessarie per prototipare soluzioni IoT e per programmare gratuitamente fino a 5 unità di ogni dispositivo supportato.</p>
<p>Gli utenti possono accedere a Zerynth Studio PRO (disponibile come IDE o Toolchain) <a href="https://store.zerynth.com/zerynth-studio-pro/">aggiornando</a> il proprio account e scegliendo una licenza a rinnovo <strong>mensile</strong> o <strong>annuale</strong>, con un semplice schema di prezzi per singolo utente: <strong>$ 39/mese</strong> o <strong>$ 390/anno</strong>.</p>
<p>Per maggiori informazioni su questa nuova release, <a href="https://www.zerynth.com/blog/zerynth-studio-pro-now-available-with-firmware-over-the-air-updates/">clicca qui</a>.</p>
<p>The post <a href="https://logicaprogrammabile.it/iot-disponibile-zerynth-studio-pro/">Internet of Things disponibile Zerynth Studio PRO</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/iot-disponibile-zerynth-studio-pro/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
