Raspberry Pi Zero W

“Mai fidarsi di un computer che non si può gettare fuori da una finestra.”
Steve Wozniak

Preso dalla curiosità e convinto dal prezzo decisamente basso, ho acquistato dal un distributore francese Kubii un Raspberry Pi Zero W con alcuni cavi e scheda miniSd da 4GByte per il SO per 30€ spedizione inclusa (ho poi scoperto che su Kiwi-Electronics, distributore olandese, sarebbero bastati 11€ + spedizione…).

Arrivato dopo pochi giorni, sono rimasto decisamente stupito dalle dimensioni estremamente contenute di questo dispositivo, che oltre alla CPU da 1GHz (single-core, but who cares ?) e 512MB RAM, incorpora periferica una WiFi 802.11n e Bluetooth 4.0. On board, troviamo anche le porte Mini-HDMI, Micro-USB On-The-Go, Micro-USB, HAT-compatible 40-pin header, Composite video and reset headers e il CSI camera connector.

 

il pinout del connettore GPIO 40 pin è il seguente (direttamente dal sito RaspberryPI.org):

Installare il sistema operativo

Come prima cosa, è necessario installare il sistema operativo sulla miniSD (da 4GByte). Per i primi esperimenti ho deciso di partire con Raspbian, la distribuzione Debian-like sviluppata proprio per il Raspberry. Può essere scaricata, ovviamente gratis, da qui: Download Raspbian.

Una volta scompattato il pacchetto .zip, bisogna copiare l’immagine raw sulla miniSD. Su sistema operativo GNU/Linux (altri non ne prendo in considerazione…) c’è il comodissimo e potentissimo comando “dd“, da usare però con cautela onde evitare di scrivere dove non si desidera.

Procediamo quindi collegando la miniSD (eventualmente con un adattatore o lettore di schede di memoria) al nostro PC e consultare, da terminale con il comando “dmesg“, qual’è il device assegnato. Una volta identificato, ad esempio “sdc”, sempre da terminale lanciare il comando:

dd if=./2017-03-02-raspbian-jessie-lite.img   of=/dev/sdc bs=1024k

Breve spiegazione del comando “dd” (eventualmente potete consultare il manuale con “man dd“): “if” significa “input file“, ovvero la sorgente dei dati, “of” significa “output file“, ovvero dove scrivere questi dati. “bs” è “block size“, ovvero che la copia da if a of può avvenire per blocchi di dati, velocizzando il processo.

Una volta terminata la copia dei dati, la miniSD conterrà due partizioni, una “boot” da 63MByte FAT32 e una “root” da 3,6GByte in ExtFS.

A questo punto, se vogliamo accedere al nostro Raspberry via SSH connettendosi attraverso la porta USB…

Connettersi al Raspberry Pi via SSH attraverso la porta USB

Premetto, per correttezza, che le istruzioni seguenti le ho prese da questo articolo RASPBERRY PI ZERO – PROGRAMMING OVER USB!.

Dalla partizione “boot” apriamo il file config.txt con un qualsiasi editor di testo (è sufficiente “nano” o “pico”) e in coda aggiungiamo una nuova riga:

dtoverlay=dwc2

salviamo e passiamo al file cmdline.txt, sempre nella stessa directory, accodando all’unica riga, dopo “rootwait”:

modules-load=dwc2,g_ether

ATTENZIONE: non aggiungere ulteriori righe !

Salviamo e diciamo al sistema di lanciare il demone SSHd al boot, creando un file “ssh” vuoto sempre dentro la partizione “boot“:

touch ssh

passiamo a configurare la rete, per dire al sistema come configurare l’interfaccia di rete usb non appena sarà attiva.

Cambiamo partizione, andando in quella “di sistema” e, con il nostro editor preferito, aggiungiamo al file /etc/networks/interfaces le righe:

allow-hotplug usb0
auto usb0
iface usb0 inet static
  address 192.168.1.22
  netmask 255.255.255.0

Salviamo, inseriamo la microSD nello slot del Raspberry Pi Zero W ed accendiamolo, anche semplicemente collegandolo alla porta USB del nostro PC.

