<?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>raspberry Archives - Esperimenti con logiche programmabili</title>
	<atom:link href="https://logicaprogrammabile.it/tag/raspberry/feed/" rel="self" type="application/rss+xml" />
	<link>https://logicaprogrammabile.it/tag/raspberry/</link>
	<description>Tutorial in italiano per imparare a programmare usando Arduino, Raspberry PI, Netduino</description>
	<lastBuildDate>Fri, 26 Aug 2022 13:29:39 +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>raspberry Archives - Esperimenti con logiche programmabili</title>
	<link>https://logicaprogrammabile.it/tag/raspberry/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Datalogger con Raspberry SQLite e Arduino</title>
		<link>https://logicaprogrammabile.it/datalogger-remoto-raspberry-sqlite-arduino/</link>
					<comments>https://logicaprogrammabile.it/datalogger-remoto-raspberry-sqlite-arduino/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Sun, 28 Aug 2022 06:00:30 +0000</pubDate>
				<category><![CDATA[Tutorial Arduino]]></category>
		<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[DataLogger]]></category>
		<category><![CDATA[dht11]]></category>
		<category><![CDATA[Ethernet Shield]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[Sqlite]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6691</guid>

					<description><![CDATA[<p>Costruire un datalogger remoto con Raspberry e Arduino Codice Python sul Raspberry SQLite Codice sull&#8217;Arduino MKR Zero Il progetto che ho realizzato riguarda il monitoraggio di temperatura e umidità all&#8217;interno di un locale tecnico. I dati rilevati da un sensore DHT22 vengono acquisti da una...</p>
<p>The post <a href="https://logicaprogrammabile.it/datalogger-remoto-raspberry-sqlite-arduino/">Datalogger con Raspberry SQLite e Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Costruire un datalogger remoto con Raspberry e Arduino</h1>
<ul>
<li><a href="#Raspberry_Sqlite">Codice Python sul Raspberry SQLite</a></li>
<li><a href="#Arduino_MKR_Zero">Codice sull&#8217;Arduino MKR Zero</a></li>
</ul>
<p>Il progetto che ho realizzato riguarda il monitoraggio di temperatura e umidità all&#8217;interno di un locale tecnico. I dati rilevati da un <a href="https://amzn.to/3q5qLpr" target="_blank" rel="noopener">sensore DHT22</a> vengono acquisti da una <a href="https://amzn.to/3cpgcu0" target="_blank" rel="noopener">Arduino MKR Zero</a> e tramite una <a href="https://amzn.to/3ArbPGB" target="_blank" rel="noopener">shield MKR ETH</a> inviati a un computer <a href="https://amzn.to/3R8XhSU" target="_blank" rel="noopener">Raspberry PI 4</a> che dopo averli acquisiti li memorizza all&#8217;interno di una tabella <a href="https://sqlite.org/index.html" target="_blank" rel="noopener">SQLite</a>.</p>
<p>Il protocollo utilizzato per l&#8217;invio dei dati si basa su UDP come abbiamo <a href="https://logicaprogrammabile.it/comunicazione-python-udp-computer-raspberry/" target="_blank" rel="noopener">visto in questo articolo</a>.</p>
<p><img fetchpriority="high" decoding="async" class="aligncenter size-full wp-image-6740" src="https://logicaprogrammabile.it/wp-content/uploads/2022/08/Ardu_Raspi.png" alt="Arduino Raspberry sqlite" width="458" height="451" srcset="https://logicaprogrammabile.it/wp-content/uploads/2022/08/Ardu_Raspi.png 458w, https://logicaprogrammabile.it/wp-content/uploads/2022/08/Ardu_Raspi-300x295.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2022/08/Ardu_Raspi-150x148.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2022/08/Ardu_Raspi-80x80.png 80w" sizes="(max-width: 458px) 100vw, 458px" /></p>
<p>I dati sarebbero potuti essere memorizzati in un semplice file di testo ma ho preferito usare un database in modo tale da estrarli in modo rapido utilizzando semplici query. Il database contiene per ora una tabella contenente i seguenti campi:</p>
<table align="center">
<tbody>
<tr>
<th>Nome Campo</th>
<th>Tipo Campo</th>
</tr>
<tr>
<td>ID</td>
<td>
<div>
<div>INTEGER PRIMARY KEY AUTOINCREMENT</div>
</div>
</td>
</tr>
<tr>
<td>Data</td>
<td>
<div>
<div>TIMESTAMP DEFAULT CURRENT_TIMESTAMP</div>
</div>
</td>
</tr>
<tr>
<td>
<div>
<div>Temperatura</div>
</div>
</td>
<td>
<div>
<div>VARCHAR(50) NOT NULL</div>
</div>
</td>
</tr>
<tr>
<td>
<div>
<div>Umidita</div>
</div>
</td>
<td>
<div>
<div>VARCHAR(50) NOT NULL</div>
</div>
</td>
</tr>
</tbody>
</table>
<p id="Raspberry_Sqlite">Il codice seguente gira sul Raspberry Pi 4; ho inserito diversi commenti che spiegano le varie istruzioni contenute nel programma:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import sqlite3
import socket
import threading
import time

#IP computer locale
UDP_IP_ADDR = "192.168.178.50"
#Porta computer locale
UDP_PORT_NUMBER = 20002

ip_port_Data = (UDP_IP_ADDR, UDP_PORT_NUMBER)
   
def client_Receive_Data():
    print("Avvio THREAD Receive Data...")
    serversocket1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    serversocket1.bind(("192.168.178.30", 20001))
    msgToSend = str.encode("DB_OK")
    
    #crea connessione al database
    connection = sqlite3.connect('lopro.db')
    cursor = connection.cursor()
        
    try:            
        while True:            
            data, address = serversocket1.recvfrom(1024)
            strData = bytes.decode(data).split(":")
         
            sql = """ INSERT INTO tbl_log(Temperatura, Umidita) VALUES ('{}', '{}');""".format(strData[0], strData[1])
            
            print(sql)
            
            cursor.execute(sql)
            connection.commit()

            #invia al device una risposta
            serversocket1.sendto(msgToSend, ip_port_Data)
            time.sleep(1)
    except:
        print("errore")
        msgToSend = str.encode("ERRORE")
        serversocket1.sendto(msgToSend, ip_port_Data)
        connection.close()

def crea_tabella():
    #una volta creata la tabella possiamo evitare di chiamare
    #questa funzione ad ogni esecuzione del programma
    #crea connessione al database
    connection = sqlite3.connect('lopro.db')
    cursor = connection.cursor()
 
    #Se esiste la tabella cancellala
    #cursor.execute("DROP TABLE IF EXISTS tbl_log")
 
    # Crea la tabella se non esiste
    table = """ CREATE TABLE IF NOT EXISTS tbl_log (
            ID INTEGER PRIMARY KEY AUTOINCREMENT,
            Data TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            Temperatura VARCHAR(50) NOT NULL,
            Umidita VARCHAR(50) NOT NULL      
        ); """
 
    cursor.execute(table)
    cursor.close()
    connection.close()

 
def list_rows():
    print("list rows..")
    #crea connessione al database
    connection = sqlite3.connect('lopro.db')

    sql = """ SELECT * FROM tbl_log;"""

    cursor = connection.cursor()
    cursor.execute(sql)
    rows = cursor.fetchall()

    for row in rows:
        print(row)

    # Close the connection
    connection.close()

if __name__=="__main__":
    #Rimuovere il commento per creare la tabella
    #crea_tabella()
    #list_rows()
    #Avvio un thred
    print("Start program")
    t1 = threading.Thread(target=client_Receive_Data)
    t1.start()</pre>
<p id="Arduino_MKR_Zero">Questo è invece il codice che gira sulla Arduino MKR Zero; ho inserito diversi commenti che spiegano le varie istruzioni contenute nel programma:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="cpp">#include &lt;SPI.h&gt;
#include &lt;Ethernet.h&gt;
#include &lt;EthernetUdp.h&gt;
#include &lt;DHT.h&gt;

#define DHTPIN 6
#define DHTTYPE DHT22

// creo un MAC address e un IP address per la scheda Arduino
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(192, 168, 178, 50);

//creo un ip address per il raspberry
IPAddress ip_remote(192, 168, 178, 30);
//creo una porta per la scheda Arduino
unsigned int localPort = 20002; 

//creo degli array di char per la ricezione e l'invio dei
//dati via udp
char packetBuffer[UDP_TX_PACKET_MAX_SIZE];
char chrBuffer[11];

//altre variabili 
String strTempUmid = "";
byte ciclo = 0;

// Creo degli oggetti per l'utilizzo di udp e del 
//sensore dht
EthernetUDP Udp;
DHT dht(DHTPIN, DHTTYPE);

void setup() {
  //inizializzo lo shield mkr eth
  Ethernet.init(5);

  //inizializzo la scheda di rete
  Ethernet.begin(mac, ip);

  //inizializzo la seriale
  Serial.begin(9600);
  
  // verifico la ethernet shield
  if (Ethernet.hardwareStatus() == EthernetNoHardware) {
    Serial.println("MKR ETH non presente o configurata in modo errato!");
    while (true) {
      delay(1);
    }
  }

  //inizializzo l'oggetto udp
  Udp.begin(localPort);
  //inizializzo l'oggetto dht
  dht.begin();
}

void loop() {

  //verifico presenza pacchetti udp in arrivo
  int packetSize = Udp.parsePacket();
  
  //se coi sono pacchetti
  if (packetSize) {
    //Serial.println(packetSize);
    //leggo i pacchetti e gli inserisco nell'array di char
    Udp.read(packetBuffer, UDP_TX_PACKET_MAX_SIZE);
    //printo i dati ricevuti
    Serial.println(packetBuffer);
  }

  //leggo umidità e temperatura dal sensore dht
  float h = dht.readHumidity();
  float t = dht.readTemperature();

  //creo una stringa del tipo temp:umid
  strTempUmid = "";
  strTempUmid.concat(t);
  strTempUmid.concat(":");
  strTempUmid.concat(h);
  //printo la stringa sul ser mon
  Serial.println(strTempUmid);
  //converto la stringa in un array di char
  strTempUmid.toCharArray(chrBuffer, strTempUmid.length());

  //inizializzo la connessione con ip e porta del Raspberry
  Udp.beginPacket(ip_remote, 20001);
  //Scrivo i dati nel buffer
  Udp.write(chrBuffer);
  //invio i dati
  Udp.endPacket();

  //attendo un minuto prima del prossimo invio
  for (ciclo = 0; ciclo &lt; 60; ciclo++)
    delay(1000);

}</pre>
<p>Ogni minuto viene inviata una unica stringa contenente i dati di temperatura e umidita che il codice python provvederà a separate in due dati distinti per essere caricati sul database.</p>
<h2>Memorizzare solo le variazioni significative su Raspberry SQLite</h2>
<p>Possiamo ottimizzare lo spazio sulla tabella (e di conseguenza sul filesystem del Raspberry) memorizzando solo i dati che hanno una variazione significativa. In questo modo il monitoraggio rimane costante perché comunque l&#8217;Arduino legge e invia i dati ogni minuto ma posso risparmiare spazio sul database salvando solo le variazioni significative. Sulla tabella memorizzo anche il timestamp e quindi posso ricostruire l&#8217;andamento di temperatura e umidità interpolando i dati.</p>
<p>Il codice seguente mostra la modifica alla funzione client_Receive_Data() in modo tale da memorizzare solo i dati che hanno una variazione di 0.5 rispetto ai dati della lettura precedente rilevata dalla scheda Arduino:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">def client_Receive_Data():
    print("Avvio THREAD Receive Data...")
    serversocket1 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
    serversocket1.bind(("192.168.178.30", 20001))
        
    # crea connessione al database
    connection = sqlite3.connect('lopro.db')
    cursor = connection.cursor()
    #creo due variabili per memorizzare i dati delle 
    #letture di temp e umid
    temp_prec = 0
    umid_prec = 0
    
    try:
        while True:
            data, address = serversocket1.recvfrom(1024)
            strData = bytes.decode(data).split(":")

            #verifico se i dati appena letti differiscono di 0.5 dai valori della lettuare precedente
            if (abs(temp_prec - float(strData[0])) &gt; 0.5) or (abs(umid_prec - float(strData[1])) &gt; 0.5) :
                print("Variazione di Temp e Hum")  
                sql = """ INSERT INTO tbl_log(Temperatura, Umidita) VALUES ('{}', '{}');""".format(strData[0], strData[1])

                #memorizzo i dati per poterli confrontare con quelli
                #che arrivano dalla scheda arduino
                temp_prec = float(strData[0])
                umid_prec = float(strData[1])
                #visualizzo la stringa sql
                print(sql)
                #eseguo la stringa sql insert avviando una transazione
                cursor.execute(sql)
                #confermo la transazione
                connection.commit()
                
                # invia al device una risposta
                msgToSend = str.encode("DB_OK")
                serversocket1.sendto(msgToSend, ip_port_Data)
            else:
                print("Nessuna variazione di Temp e Hum")  
                # invia al device una risposta
                msgToSend = str.encode("DB_NOK")
                serversocket1.sendto(msgToSend, ip_port_Data)
            
            time.sleep(1)
    except:
        print("errore")
        msgToSend = str.encode("ERRORE")
        serversocket1.sendto(msgToSend, ip_port_Data)
        connection.close()</pre>
<p>L&#8217;utilizzo congiunto di Raspberry e Arduino ci permette di realizzare progetti che superano i limiti dati dalle singole schede.</p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/datalogger-remoto-raspberry-sqlite-arduino/">Datalogger con Raspberry SQLite e Arduino</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/datalogger-remoto-raspberry-sqlite-arduino/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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 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 loading="lazy" 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="auto, (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>Caricare un programma MicroPython sulla Pi Pico</title>
		<link>https://logicaprogrammabile.it/caricare-programma-micropython-raspberry-pico/</link>
					<comments>https://logicaprogrammabile.it/caricare-programma-micropython-raspberry-pico/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 08 Feb 2021 07:00:42 +0000</pubDate>
				<category><![CDATA[Tutorial Python]]></category>
		<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[Pi Pico]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[Sensore Temperatura]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6563</guid>

					<description><![CDATA[<p>Come programmare la Pi Pico con MicroPython Nello scorso articolo abbiamo visto come configurare la Raspberry Pi Pico per poter essere programmata utilizzando il linguaggio MicroPython. In particolare abbiamo installato e configurato Thonny e caricato l&#8217;interprete MicroPython sulla scheda Pico. In questo articolo vediamo come...</p>
<p>The post <a href="https://logicaprogrammabile.it/caricare-programma-micropython-raspberry-pico/">Caricare un programma MicroPython sulla Pi Pico</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come programmare la Pi Pico con MicroPython</h1>
<p>Nello <a href="https://logicaprogrammabile.it/programmare-configurare-raspberry-pi-pico-micropython/">scorso articolo abbiamo visto</a> come configurare la Raspberry Pi Pico per poter essere programmata utilizzando il linguaggio <strong>MicroPython</strong>. In particolare abbiamo installato e configurato <strong>Thonny</strong> e caricato l&#8217;interprete <strong>MicroPython</strong> sulla scheda <strong>Pico</strong>.</p>
<p>In questo articolo vediamo come scrivere il nostro primo programma <strong>MicroPython</strong> e come caricarlo sulla Pico.</p>
<p>Colleghiamo la Pi Pico alla porta usb del computer e lanciamo l&#8217;ide <strong>Thonny</strong>. Dopo qualche istante sulla finestra shell dovremmo vedere la finestra interattiva di <strong>Python (REPL)</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6566" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl.jpg" alt="" width="650" height="569" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl.jpg 650w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl-300x263.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl-150x131.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl-585x512.jpg 585w" sizes="auto, (max-width: 650px) 100vw, 650px" /></p>
<p>Utilizzando la finestra <strong>Shell</strong> è possibile eseguire direttamente dei semplici comandi. In questo modo è possibile testare delle funzioni o piccole parti di codice in modo molto veloce.</p>
<p><span id="more-6563"></span></p>
<p>Ad esempio digitiamo sulla <strong>Shell</strong> il seguente codice e premiamo invio</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">print("Ciao Mondo!! Questa è la mia prima istruzione in MicroPython")</pre>
<p>otterremo la risposta della <strong>Pico</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6567" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl_print.jpg" alt="" width="700" height="195" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl_print.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl_print-300x84.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl_print-150x42.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/repl_print-585x163.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>niente di entusiasmante! Ma comunque un semplice test per verificare che la scheda stia eseguendo il codice Python.</p>
<h2>Scrivere un semplice programma</h2>
<p>Nell&#8217;editor dei Thonny andiamo a scrivere delle istruzioni un po più utili. Sappiamo che il chip RP2040 è dotato di un sensore di temperature collegato all&#8217;ingresso analogico ADC4, quindi con il codice seguente andiamo a prelevare la tensione sulla linea ADC4 per poi convertirla in un valore espresso in gradi centigradi:</p>
<pre class="EnlighterJSRAW" data-enlighter-language="python">import machine
import utime

sensor_temp = machine.ADC(4)
conversion_factor = 3.3 / (65535)

while True:
    reading = sensor_temp.read_u16() * conversion_factor
    temperature = 27 - (reading - 0.706)/0.001721
        
    print(temperature)
    
    utime.sleep(2)</pre>
<p>Il codice è stato copiato dal libro <a href="https://hackspace.raspberrypi.org/books/micropython-pico">Get started with MicroPython</a>.</p>
<p>Premiamo il pulsante<strong> Esegui lo script corrente (F5)</strong> per eseguire il programma. <strong>Thonny</strong> ci chiede dove vogliamo salvare il programma, salviamo sulla <strong>Raspberry Pi Pico</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6570" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/run_program.jpg" alt="" width="700" height="613" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/run_program.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/run_program-300x263.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/run_program-150x131.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/run_program-585x512.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Diamo un nome al nostro programma e premiamo sul pulsante <strong>OK</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6571" src="https://logicaprogrammabile.it/wp-content/uploads/2021/02/temp.jpg" alt="" width="700" height="613" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/02/temp.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/temp-300x263.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/temp-150x131.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/02/temp-585x512.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" /></p>
<p>Non appena premiamo il pulsante <strong>OK</strong> la <strong>Raspberry Pi Pico</strong> inizierà ad eseguire il programma. Sulla finestra <strong>Shell</strong> potremmo osservare il valore della temperatura rilevata dal microprocessore.</p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/caricare-programma-micropython-raspberry-pico/">Caricare un programma MicroPython sulla Pi Pico</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/caricare-programma-micropython-raspberry-pico/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Programmare la Raspberry Pi Pico con MicroPython</title>
		<link>https://logicaprogrammabile.it/programmare-configurare-raspberry-pi-pico-micropython/</link>
					<comments>https://logicaprogrammabile.it/programmare-configurare-raspberry-pi-pico-micropython/#comments</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 01 Feb 2021 07:00:55 +0000</pubDate>
				<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[ide]]></category>
		<category><![CDATA[Pi Pico]]></category>
		<category><![CDATA[raspberry]]></category>
		<category><![CDATA[thonny]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6522</guid>

					<description><![CDATA[<p>Configurare e programmare la Pi Pico Dopo l&#8217;annuncio della produzione della Raspberry Pi Pico ho acquistato alcuni moduli per poterli testare e capire se questo nuovo microcontrollore potrà ritagliarsi una fetta importante nel mondo dei makers. A prima vista sono rimasto molto contento del form...</p>
<p>The post <a href="https://logicaprogrammabile.it/programmare-configurare-raspberry-pi-pico-micropython/">Programmare la Raspberry Pi Pico con MicroPython</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h2>Configurare e programmare la Pi Pico</h2>
<p>Dopo l&#8217;annuncio della produzione della <strong>Raspberry Pi Pico</strong> ho acquistato alcuni moduli per poterli testare e capire se questo nuovo microcontrollore potrà ritagliarsi una fetta importante nel mondo dei makers.</p>
<p>A prima vista sono rimasto molto contento del form factor della <strong>PI Pico</strong> data la flessibilità di poterlo inserire in un proprio custom pcb,  della mancanza del power led (non capisco perchè nelle schede <strong>Arduino MKR</strong> sia presente questo led che non può essere disabilitato a meno che non si proceda a dissaldarlo!) utile nei progetti a basso consumo. Inoltre un pin del microcontrollore (GPIO23) va a gestire il Power Saving del convertitore DC/DC.</p>
<p>Il led sulla scheda è furbamente collegato ad un pin del microcontrollore, dando la possibilità al programmatore di tenerlo acceso o meno. Non è presente un pulsante di reset integrato certamente escluso per tenere basso il costo del prodotto (per resettare la scheda è sufficiente collegare un pulsante esterno).</p>
<p>Un altro punto di forza della Pi Pico è la possibilità di essere programmata con due linguaggi, <strong>Python (MicroPython)</strong> o <strong>C/C++</strong>.</p>
<p>Con <strong>MicroPython</strong> abbiamo una curva di apprendimento rapida, subito pronti a programmare la PI Pico con ambienti di sviluppo semplici come <strong>Thonny</strong> (disponibile per diversi sistemi operativi e preinstallato su Raspberry OS).</p>
<p>Con <strong>C/C++</strong> e con un completo <strong>SDK</strong>, possiamo spingerci a sviluppare programmi con performance elevate, di sfruttare tutta la potenza del microcontrollore <strong>RP2040</strong> e di avere ambienti più sviluppo professionali come <strong>Visual Studio Code</strong> o <strong>Eclipse</strong>.</p>
<h2>Utilizzare Thonny su Windows 10</h2>
<p><strong>Thonny</strong> è un ambiente di sviluppo integrato per principianti, preinstallato su <strong>Raspberry OS</strong> e disponibile anche per <strong>Windows</strong>, <strong>Mac</strong> e <strong>Linux</strong>. Dal sito <a href="https://thonny.org/">thonny.org</a> procediamo al download del software (versione 3.3.3 al momento in cui scrivo), versione per Windows. Terminato il download avviamo l&#8217;installazione lanciando l&#8217;eseguibile thonny-3.3.3.exe. Seguiamo le semplici istruzioni della procedura guidata:</p>
<figure id="attachment_6527" aria-describedby="caption-attachment-6527" style="width: 499px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6527 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-20.png" alt="Installazione di Thonny" width="499" height="392" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-20.png 499w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-20-300x236.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-20-150x118.png 150w" sizes="auto, (max-width: 499px) 100vw, 499px" /><figcaption id="caption-attachment-6527" class="wp-caption-text">Schermata di benvenuto &#8211; Installazione di Thonny IDE</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6528" aria-describedby="caption-attachment-6528" style="width: 498px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6528 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-21.png" alt="contratto thonny" width="498" height="390" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-21.png 498w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-21-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-21-150x117.png 150w" sizes="auto, (max-width: 498px) 100vw, 498px" /><figcaption id="caption-attachment-6528" class="wp-caption-text">Contratto di licenza</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6529" aria-describedby="caption-attachment-6529" style="width: 499px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6529 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-22.png" alt="Percorso installazione di thonny" width="499" height="391" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-22.png 499w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-22-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-22-150x118.png 150w" sizes="auto, (max-width: 499px) 100vw, 499px" /><figcaption id="caption-attachment-6529" class="wp-caption-text">Scelta del percorso di installazione</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6530" aria-describedby="caption-attachment-6530" style="width: 497px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6530 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-23.png" alt="creazione icona desktop" width="497" height="390" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-23.png 497w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-23-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-23-150x118.png 150w" sizes="auto, (max-width: 497px) 100vw, 497px" /><figcaption id="caption-attachment-6530" class="wp-caption-text">Creazione icona desktop di Thonny</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6531" aria-describedby="caption-attachment-6531" style="width: 498px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6531 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-25.png" alt="riepilogo installazione thonny" width="498" height="390" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-25.png 498w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-25-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-25-150x117.png 150w" sizes="auto, (max-width: 498px) 100vw, 498px" /><figcaption id="caption-attachment-6531" class="wp-caption-text">Riepilogo installazione di Thonny</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6532" aria-describedby="caption-attachment-6532" style="width: 497px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6532 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-26.png" alt="installazione" width="497" height="389" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-26.png 497w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-26-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-26-150x117.png 150w" sizes="auto, (max-width: 497px) 100vw, 497px" /><figcaption id="caption-attachment-6532" class="wp-caption-text">Installazione del programma Thonny</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6533" aria-describedby="caption-attachment-6533" style="width: 498px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6533 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-28.png" alt="installazione thonny" width="498" height="390" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-28.png 498w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-28-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-28-150x117.png 150w" sizes="auto, (max-width: 498px) 100vw, 498px" /><figcaption id="caption-attachment-6533" class="wp-caption-text">Installazione del programma Thonny</figcaption></figure>
<p>&nbsp;</p>
<figure id="attachment_6534" aria-describedby="caption-attachment-6534" style="width: 496px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6534 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-29.png" alt="installazione completata" width="496" height="390" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-29.png 496w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-29-300x236.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-29-150x118.png 150w" sizes="auto, (max-width: 496px) 100vw, 496px" /><figcaption id="caption-attachment-6534" class="wp-caption-text">Termine installazione del programma Thonny</figcaption></figure>
<figure id="attachment_6535" aria-describedby="caption-attachment-6535" style="width: 497px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6535 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-30.png" alt="conferma installazione" width="497" height="390" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-30.png 497w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-30-300x235.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-30-150x118.png 150w" sizes="auto, (max-width: 497px) 100vw, 497px" /><figcaption id="caption-attachment-6535" class="wp-caption-text">Conferma installazione di Thonny</figcaption></figure>
<p>Terminata l&#8217;installazione avviamo Thonny eseguendo un doppio clic sull&#8217;icona nel desktop.</p>
<p>Al primo avvio verrà richiesta la scelta della lingua da utilizzare nell&#8217;interfaccia grafica, selezioniamo quella che preferiamo e andiamo avanti premendo il pulsante <strong>Let&#8217;s go!</strong>:</p>
<figure id="attachment_6536" aria-describedby="caption-attachment-6536" style="width: 545px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6536 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-32.png" alt="lengiage selection" width="545" height="289" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-32.png 545w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-32-300x159.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-32-150x80.png 150w" sizes="auto, (max-width: 545px) 100vw, 545px" /><figcaption id="caption-attachment-6536" class="wp-caption-text">Seleziona la lingua dell&#8217;interfaccia</figcaption></figure>
<p>Dopo qualche istante vi ritroverete davanti l&#8217;interfaccia grafica di Thonny:</p>
<figure id="attachment_6537" aria-describedby="caption-attachment-6537" style="width: 799px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6537 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-33.png" alt="thonny" width="799" height="700" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-33.png 799w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-33-300x263.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-33-150x131.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-33-768x673.png 768w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Screenshot-33-585x513.png 585w" sizes="auto, (max-width: 799px) 100vw, 799px" /><figcaption id="caption-attachment-6537" class="wp-caption-text">interfaccia grafica di Thonny ide</figcaption></figure>
<h2>Caricare MycroPython sulla Pi Pico</h2>
<p>Per programmare la <strong>Pi Pico</strong> con <strong>Thonny</strong> è necessario caricare l&#8217;<strong>interprete MicroPython</strong>. Questa procedura è stata eseguita utilizzando Windows 10 versione 20H2. Colleghiamo la PI Pico alla porta usb del computer. La scheda viene riconosciuta dal sistema e viene avviata una procedura automatica di configurazione.</p>
<p>Clicchiamo, col pulsante destro del mouse, sul pulsante <strong>Start</strong>, dal menu contestuale scegliamo la voce <strong>Gestione Dispositivi</strong>. Sotto la voce <strong>Altri dispositivi</strong> dovrà essere presente l&#8217;elemento con nome <strong>RP2 Boot</strong>.</p>
<blockquote><p>In caso contrario rimuoviamo la scheda dalla porta usb, teniamo premuto il pulsante BOOTSEL della Pico e contemporaneamente ricolleghiamo la scheda alla porta usb.</p>
<p>Rilasciate il pulsante BOOTSEL.</p></blockquote>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6542" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi.png" alt="RP2 Boot" width="251" height="232" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi.png 251w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi-150x139.png 150w" sizes="auto, (max-width: 251px) 100vw, 251px" /></p>
<p>In <strong>Esplora risorse</strong> dovremmo anche avere una nuova unita disco chiamata <strong>RPI-RP2</strong>.</p>
<p>Portiamoci sul sito <strong>raspberrypi.org</strong>, nella sezione <a href="https://www.raspberrypi.org/documentation/pico/getting-started/">dedicata alla Pico scarichiamo Micropython</a> cliccando sul pulsante <strong>Download UF2 File</strong>:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6559" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/download_mp.jpg" alt="Pi Pico uf2 file" width="732" height="627" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/download_mp.jpg 732w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/download_mp-300x257.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/download_mp-150x128.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/download_mp-585x501.jpg 585w" sizes="auto, (max-width: 732px) 100vw, 732px" /></p>
<p>Ora copiamo il file <strong>pico_micropython_20210121.uf2</strong> sul disco <strong>RPI-RP2</strong>. Attendiamo la copia del file e il riavvio della scheda <strong>Pi Pico</strong>.</p>
<figure id="attachment_6548" aria-describedby="caption-attachment-6548" style="width: 380px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6548 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Copy_mp.png" alt="Coping micropython" width="380" height="131" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Copy_mp.png 380w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Copy_mp-300x103.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Copy_mp-150x52.png 150w" sizes="auto, (max-width: 380px) 100vw, 380px" /><figcaption id="caption-attachment-6548" class="wp-caption-text">Copia del file pico_micropython dentro il disco RPI-RP2</figcaption></figure>
<figure id="attachment_6547" aria-describedby="caption-attachment-6547" style="width: 451px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6547 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Coping_mp.png" alt="copia del file " width="451" height="288" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Coping_mp.png 451w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Coping_mp-300x192.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Coping_mp-150x96.png 150w" sizes="auto, (max-width: 451px) 100vw, 451px" /><figcaption id="caption-attachment-6547" class="wp-caption-text">Copia del file pico_micropython sulla Pi Pico</figcaption></figure>
<p>Controllando in gestione dispositivi dovremmo avere che la voce <strong>Altri Dispositivi-&gt; RP2 Boot</strong> viene eliminata e sostituita da una nuova periferica <strong>COM</strong>, nel mio caso la <strong>COM22</strong></p>
<figure id="attachment_6549" aria-describedby="caption-attachment-6549" style="width: 432px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6549 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi_COM.jpg" alt="nuova porta seriale" width="432" height="564" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi_COM.jpg 432w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi_COM-230x300.jpg 230w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/Gestione_Dispositivi_COM-115x150.jpg 115w" sizes="auto, (max-width: 432px) 100vw, 432px" /><figcaption id="caption-attachment-6549" class="wp-caption-text">Creazione nuova porta seriale per la Pi Pico</figcaption></figure>
<h2>Configurazione dell&#8217;ambiente di sviluppo</h2>
<p>La versione 3.3.3 di <strong>Thonny</strong> ha già preinstallato il plug-in per comunicare con la <strong>Raspberry Pi Pico</strong>. E&#8217; sufficiente selezionare l&#8217;interprete dal menu posizionato in basso a destra della finestra principale:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6550" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/micropython.png" alt="micropython" width="850" height="358" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/micropython.png 850w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/micropython-300x126.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/micropython-150x63.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/micropython-768x323.png 768w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/micropython-585x246.png 585w" sizes="auto, (max-width: 850px) 100vw, 850px" /></p>
<p>Selezionando la voce <strong>MicroPython (Raspberry Pi Pico)</strong> permetterà a Thonny di collegarsi alla Pico attivando la comunicazione seriale con la Pico e mostrando l&#8217;interfaccia interattiva REPL.</p>
<p>Per selezionare la scheda e la porta COM manualmente è possibile farlo dal menu<strong> Esegui-&gt;Seleziona Interprete</strong>:</p>
<figure id="attachment_6556" aria-describedby="caption-attachment-6556" style="width: 525px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6556 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/seleziona_interprete.png" alt="interprete micropython" width="525" height="465" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/seleziona_interprete.png 525w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/seleziona_interprete-300x266.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/seleziona_interprete-150x133.png 150w" sizes="auto, (max-width: 525px) 100vw, 525px" /><figcaption id="caption-attachment-6556" class="wp-caption-text">Seleziona Interprete</figcaption></figure>
<figure id="attachment_6553" aria-describedby="caption-attachment-6553" style="width: 589px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6553 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete.png" alt="interprete micropython pi pico" width="589" height="508" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete.png 589w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete-300x259.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete-150x129.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete-585x505.png 585w" sizes="auto, (max-width: 589px) 100vw, 589px" /><figcaption id="caption-attachment-6553" class="wp-caption-text">tab interprete</figcaption></figure>
<p>Nel tab <strong>Interprete</strong> possiamo <strong>selezionare l&#8217;interprete</strong> e la <strong>porta COM</strong> della scheda Pi Pico:</p>
<figure id="attachment_6555" aria-describedby="caption-attachment-6555" style="width: 589px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6555 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_pico.png" alt="pi pico python" width="589" height="508" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_pico.png 589w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_pico-300x259.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_pico-150x129.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_pico-585x505.png 585w" sizes="auto, (max-width: 589px) 100vw, 589px" /><figcaption id="caption-attachment-6555" class="wp-caption-text">Seleziona interprete micropython per pi pico</figcaption></figure>
<figure id="attachment_6554" aria-describedby="caption-attachment-6554" style="width: 589px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="wp-image-6554 size-full" src="https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_com.png" alt="com interptere" width="589" height="508" srcset="https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_com.png 589w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_com-300x259.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_com-150x129.png 150w, https://logicaprogrammabile.it/wp-content/uploads/2021/01/interprete_com-585x505.png 585w" sizes="auto, (max-width: 589px) 100vw, 589px" /><figcaption id="caption-attachment-6554" class="wp-caption-text">Seleziona porta Pi Pico</figcaption></figure>
<p>Nel prossimo articolo vedremmo come caricare il primo programma sulla Pi Pico</p>
<p>The post <a href="https://logicaprogrammabile.it/programmare-configurare-raspberry-pi-pico-micropython/">Programmare la Raspberry Pi Pico con MicroPython</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/programmare-configurare-raspberry-pi-pico-micropython/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Leggi subito il manuale della nuova Raspberry Pi Camera</title>
		<link>https://logicaprogrammabile.it/leggi-subito-il-manuale-della-nuova-raspberry-pi-camera/</link>
					<comments>https://logicaprogrammabile.it/leggi-subito-il-manuale-della-nuova-raspberry-pi-camera/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Sat, 02 May 2020 20:27:11 +0000</pubDate>
				<category><![CDATA[Notizie]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6327</guid>

					<description><![CDATA[<p>The Official Raspberry Pi Camera Guide Dopo l&#8217;annuncio della disponibilità di un nuovo modulo camera ad alta definizione per le schede Raspberry Pi non poteva mancare un utile guida per principianti che mostra come installare e utilizzare questo nuovo dispositivo. Il libro, da ben 132...</p>
<p>The post <a href="https://logicaprogrammabile.it/leggi-subito-il-manuale-della-nuova-raspberry-pi-camera/">Leggi subito il manuale della nuova Raspberry Pi Camera</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>The Official Raspberry Pi Camera Guide</h1>
<a href="https://logicaprogrammabile.it/camera-alta-qualita-raspberry-pi/">Dopo l&#8217;annuncio</a> della disponibilità di un nuovo modulo camera ad alta definizione per le schede Raspberry Pi non poteva mancare un utile guida per principianti che mostra come installare e utilizzare questo nuovo dispositivo.

Il libro, da ben <strong>132 pagine</strong>, spiega in modo dettagliato come configurare il <strong>modulo camera</strong>, come montare le lenti e come iniziare a scattare fotografie e produrre video.

<img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6339" src="https://logicaprogrammabile.it/wp-content/uploads/2020/05/raspberry_guide_1.jpg" alt="camera guide official for raspberry pi" width="700" height="388" srcset="https://logicaprogrammabile.it/wp-content/uploads/2020/05/raspberry_guide_1.jpg 700w, https://logicaprogrammabile.it/wp-content/uploads/2020/05/raspberry_guide_1-300x166.jpg 300w, https://logicaprogrammabile.it/wp-content/uploads/2020/05/raspberry_guide_1-150x83.jpg 150w, https://logicaprogrammabile.it/wp-content/uploads/2020/05/raspberry_guide_1-585x324.jpg 585w" sizes="auto, (max-width: 700px) 100vw, 700px" />

Nel libro troverete le istruzioni da usare direttamente sul <strong>Terminale.</strong> Troverete anche come utilizzare <strong>Python</strong> e la libreria <strong>picamera</strong> per sviluppare il proprio programma.

Nel libro sono anche disponibili interessanti progetti pratici da cui prendere spunto per poi realizzare le nostre applicazioni.

Il <a href="https://store.rpipress.cc/products/the-official-raspberry-pi-camera-guide">libro viene venduto</a> ad un prezzo di 10 sterline ma è anche possibili ottenere la versione <a href="https://magpi.raspberrypi.org/books/camera-guide">gratuita in pdf</a>.

&nbsp;

&nbsp;

<!-- /wp:post-content --><p>The post <a href="https://logicaprogrammabile.it/leggi-subito-il-manuale-della-nuova-raspberry-pi-camera/">Leggi subito il manuale della nuova Raspberry Pi Camera</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/leggi-subito-il-manuale-della-nuova-raspberry-pi-camera/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Finalmente una camera hq per Raspberry Pi</title>
		<link>https://logicaprogrammabile.it/camera-alta-qualita-raspberry-pi/</link>
					<comments>https://logicaprogrammabile.it/camera-alta-qualita-raspberry-pi/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Fri, 01 May 2020 11:30:13 +0000</pubDate>
				<category><![CDATA[Notizie]]></category>
		<category><![CDATA[camera]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=6262</guid>

					<description><![CDATA[<p>Raspberry Pi high quality camera Sul sito Raspberry Pi è stato da poco annunciato il nuovo modulo camera da ben 12,3 mega pixel, con la possibilità di utilizzare lenti intercambiabili. Questo nuovo dispositivo permette di migliorare la qualità di tutti i progetti esistenti e di...</p>
<p>The post <a href="https://logicaprogrammabile.it/camera-alta-qualita-raspberry-pi/">Finalmente una camera hq per Raspberry Pi</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Raspberry Pi high quality camera</h1>
<p>Sul sito <strong>Raspberry Pi</strong> è stato da poco annunciato il nuovo <strong>modulo camera</strong> da ben <strong>12,3 mega pixel</strong>, con la possibilità di utilizzare <strong>lenti intercambiabili</strong>. Questo nuovo dispositivo permette di migliorare la qualità di tutti i progetti esistenti e di ampliarne le caratteristiche e le funzionalità. <br />Oltre ad aver incrementato la risoluzione è ora possibile avere la regolazione del fuoco utilizzando le lenti intercambiabili.</p>
<figure style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" src="https://www.raspberrypi.org/app/uploads/2020/04/FULL-KIT-1-500x375.jpg" alt="" width="500" height="375" /><figcaption class="wp-caption-text">fonte Raspberry Pi fundation</figcaption></figure>
<p>Le caratteristiche del nuovo modulo camera sono le seguenti:</p>
<ul>
<li>sensore Sony IMX477 da 12.3 Mpixel</li>
<li>dimensione dei pixel 1.55um x 1.55um</li>
<li>diagonale del sensore 7.9mm</li>
<li>retroilluminazione del sensore per una maggiore sensibilità</li>
<li>supporta lenti CS-mount e C-mount</li>
<li>adattatore integrato per montaggio su cavalletto</li>
</ul>
<p>Sicuramente il consiglio è quello di abbinare questa nuova camera con il <strong>Raspberry Pi 4</strong> (versione con almeno 2GB di ram). </p>
<p>Solo il modulo camera si attesta a circa 55€, mentre la lente da 6mm (wide lens) costa intorno ai 30€ e la lente da 16mm (telephoto lens) si attesta intorno ai 58€.</p>
<p>Per il momento non è prevista una versione ir, ma credo che sarà possibile aggiungere dei filtri.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/camera-alta-qualita-raspberry-pi/">Finalmente una camera hq per Raspberry Pi</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/camera-alta-qualita-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Installare Arduino sul Raspberry PI</title>
		<link>https://logicaprogrammabile.it/installare-arduino-sul-raspberry-pi/</link>
					<comments>https://logicaprogrammabile.it/installare-arduino-sul-raspberry-pi/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Mon, 11 Feb 2019 07:00:38 +0000</pubDate>
				<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Installazione]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=5953</guid>

					<description><![CDATA[<p>Come programmare schede Arduino usando un Raspberry PI E&#8217; da diverso tempo che uso un Raspberry Pi come computer per navigare su internet e per imparare a programmare in Python. Con poche decine di euro è possibile creare il proprio desktop replacement. Anche se le...</p>
<p>The post <a href="https://logicaprogrammabile.it/installare-arduino-sul-raspberry-pi/">Installare Arduino sul Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Come programmare schede Arduino usando un Raspberry PI</h1>
<p>E&#8217; da diverso tempo che uso un <strong>Raspberry Pi</strong> come computer per navigare su internet e per imparare a programmare in <a href="https://www.python.org/"><strong>Python</strong></a>. Con poche decine di euro è possibile creare il proprio desktop replacement.</p>
<p>Anche se le prestazioni non sono entusiasmanti possiamo utilizzare questa scheda come piccolo laboratorio di sviluppo. Nonostante la presenza di diverse linee gpio potremmo avere comunque l&#8217;esigenza di continuare ad utilizzare le schede <strong>Arduino</strong>, quindi perchè non utilizzare il <strong>Raspberry Pi</strong> per programmarle?</p>
<p><span id="more-5953"></span></p>
<h3>Installare l&#8217;Arduino IDE</h3>
<p>La prima cosa da effettuare è quella di scaricare dal sito ufficiale <a href="http://www.arduino.cc/">Arduino</a> il software dell&#8217;ide per piattaforma linux arm. Una volta ottenuto il pacchetto in formato compresso dobbiamo scompattarlo eseguendo il commando seguente</p>
<pre>tar Jxvf arduino-1.8.8-linuxarm.tar.xz</pre>
<p>Verrà creata automaticamente la cartella <strong>arduino-1.8.8</strong> nella stessa directory dove abbiamo salvato il file <strong>arduino-1.8.8-linuxarm.tar.xz</strong></p>
<p>[the_ad id=&#8221;6199&#8243;]</p>
<p>Ora dentro la cartella <strong>arduino-1.8.8</strong> ci sarà il file di installazione install.sh. per eseguirlo dovremmo digitare quanto segue:</p>
<pre>./arduino-linux-setup.sh pi</pre>
<p>Attendiamo qualche istante finché il pacchetto software non viene installato correttamente sul nostro Raspberry Pi.</p>
<p>Ultimata l&#8217;installazione viene richiesto il riavvio del sistema operativo.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6040" src="https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoInstalling.png" alt="Installazione di arduino su raspberrry pi" width="787" height="676" srcset="https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoInstalling.png 787w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoInstalling-300x258.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoInstalling-768x660.png 768w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoInstalling-585x502.png 585w" sizes="auto, (max-width: 787px) 100vw, 787px" /></p>
<p>Durante l&#8217;installazione viene creata una voce di menu come potete osservare dalla figura seguente.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6041" src="https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoMenu.png" alt="Menu arduino su raspberry pi" width="552" height="742" srcset="https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoMenu.png 552w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoMenu-223x300.png 223w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoMenu-110x147.png 110w" sizes="auto, (max-width: 552px) 100vw, 552px" /></p>
<h3>Collaudo</h3>
<p>Ora che tutto è stato installato possiamo esegure subito una prova per  verificare se le nostre schede Arduino possano essere programmata attraverso il Raspberry pi.</p>
<p>Colleghiamo alla porta usb del Raspberry Pi una <strong>Arduino UNO</strong>. Avviamo ora l&#8217;Arduino IDE.<br />
Se tutto funziona correttamente nella voce di menu Strumenti-&gt;Porta dovremmo osservare la presenza della scheda Arduino UNO e della relativa porta di comunicazione, come nella figura seguente:</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-6042" src="https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoPort.png" alt="Arduino porta di comunicazione" width="619" height="602" srcset="https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoPort.png 619w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoPort-300x292.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2019/02/ArduinoPort-585x569.png 585w" sizes="auto, (max-width: 619px) 100vw, 619px" /></p>
<p>Dal menu <strong>file-&gt;esempi-&gt;01 Basics</strong> carichiamo il classico sckecth <strong>Blink</strong>, ora dal menu <strong>Sketch</strong> clicchiamo sulla voce <strong>Carica</strong>. Se tutto è andato a buon fine lo sketch verrà caricato correttamente sulla scheda <strong>UNO</strong>.</p>
<p>The post <a href="https://logicaprogrammabile.it/installare-arduino-sul-raspberry-pi/">Installare Arduino sul Raspberry PI</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/installare-arduino-sul-raspberry-pi/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Ecco la nuova Raspberry Pi 3 model A+</title>
		<link>https://logicaprogrammabile.it/ecco-la-nuova-raspberry-pi-3-model-a/</link>
					<comments>https://logicaprogrammabile.it/ecco-la-nuova-raspberry-pi-3-model-a/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Thu, 15 Nov 2018 19:41:08 +0000</pubDate>
				<category><![CDATA[Notizie]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=5925</guid>

					<description><![CDATA[<p>L&#8217;ultima scheda della Raspberry Pi Foundation Oggi, a gran richiesta degli utenti, viene annunciata la Raspberry Pi 3 model A+. A quanto pare questa sarà l&#8217;ultima scheda che verrà progettata dalla Raspberry Pi Foundation in quanto, nel futuro prossimo, l&#8217;architettura di questi dispositivi dovrebbe cambiare...</p>
<p>The post <a href="https://logicaprogrammabile.it/ecco-la-nuova-raspberry-pi-3-model-a/">Ecco la nuova Raspberry Pi 3 model A+</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>L&#8217;ultima scheda della Raspberry Pi Foundation</h1>
<p>Oggi, a gran richiesta degli utenti, viene annunciata la<a href="https://www.raspberrypi.org/products/raspberry-pi-3-model-a-plus/"><strong> Raspberry Pi 3 model A+</strong></a>. A quanto pare questa sarà l&#8217;ultima scheda che verrà progettata dalla <a href="https://www.raspberrypi.org/about/"><strong>Raspberry Pi Foundation</strong></a> in quanto, nel futuro prossimo, l&#8217;architettura di questi dispositivi dovrebbe cambiare sensibilmente rispetto a quanto utilizzato oggi.</p>
<p><figure id="attachment_5929" aria-describedby="caption-attachment-5929" style="width: 500px" class="wp-caption aligncenter"><img loading="lazy" decoding="async" class="size-full wp-image-5929" src="https://logicaprogrammabile.it/wp-content/uploads/2018/11/3A2-1-500x332.jpg" alt="Raspberry pi 3 model A+ " width="500" height="332" srcset="https://logicaprogrammabile.it/wp-content/uploads/2018/11/3A2-1-500x332.jpg 500w, https://logicaprogrammabile.it/wp-content/uploads/2018/11/3A2-1-500x332-300x199.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /><figcaption id="caption-attachment-5929" class="wp-caption-text">Raspberry pi 3 model A+ (fonte raspberrypi.org)</figcaption></figure></p>
<p><span id="more-5925"></span></p>
<p>La <strong>Raspberry Pi 3 model A+</strong> si pone a metà strada tra la <strong>Pi Zero</strong> e la <strong>Pi 3 Model B+</strong> infatti cerca di mantenere un form factor ridotto, (eliminando alcune porte usb e la porta ethernet) ma mantenendo lo stesso SoC del fratello maggiore. Forse l&#8217;unico peccato è la quantità di ram pari a 512MB.</p>
<p>Nella tabella seguente riassumo le caratteristiche delle ultime schede prodotte</p>
<table align="center">
<tbody>
<tr>
<td></td>
<td style="text-align: center;"><strong>Zero W</strong></td>
<td style="text-align: center;"><strong>PI 3 Model B+</strong></td>
<td style="text-align: center;"><strong>Pi 3 Model A+</strong></td>
</tr>
<tr>
<td><strong>CPU</strong></td>
<td>1GHz single-core CPU</td>
<td>Quad Core Broadcom BCM2837B0,Cortex-A53(ARMv8) 64-bit SoC@ 1.4GHz</td>
<td>Quad Core Broadcom BCM2837B0,Cortex-A53(ARMv8) 64-bit SoC@ 1.4GHz</td>
</tr>
<tr>
<td><strong>RAM</strong></td>
<td>512MB RAM</td>
<td>1GB LPDDR2 SDRAM</td>
<td>512MB LPDDR2 SDRAM</td>
</tr>
<tr>
<td><strong>HDMI</strong></td>
<td>Mini HDMI port</td>
<td>Full size HDMI</td>
<td>Full size HDMI</td>
</tr>
<tr>
<td><strong>IO Port</strong></td>
<td>40-pin extended GPIO</td>
<td>40-pin extended GPIO</td>
<td>40-pin extended GPIO</td>
</tr>
<tr>
<td><strong>Connec-</strong><br />
<strong>tivity</strong></td>
<td>
<ul>
<li>802.11 b/g/n wireless LAN</li>
<li>Bluetooth 4.1</li>
<li>Bluetooth Low Energy (BLE)</li>
</ul>
</td>
<td>
<ul>
<li>2.4GHz and 5GHz IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2, BLE</li>
<li>Gigabit Ethernet over USB 2.0 (maximum throughput 300 Mbps)</li>
</ul>
</td>
<td>
<ul>
<li>2.4GHz and 5GHz<br />
IEEE 802.11.b/g/n/ac wireless LAN, Bluetooth 4.2/BLE</li>
<li></li>
</ul>
</td>
</tr>
<tr>
<td><strong>USB Ports</strong></td>
<td>Micro USB On-The-Go ports</td>
<td>4 USB 2.0 ports</td>
<td>Single USB 2.0 ports</td>
</tr>
</tbody>
</table>
<p>La scheda è <a href="https://www.fcc.gov/">certificata FCC</a>, permettendo di avere un significativo risparmio nella certificazione dei propri prodotti basati su questa scheda.</p>
<p>La scheda è già disponibile all&#8217;acquisto presso i maggiori distributori. A dicembre sarà messo in vendita anche il case ufficiale come già fatto in precedenza con le schede Model B, B+ e Zero.</p>
<p>&nbsp;</p>
<p>The post <a href="https://logicaprogrammabile.it/ecco-la-nuova-raspberry-pi-3-model-a/">Ecco la nuova Raspberry Pi 3 model A+</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/ecco-la-nuova-raspberry-pi-3-model-a/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi come usare linee GPIO</title>
		<link>https://logicaprogrammabile.it/raspberry-pi-come-usare-linee-gpio/</link>
					<comments>https://logicaprogrammabile.it/raspberry-pi-come-usare-linee-gpio/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Fri, 05 Oct 2018 05:00:13 +0000</pubDate>
				<category><![CDATA[Tutorial Raspberry PI]]></category>
		<category><![CDATA[GPIO]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=5850</guid>

					<description><![CDATA[<p>Gestire linee gpio sul Raspberry pi Sapiamo che le schede Raspberry Pi offrono un panorama di impiego molto ampio, grazie anche alla presenza di un connettore maschio a 40 pin (Raspberry Pi 1, 2, 3, Zero) che interfaccia la scheda a diverse tipologie di circuiti...</p>
<p>The post <a href="https://logicaprogrammabile.it/raspberry-pi-come-usare-linee-gpio/">Raspberry Pi come usare linee GPIO</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h1 class="wp-block-heading">Gestire linee gpio sul Raspberry pi</h1>



<p>Sapiamo che le schede <a href="https://www.raspberrypi.org/">Raspberry Pi</a> offrono un panorama di impiego molto ampio, grazie anche alla presenza di un connettore maschio a <strong>40 pin</strong> (<strong>Raspberry Pi</strong> <a href="https://www.raspberrypi.org/products/raspberry-pi-1-model-b-plus/">1</a>, <a href="https://www.raspberrypi.org/products/raspberry-pi-2-model-b/">2</a>, <a href="https://www.raspberrypi.org/products/raspberry-pi-3-model-b-plus/">3</a>, <a href="https://www.raspberrypi.org/products/raspberry-pi-zero-w/">Zero</a>) che interfaccia la scheda a diverse tipologie di circuiti elettronici. Questa possibilità è data da una serie di linee <strong>GPIO</strong> che possono essere programmate anche con <a href="https://www.python.org/">Python</a>.</p>



<h3 class="wp-block-heading">Cosa sono le linee GPIO</h3>



<p>Le linee GPIO (<a href="https://it.wikipedia.org/wiki/General_Purpose_Input/Output">general purpose input output</a>) sono dei collegamenti tra il processore e i pin del connettore della scheda. Queste linee possono essere programmate sia per funzionare come porte di ingresso sia come porte di uscita. Alcune di queste linee hanno delle funzionalità aggiuntive infatti possono essere configurate come linee UART, SPI o I2C.</p>



<h3 class="wp-block-heading">Pin function</h3>



<p>Per conoscere la posizione e la denominazione delle linee <strong>GPIO</strong> nel connettore a 40 pin del Raspberry Pi utilizzo il comando pinout. Apriamo il terminale LxTerminal e digitiamo il seguente comando:</p>



<pre class="wp-block-code"><code>$ pinout</code></pre>



<p>premiamo invio e dopo qualche istante avremo sul terminale la rappresentazione delle periferiche della scheda ed in particolare del connettore a 40 pin:</p>



<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="521" height="818" class="wp-image-5855 aligncenter" src="https://logicaprogrammabile.it/wp-content/uploads/2018/09/2018-09-25-135928_1280x1024_scrot.png" alt="" srcset="https://logicaprogrammabile.it/wp-content/uploads/2018/09/2018-09-25-135928_1280x1024_scrot.png 521w, https://logicaprogrammabile.it/wp-content/uploads/2018/09/2018-09-25-135928_1280x1024_scrot-191x300.png 191w" sizes="auto, (max-width: 521px) 100vw, 521px" /></figure>
</div>



<p>In verde sono elencate le linee GPIO, in grigio i pin collegati a GND, in rosso le linee di alimentazione a 5Vdc ed in celeste le linee di alimentazione a 3,3V</p>



<p>La programmazione delle porte IO può avvenire utilizzando diversi linguaggi di programmazione, ma naturalmente andremo ad utilizzare il linguaggio Python perché è quello che viene maggiormente usato su questa piattaforma (almeno credo!).</p>



<h3 class="wp-block-heading">Gestire le linee GPIO con Python</h3>



<h4 class="wp-block-heading">Configurare pin Gpio in uscita</h4>



<p>Per utilizzare le porte IO abbiamo a disposizione l&#8217;attributo <strong>GPIO</strong> del modulo <strong>RPi</strong>. Questo attributo mette a disposizione i metodi per definire una linea come ingresso o come uscita e ne permette di controllarne lo stato. Se è una linea di uscita è possibile porla a livello logico alto oppure basso, se è una linea di ingresso è possibile leggere il valore logico disponibile sul pin.</p>



<p>Per scrivere il programma <strong>Python</strong> usiamo <a href="https://thonny.org/">Thonny</a>, disponibile come software preinstallato nelle ultime versioni di <a href="https://www.raspberrypi.org/downloads/raspbian/">Raspbian</a>.</p>



<p>scriviamo la prima istruzione che definisce l&#8217;attributo GPIO</p>



<pre class="wp-block-code"><code>from RPi import GPIO</code></pre>



<p>L&#8217;istruzione seguente, invece, è necessaria per definire il modo di riferimento del pin. In pratica possiamo riferirci ad un pin tramite la numerazione del connettore (da 1 a 40) o tramite la numerazione del processore (ad esempio gpioxx). Usando l&#8217;istruzione seguente utilizzeremo la numerazione gpio del processore</p>



<pre class="wp-block-code"><code>GPIO.setmode(GPIO.BCM)</code></pre>



<p>quindi per definire il pin 40 (gpio21) come linea di uscita dovremmo scrivere la seguente istruzione:</p>



<pre class="wp-block-code"><code>GPIO.setup(21, GPIO.OUT)</code></pre>



<p>il metodo <strong>setup</strong> accetta come primo argomento il numero della linea <strong>gpio</strong>, in questo caso la 21, che corrisponde al pin 40. Se avessi usato questa istruzione per definire il riferimento ai pin:</p>



<pre class="wp-block-code"><code>GPIO.setmode(GPIO.BOARD)</code></pre>



<p>nel metodo setup avrei dovuto scrivere:</p>



<pre class="wp-block-code"><code>GPIO.setup(40, GPIO.OUT)</code></pre>



<p>le due istruzioni precedenti producono lo stesso risultato, ovvero definire il pin 40 (gpio21) come una uscita.</p>



<p>Una volta definito il pin come linea digitale di output possiamo gestirne lo stato con la seguente istruzione:</p>



<pre class="wp-block-code"><code>#uscita a livello logico alto
GPIO.output(21, GPIO.HIGH)
#uscita a livello logico basso
GPIO.output(21, GPIO.LOW)</code></pre>



<p>di seguito il codice completo:</p>



<pre class="wp-block-code"><code>from RPi import GPIO
import time

#tipo di riferimento, numerazione della cpu
GPIO.setmode(GPIO.BCM)

#imposto linea 21, pin 40, come uscita
GPIO.setup(21, GPIO.OUT)

#ciclo infinito
while (True):
    #metto la linea 21 alta
    GPIO.output(21, GPIO.HIGH)
    #attendo 1 secondo
    time.sleep(1)
    #metto la linea 21 bassa
    GPIO.output(21, GPIO.LOW)
    #attendo 1 secondo
    time.sleep(1)</code></pre>



<p>Di seguito il circuito uttizzato per verificare la corretta esecuzione del codice</p>



<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="611" height="419" class="wp-image-5890 aligncenter" src="https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberrypiLed.png" alt="linee gpio configurate come uscita" srcset="https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberrypiLed.png 611w, https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberrypiLed-300x206.png 300w, https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberrypiLed-585x401.png 585w" sizes="auto, (max-width: 611px) 100vw, 611px" /></figure>
</div>



<h4 class="wp-block-heading">Configurare pin Gpio in ingresso</h4>



<p>Allo stesso modo di come abbiamo configurato un pin in uscita possiamo utilizzare alcune semplici istruzioni per impostare un pin in ingresso. L&#8217;istruzione seguente configura la linea Gpio 20 (pin 38) come ingresso:</p>



<pre class="wp-block-code"><code>GPIO.setup(20, GPIO.IN)</code></pre>



<p>Per leggere il livello logico presente sul pin dobbiamo utilizzare la seguente istruzione</p>



<pre class="wp-block-code"><code>GPIO.input(20)</code></pre>



<p>Il seguente circuito permette di avere sul pin 38 (gpio20) un livello logico alto (+3.3Vdc) e premendo il pulsante un livello logico basso (0Vdc).</p>



<div class="wp-block-image">
<figure class="aligncenter"><img loading="lazy" decoding="async" width="500" height="360" class="wp-image-5892 aligncenter" src="https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberryPi_Read_Button.png" alt="linee gpio configurate come ingresso" srcset="https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberryPi_Read_Button.png 500w, https://logicaprogrammabile.it/wp-content/uploads/2018/10/RaspberryPi_Read_Button-300x216.png 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></figure>
</div>



<p>Il codice per verificare lo stato del pin è il seguente:</p>



<pre class="wp-block-code"><code>from RPi import GPIO
GPIO.setmode(GPIO.BCM)

GPIO.setup(20, GPIO.IN)

while (True):
    if GPIO.input(20)== False:
        print ("Pulsante premuto")</code></pre>



<p>Ogni volta che premeremmo il pulsante verrà printata la stringa &#8220;Pulsante premuto&#8221;.</p>



<p>Queste che abbiamo visto sono le istruzioni basilari che ci permettono di interfacciare il <strong>Raspberry Pi</strong> al mondo esterno utilizzando le linee <strong>GPIO</strong> come ingressi e uscite digitali.</p>
<p>The post <a href="https://logicaprogrammabile.it/raspberry-pi-come-usare-linee-gpio/">Raspberry Pi come usare linee GPIO</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/raspberry-pi-come-usare-linee-gpio/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry PI Compute module 3 CM3</title>
		<link>https://logicaprogrammabile.it/raspberry-pi-compute-module-3-cm3/</link>
					<comments>https://logicaprogrammabile.it/raspberry-pi-compute-module-3-cm3/#respond</comments>
		
		<dc:creator><![CDATA[Marco Lai]]></dc:creator>
		<pubDate>Fri, 20 Jan 2017 20:36:15 +0000</pubDate>
				<category><![CDATA[Notizie]]></category>
		<category><![CDATA[IOT]]></category>
		<category><![CDATA[raspberry]]></category>
		<guid isPermaLink="false">https://logicaprogrammabile.it/?p=5367</guid>

					<description><![CDATA[<p>Nuova versione della Compute Module Recentemente è stata presentata la versione 3 della Compute Module ispirata all&#8217;architettura della Raspberry PI 3. Questa scheda è pensata principalmente per un utilizzo industriale e per essere installata in sistemi embedeed. Questa soluzione basata sul processore Broadcom BCM2837 (1.2GHz,...</p>
<p>The post <a href="https://logicaprogrammabile.it/raspberry-pi-compute-module-3-cm3/">Raspberry PI Compute module 3 CM3</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></description>
										<content:encoded><![CDATA[<h1>Nuova versione della Compute Module</h1>
<p>Recentemente è stata presentata la versione 3 della <strong>Compute Module</strong> ispirata all&#8217;architettura della <strong>Raspberry PI 3</strong>. Questa scheda è pensata principalmente per un utilizzo industriale e per essere installata in sistemi embedeed. Questa soluzione basata sul processore <strong>Broadcom BCM2837</strong> (1.2GHz, 64bit, quad-core, 1GB Ram) permette di avere un modulo molto più performante del precedente (presentato nel 2014 e basato sul processore <strong>BCM2835</strong>) mantenendo, in gran parte, la retro compatibilità col <strong>Compute Module 1</strong>. La versione standard del <strong>CM3</strong> è dotata di un modulo di memoria <strong>eMMC da 4GB</strong> che permette di ospitare il sistema operativo mentre la versione Lite è sprovvista di tale memoria e quindi sarà necessaria una memoria SD esterna come avviene per la Raspberry PI 3.</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5444" src="https://logicaprogrammabile.it/wp-content/uploads/2017/01/Compute-Module-small-500x280.jpg" alt="Compute Module 3" width="500" height="280" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/01/Compute-Module-small-500x280.jpg 500w, https://logicaprogrammabile.it/wp-content/uploads/2017/01/Compute-Module-small-500x280-300x168.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<p>Per sviluppare il proprio prototipo è stata realizzata la carrier board<strong> Compute Module IO Board V3</strong> (CMIO3) che agevola la rapida prototipazione del progetto e di eseguire quindi i relativi test di funzionamento prima di spostare il <strong>Computer Module 3</strong> sul prodotto finale.</p>
<p><span id="more-5367"></span></p>
<p>Probabilmente la fondazione vuole ampliare la propria presenza sia in ambito industriale sia nel settore IoT, mercato in forte espansione dove tutte le grandi aziende stanno investendo le proprie risorse.<br />
Il <strong>Compute Module 3</strong> è molto compatto, le sue dimensioni sono quelle di una classica memoria DDR2 <strong>SoDIMM</strong>. Questo form factor permette l&#8217;installazione del modulo tramite un socket SoDIMM montato sul proprio pcb.</p>
<p>Per risparmiare spazio e per avere un costo molto inferiore alla <strong>Raspberry PI 3</strong>, nel modulo non sono stati implementati i circuiti wireless, ethernet e i vari connettori come HDMI, camera e DSI. Molti pin del SoC BCM2837 sono collegati direttamente ai pin del modulo SoDIMM. E&#8217; necessaria una certa accortezza nell&#8217;interfacciamento del modulo alla circuiteria esterna e nell&#8217;implementazione delle funzionalità wifi e ethernet.</p>
<p>Penso che il lavoro più arduo per la fondazione sia sicuramente garantire il massimo supporto verso questo prodotto e di rendere <strong>Raspbian</strong> sempre più stabile e performante con caratteristiche che si adattino alle esigenze del mercato industriale e <strong>IoT</strong>.</p>
<p>&nbsp;</p>
<p><img loading="lazy" decoding="async" class="aligncenter size-full wp-image-5446" src="https://logicaprogrammabile.it/wp-content/uploads/2017/01/Compute-Module-IO-Board-Mounted_Overhead-500x383.jpg" alt="Compute Module 3 IO board" width="500" height="383" srcset="https://logicaprogrammabile.it/wp-content/uploads/2017/01/Compute-Module-IO-Board-Mounted_Overhead-500x383.jpg 500w, https://logicaprogrammabile.it/wp-content/uploads/2017/01/Compute-Module-IO-Board-Mounted_Overhead-500x383-300x230.jpg 300w" sizes="auto, (max-width: 500px) 100vw, 500px" /></p>
<p>Il prezzo per la versione Standard sarà intorno ai 30€ mentre la versione Lite avrà un prezzo sui 25€.</p>
<p>The post <a href="https://logicaprogrammabile.it/raspberry-pi-compute-module-3-cm3/">Raspberry PI Compute module 3 CM3</a> appeared first on <a href="https://logicaprogrammabile.it">Esperimenti con logiche programmabili</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://logicaprogrammabile.it/raspberry-pi-compute-module-3-cm3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
