Differenze tra le versioni di "WindCar"

Da raspibo.
Jump to navigation Jump to search
(Creata pagina con 'La WindCar è un test per l'utilizzo di [https://www.acmesystems.it/arietta Arietta G25] di [https://www.acmesystems.it/ Acme Systems] per ripristinare un'automobilina radioco...')
 
Riga 9: Riga 9:
  
 
= Incontriamo l'Arietta G25 =
 
= Incontriamo l'Arietta G25 =
 +
 +
[[File:Arietta exposed signals.jpg]]
  
 
Arietta G25 come board è molto simile al Raspberry Pi. Le sue specifiche tecniche sono: CPU ARM 9 da 400 Mhz, 256 Mb RAM, lettore di micro SD, USB per alimentazione/comunicazione seriale. I livelli logici della GPIO sono a 3,3 V. Il sistema operativo consigliato è Debian Linux.
 
Arietta G25 come board è molto simile al Raspberry Pi. Le sue specifiche tecniche sono: CPU ARM 9 da 400 Mhz, 256 Mb RAM, lettore di micro SD, USB per alimentazione/comunicazione seriale. I livelli logici della GPIO sono a 3,3 V. Il sistema operativo consigliato è Debian Linux.
Riga 26: Riga 28:
 
La GPIO ha anche 3 USB, fate attenzione però che la USB A non è disponibile se si sta usando la comunicazione seriale via micro USB e la USB B non lo è se si sta usando il modulo WiFi.
 
La GPIO ha anche 3 USB, fate attenzione però che la USB A non è disponibile se si sta usando la comunicazione seriale via micro USB e la USB B non lo è se si sta usando il modulo WiFi.
  
La procedura per l'installazione del sistema operativo è uguale a quella del Raspberry Pi: si scarica l'[https://www.acmesystems.it/download_arietta immagine] e si flasha su una SD con dd.
+
La procedura per l'installazione del sistema operativo è uguale a quella del Raspberry Pi: si scarica l'[https://www.acmesystems.it/download_arietta immagine] e si flasha su una SD con dd. Ci saranno due partizioni: una conterrà /boot/ e l'altra tutto il resto del sistema operativo.
  
== Collegamento USB ==
+
== Collegarsi ==
 +
 
 +
=== Collegamento USB ===
  
 
Se non disponiamo di un collegamento WiFi o del modulo per collegarci, possiamo usare l'USB. Quando Arietta G25 viene collegata a un PC questa emula un'interfaccia LAN tramite USB (su Linux vedremo ad es. una porta chiamata usb0). Seguendo [https://www.acmesystems.it/arietta_getting_started queste istruzioni] lo farà in automatico, ma credo possa bastare assegnare 192.168.10.20 come IP a usb0 per poter avere un collegamento funzionante. Una volta stabilito il collegamento possiamo fare ssh.
 
Se non disponiamo di un collegamento WiFi o del modulo per collegarci, possiamo usare l'USB. Quando Arietta G25 viene collegata a un PC questa emula un'interfaccia LAN tramite USB (su Linux vedremo ad es. una porta chiamata usb0). Seguendo [https://www.acmesystems.it/arietta_getting_started queste istruzioni] lo farà in automatico, ma credo possa bastare assegnare 192.168.10.20 come IP a usb0 per poter avere un collegamento funzionante. Una volta stabilito il collegamento possiamo fare ssh.
  
== Collegamento WiFI ==
+
=== Collegamento WiFI ===
  
 
Se la nostra Arietta G25 ha il modulo WiFi allora possiamo collegarci configurando il file wpa_supplicant.conf in modo che si colleghi alla nostra rete. Questo file si trova dentro alla partizione boot. Nel caso abbiate problemi a collegarvi, potete usare wpa_cli.
 
Se la nostra Arietta G25 ha il modulo WiFi allora possiamo collegarci configurando il file wpa_supplicant.conf in modo che si colleghi alla nostra rete. Questo file si trova dentro alla partizione boot. Nel caso abbiate problemi a collegarvi, potete usare wpa_cli.
  
 
Se stiamo usando [https://www.acmesystems.it/bonjour bonjour] vedremo sulla nostra rete 'arietta.local' (o 'nomemacchina.local' in genere, se abbiamo cambiato nome all'Arietta G25).
 
Se stiamo usando [https://www.acmesystems.it/bonjour bonjour] vedremo sulla nostra rete 'arietta.local' (o 'nomemacchina.local' in genere, se abbiamo cambiato nome all'Arietta G25).
 +
 +
=== ssh or not ssh? ===
 +
 +
Sia tramite USB che WiFi, ad Arietta G25 è possibile collegarsi tramite ssh. Il nome utente è 'root' (per loggarvi come root) o 'acme' (per loggarvi come user) e la password 'acmesystems'. Se la tenete sempre accesa è '''caldamente consigliato''' cambiare queste impostazioni.
 +
Nel caso non vogliate usare ssh, Arietta G25 ha anche un editor via web utilizzabile via browser.
 +
 +
== Configurare il Pinout ==
 +
 +
Nel sito di [http://pinout.acmesystems.it/ pinout.acmesystem.it] nella tab ''Setup'' è possibile scegliere cosa attivare o disattivare. Nella tab ''Code examples'' ci sono alcuni esempi di come usare il pin in questione oppure una breve descrizione dello stesso. Purtroppo alcune pagine (relativi a I²C, 1Wire e convertitore A/D) sono mancanti e occorre cercare un po' nel [https://www.acmesystems.it sito ufficiale] per trovare della documentazione.
 +
Una volta
 +
 +
A noi servono due pin PWM, per la gestione del servo e della velocità del motore DC, la USB C e almeno tre pin digitali per il controllo del ponte H. Dopo aver configurato i pin andiamo su ''Generate the DTB'' e clicchiamo ''LAUNCH''. A questo punto possiamo scaricare il file e metterlo dentro a /boot/ su Arietta G25 rinominandolo ''acme-arietta.dtb''.
 +
 +
=== Leggere e scrivere un pin GPIO ===
 +
 +
Per accendere un pin occorre modificare alcuni file di device in /sys ad esempio questo codice accende e spegne il pin PC31 (il 32 fisico)
 +
 +
# echo 95 > /sys/class/gpio/export
 +
# echo out > /sys/class/gpio/pioC31/direction
 +
# echo 1 > /sys/class/gpio/pioC31/value
 +
# echo 0 > /sys/class/gpio/pioC31/value
 +
 +
Purtroppo non è molto chiaro, senza esempi, capire quale sia il numero da scrivere in /sys/class/gpio/export (è il Kernel ID, visualizzabile cliccando l'apposito checkbox), quindi è meglio sempre guardare nel [http://pinout.acmesystem.it sito] il codice esempio. Il file ''value'' abbastanza intuitivamente, stabilisce se il pin dev'essere acceso o spento.
 +
 +
Per leggere il valore di un pin digitale, il codice è:
 +
 +
# echo in > /sys/class/gpio/pioC31/direction
 +
# cat /sys/class/gpio/pioC31/value
 +
 +
Potete trovare più informazioni [https://www.acmesystems.it/gpio qui].
 +
 +
=== Scrivere un PWM ===
 +
 +
Per manovrare il servo e il ponte H ci serviranno due pin PWM. Il codice di esempio è questo:
 +
 +
# echo 0 > /sys/class/pwm/pwmchip0/export
 +
# echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period
 +
# echo 500000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
 +
# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable
 +
 +
Nella prima linea, il numero scritto nel file ''export'' è il numero della linea PWM (da 0 a 3). In ''period'' e ''duty_cycle'' sono scritti i tempi del periodo e di quanto questo periodo deve rimanere acceso espressi in nanosecondi. In questo caso su un periodo di 10 ms il pin sta acceso 5 ms e spento altri 5 ms. Enable accende il PWM quando è 1 e lo spegne quando è 0.
 +
 +
La pagina con la guida su come usare i PWM è stata rimossa e al momento l'unico documento trovabile è nella [https://webcache.googleusercontent.com/search?q=cache:qqqS7zsVEMsJ:https://www.acmesystems.it/pwm+&cd=1&hl=en&ct=clnk&gl=it cache di Google].

Versione delle 16:39, 22 lug 2017

La WindCar è un test per l'utilizzo di Arietta G25 di Acme Systems per ripristinare un'automobilina radiocomandata il cui controllo radio era andato perso o distrutto.

I componenti usati sono:

  • Arietta G25
  • Servo 9g
  • Ponte H
  • Powerbank
  • Webcam (di recupero da un vecchio EeePC)

Incontriamo l'Arietta G25

Arietta exposed signals.jpg

Arietta G25 come board è molto simile al Raspberry Pi. Le sue specifiche tecniche sono: CPU ARM 9 da 400 Mhz, 256 Mb RAM, lettore di micro SD, USB per alimentazione/comunicazione seriale. I livelli logici della GPIO sono a 3,3 V. Il sistema operativo consigliato è Debian Linux.

GPIO

La particolarità dell'Arietta G25 è che i pin della GPIO sono riprogrammabili in diverse configurazioni. Tramite questo sito è possibile configurare la GPIO. Normalmente i pin sono entrate/uscite digitali, ma alcuni di loro possono essere usati come:

  • porta seriale (fino a 3, con livelli logici a 3,3 V)
  • I²C (fino a 2)
  • SPI (fino a 4 device)
  • Convertitori Analogici Digitali (fino a 4)
  • PWM (fino a 4)
  • I2S per l'audio
  • bus 1 wire

La GPIO ha anche 3 USB, fate attenzione però che la USB A non è disponibile se si sta usando la comunicazione seriale via micro USB e la USB B non lo è se si sta usando il modulo WiFi.

La procedura per l'installazione del sistema operativo è uguale a quella del Raspberry Pi: si scarica l'immagine e si flasha su una SD con dd. Ci saranno due partizioni: una conterrà /boot/ e l'altra tutto il resto del sistema operativo.

Collegarsi

Collegamento USB

Se non disponiamo di un collegamento WiFi o del modulo per collegarci, possiamo usare l'USB. Quando Arietta G25 viene collegata a un PC questa emula un'interfaccia LAN tramite USB (su Linux vedremo ad es. una porta chiamata usb0). Seguendo queste istruzioni lo farà in automatico, ma credo possa bastare assegnare 192.168.10.20 come IP a usb0 per poter avere un collegamento funzionante. Una volta stabilito il collegamento possiamo fare ssh.

Collegamento WiFI

Se la nostra Arietta G25 ha il modulo WiFi allora possiamo collegarci configurando il file wpa_supplicant.conf in modo che si colleghi alla nostra rete. Questo file si trova dentro alla partizione boot. Nel caso abbiate problemi a collegarvi, potete usare wpa_cli.

Se stiamo usando bonjour vedremo sulla nostra rete 'arietta.local' (o 'nomemacchina.local' in genere, se abbiamo cambiato nome all'Arietta G25).

ssh or not ssh?

Sia tramite USB che WiFi, ad Arietta G25 è possibile collegarsi tramite ssh. Il nome utente è 'root' (per loggarvi come root) o 'acme' (per loggarvi come user) e la password 'acmesystems'. Se la tenete sempre accesa è caldamente consigliato cambiare queste impostazioni. Nel caso non vogliate usare ssh, Arietta G25 ha anche un editor via web utilizzabile via browser.

Configurare il Pinout

Nel sito di pinout.acmesystem.it nella tab Setup è possibile scegliere cosa attivare o disattivare. Nella tab Code examples ci sono alcuni esempi di come usare il pin in questione oppure una breve descrizione dello stesso. Purtroppo alcune pagine (relativi a I²C, 1Wire e convertitore A/D) sono mancanti e occorre cercare un po' nel sito ufficiale per trovare della documentazione. Una volta

A noi servono due pin PWM, per la gestione del servo e della velocità del motore DC, la USB C e almeno tre pin digitali per il controllo del ponte H. Dopo aver configurato i pin andiamo su Generate the DTB e clicchiamo LAUNCH. A questo punto possiamo scaricare il file e metterlo dentro a /boot/ su Arietta G25 rinominandolo acme-arietta.dtb.

Leggere e scrivere un pin GPIO

Per accendere un pin occorre modificare alcuni file di device in /sys ad esempio questo codice accende e spegne il pin PC31 (il 32 fisico)

# echo 95 > /sys/class/gpio/export
# echo out > /sys/class/gpio/pioC31/direction
# echo 1 > /sys/class/gpio/pioC31/value
# echo 0 > /sys/class/gpio/pioC31/value

Purtroppo non è molto chiaro, senza esempi, capire quale sia il numero da scrivere in /sys/class/gpio/export (è il Kernel ID, visualizzabile cliccando l'apposito checkbox), quindi è meglio sempre guardare nel sito il codice esempio. Il file value abbastanza intuitivamente, stabilisce se il pin dev'essere acceso o spento.

Per leggere il valore di un pin digitale, il codice è:

# echo in > /sys/class/gpio/pioC31/direction
# cat /sys/class/gpio/pioC31/value

Potete trovare più informazioni qui.

Scrivere un PWM

Per manovrare il servo e il ponte H ci serviranno due pin PWM. Il codice di esempio è questo:

# echo 0 > /sys/class/pwm/pwmchip0/export
# echo 1000000 > /sys/class/pwm/pwmchip0/pwm0/period
# echo 500000 > /sys/class/pwm/pwmchip0/pwm0/duty_cycle
# echo 1 > /sys/class/pwm/pwmchip0/pwm0/enable

Nella prima linea, il numero scritto nel file export è il numero della linea PWM (da 0 a 3). In period e duty_cycle sono scritti i tempi del periodo e di quanto questo periodo deve rimanere acceso espressi in nanosecondi. In questo caso su un periodo di 10 ms il pin sta acceso 5 ms e spento altri 5 ms. Enable accende il PWM quando è 1 e lo spegne quando è 0.

La pagina con la guida su come usare i PWM è stata rimossa e al momento l'unico documento trovabile è nella cache di Google.