Dopo pochi secondi, nel nostro log di sistema troveremo:

usb 3-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 3-2: Product: RNDIS/Ethernet Gadget
usb 3-2: Manufacturer: Linux 4.4.50+ with 20980000.usb
cdc_subset: probe of 3-2:1.0 failed with error -22
cdc_ether 3-2:1.0 usb0: register 'cdc_ether' at usb-0000:00:14.0-2, CDC Ethernet Device, 6a:e6:72:b1:xx:xx
cdc_ether 3-2:1.0 enp0s20u2: renamed from usb0

e la nuova interfaccia di rete enp0s20u2 con IP 192.168.1.x assegnato dal server dhcp del Raspberry.

A questo punto possiamo collegarci via ssh al nostro Raspberry con l’utente “pi” e password “raspberry“:

ssh -l pi 192.168.1.22

Connettere il Raspberry Pi Zero W alla rete Wifi

Avendo a disposizione il modulo Wifi, è comodo poter connettere alla rete wifi casalinga il nostro Raspberry Pi Zero W. Per farlo, è sufficiente impostare wpa_supplicant aggiungendo al file /etc/wpa_supplicant/wpa_supplicant.conf la configurazione della nostra rete wifi, ad esempio:

network={
 ssid="[SSID della rete Wifi]"
 psk=[chiave wpa/wpa2]
 key_mgmt=WPA-PSK
 proto=WPA
}

Per sapere quali reti wifi abbiamo intorno, lanciate il comando “iwlist wlan0 scanning“.

Hardware

Per chi fosse interessato alle specifiche hardware dei dispositivi a bordo del Raspberry Pi Zero W (come qualcuno sa, non è del tutto open) …

pi@raspberrypi:~ $ sudo lshw
raspberrypi
description: Computer
product: Raspberry Pi Zero W Rev 1.1
serial: 00000000324xxxx
width: 32 bits
*-core
  description: Motherboard
  physical id: 0
  capabilities: brcm_bcm2708
*-memory
  description: System memory
  physical id: 0
  size: 434MiB
*-cpu
  physical id: 1
  bus info: cpu@0
  size: 1GHz
  capacity: 1GHz
  capabilities: cpufreq
*-usbhost
  product: DWC OTG Controller
  vendor: Linux 4.4.50+ dwc2_hsotg
  physical id: 1
  bus info: usb@1
  logical name: usb1
  version: 4.04
  capabilities: usb-2.00
  configuration: driver=hub slots=1 speed=480Mbit/s
*-network:0
  description: Wireless interface
  physical id: 2
  logical name: wlan0
  serial: b8:27:eb:1d:xxxxx
  capabilities: ethernet physical wireless
  configuration: broadcast=yes driver=brcmfmac driverversion=7.45.41.26 firmware=01-df77e4a7 ip=xxxx multicast=yes wireless=IEEE 802.11bgn
*-network:1
  description: Ethernet interface
  physical id: 3
  logical name: usb0
  serial: 1e:90:1c:00:xxxx
  capabilities: ethernet physical
  configuration: broadcast=yes driver=g_ether driverversion=29-May-2008 firmware=20980000.usb ip=xxx link=yes multicast=yes

Michele Pinassi

Blogger, appassionato di tecnologia, società e politica. Attualmente Responsabile del Sistema telefonico di Ateneo presso l'Università degli Studi di Siena ed esperto di sicurezza informatica nello staff del DPO. Utilizza quasi esclusivamente software libero.

Potrebbero interessarti anche...

Una risposta

  1. andrea ha detto:

    Ciao dovrei collegare una scheda hx711 su una raspberry pi zero w.
    assumendo che i pinout sono gli stessi per le diverse raspberry,
    ho trovato un post che dice di collegare hx711 al GPIO 30 e 31 della rasp.
    http://hivetool.org/w/index.php?title=Interface_the_HX711_to_Pi
    non riesco però a trovare corrispondenza tra i pinout della rasp e quelli indicati.
    puoi aiutarmi ?

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

%d blogger hanno fatto clic su Mi Piace per questo: