Postate qui domande o segnalate problemi / bug che riscontrate,
Raspberry PI2 e MCP3002
ho installato l'ultima immagine disponibile di SWPI (quella con whatsapp) su un PI2, collegato ai sensori PCE tramite il digitalizzatore in oggetto.
Mentre il tutto funzionava senza problemi su un RPI B+, con la versione 2 non va proprio nulla!
Ho provato a lanciare a mano il comando sensor_argent80422.py (da root) e non ottengo alcun output, nè con i sensori collegati, nè con la GPIO vuota.
Qualcuno ha qualche suggerimento da darmi? Esiste un modo per provare se la GPIO del mio PI funziona o magari è bruciata?
Grazie in anticipo
Si prega Accedi a partecipare alla conversazione.
- roberto2011
- Offline
- Moderatore
Hai provato ad attivare SPI e ic2 da raspi-config o manualmente
Sensori Davis +BME280 + Raspberry b+ webCam serrasanta.fleanet.it (Eremo di Serrasanta - Gualdo Tadino - 1.340 m s.l.m.)
Si prega Accedi a partecipare alla conversazione.
Si prega Accedi a partecipare alla conversazione.
prova a configurare a mano....
sudo nano /boot/config.txt
aggiungere in fondo queste due istruzioni
dtparam=i2c_arm=on
dtparam=spi=on
Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah
Si prega Accedi a partecipare alla conversazione.
Ho testato la funzionalità del GPIO installando pigpio ed utilizzando questo script apposito e sembra che la scheda sia a posto:
pi@swpi ~ $ ./gpiotest
This program checks the Pi's (user) gpios.
The program reads and writes all the gpios. Make sure NOTHING
is connected to the gpios during this test.
The program uses the pigpio daemon which must be running.
To start the daemon use the command sudo pigpiod.
Press the ENTER key to continue or ctrl-C to abort...
Testing...
Skipped non-user gpios: 0 1 28 29 30 31
Tested user gpios: 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Failed user gpios: None
Nessun altro ha un PI2 ed utilizza l'interfaccia GPIO? O al limite ha voglia di fare un test...
Si prega Accedi a partecipare alla conversazione.
Si prega Accedi a partecipare alla conversazione.
Ho provato anche un piccolo port-test in python che fa uso di quella libreria, mi sembra che vada tutto bene...
Se non sbaglio, la funzione sensor_argent lanciata da sola dovrebbe restituire, con niente collegato, le letture di vento 0 da W... invece non restituisce proprio un bel niente e non reagisce neanche al CTRL+C, bisogna killare python da un'altro terminale.
Allego il port-test, giusto per informazione:
#!/usr/bin/env python2.7
# demo of "gpio_function()" port test
# script by Alex Eames http://raspi.tv/?p=6805
import RPi.GPIO as GPIO
# Offer the user a choice of Pin or Port numbers and set numbering scheme accordingly
choice = raw_input("Type 1 for Pin numbers, anything else for BCM port numbers:\n")
if choice == "1":
GPIO.setmode(GPIO.BOARD)
ports = [3,5,7,8,10,11,12,13,15,16,18,19,21,22,23,24,26,29,31,32,33,35,36,37,38,40]
pin_type = "Pin"
else:
GPIO.setmode(GPIO.BCM)
ports = [2,3,4,17,27,22,10,9,11,5,6,13,19,26,14,15,18,23,24,25,8,7,12,16,20,21]
pin_type = "Port"
print "%s mode selected..." % pin_type
# Using a dictionary as a lookup table to give a name to gpio_function() return code
port_use = {0:"GPIO.OUT", 1:"GPIO.IN",40:"GPIO.SERIAL",41:"GPIO.SPI",42:"GPIO.I2C",
43:"GPIO.HARD_PWM", -1:"GPIO.UNKNOWN"}
# loop through the list of ports/pins querying and displaying the status of each
for port in ports:
usage = GPIO.gpio_function(port)
print "%s %d status: %s" % (pin_type, port, port_use[usage])
Si prega Accedi a partecipare alla conversazione.
Si prega Accedi a partecipare alla conversazione.
Adesso non restituisce proprio un bel niente, ho provato a lanciare anche il sensore nevio, stesso risultato.
Esiste un modo di lanciare la funzione in modalità "debug", per vedere come e dove si blocca?
Si prega Accedi a partecipare alla conversazione.
TT
Si prega Accedi a partecipare alla conversazione.
(ho dato per scontato che la connessione tra mcp3002 e GPIO sia la solita, mi sbaglio?)
edit: ho provato la funzione sensor_argent80422.py con pdb.py, sembra che si blocchi al punto
dir = ss.GetCurretWindDir()
Si prega Accedi a partecipare alla conversazione.
Si prega Accedi a partecipare alla conversazione.
Hai provato ?
TT
Si prega Accedi a partecipare alla conversazione.
In ogni caso, altre applicazioni (sia in bash che in C che in python) riescono in qualche modo a comunicare con le porte del GPIO, quindi direi che sia decisamente abilitato...
Ho ricontrollato la documentazione relativa al pinout, i pin in uso non sembrano aver cambiato funzione, almeno rispetto al B+, sul quale la medesima configurazione non dava problemi...
Si prega Accedi a partecipare alla conversazione.
TT
Si prega Accedi a partecipare alla conversazione.
Se scagiono l'hardware, il passo successivo sarà provare a ricompilare mcp3002.so, magari avrò bisogno di due dritte
Si prega Accedi a partecipare alla conversazione.
make
Si prega Accedi a partecipare alla conversazione.
Ho provato a ricompilare il file con make, avendo cura di pulire prima la cartella, ma non è cambiato niente.
A questo punto Tony, tu hai la conoscenza ed io ho il PI2, se vuoi sono disponibile per fare qualsiasi prova ma da solo non so più dove andare
Si prega Accedi a partecipare alla conversazione.
Effettivamente non funzionava.
Ora la versione 01.23.71 dovrebbe essere ok. Per le vecchie immagini potrebbe essere necessario un :
rw
sudo pip install spidev --upgrade
ro
TT
Si prega Accedi a partecipare alla conversazione.
visto che ho una Rpi2 B ho voluto provare le nuove modifiche che hai fatto,
come sempre un'ottimo lavoro, in previsione di nuovi montaggi o sostituzioni delle 'vecchie' Rpi B.
Dopo aver fatto gli update indicati ho provato sia la configurazione con PCE collegata USB che i sensori montati sulla GPIO (BMP085/BME280, DHT11, Sensori Vento PCE).
Per quel che riguarda la PCE-USB nessun problema, invece con la versione solo sensori ho visto che non funziona più il DHT11 mentre gli altri sensori (BMP085 e BME280) vanno bene, anche lanciando il file test.py dalla cartella DHT ottengo questo
pi@swpi ~/swpi/DHT $ sudo python test.py
Traceback (most recent call last):
File "test.py", line 33, in <module>
output = subprocess.check_output(["./DHT"]);
File "/usr/lib/python2.7/subprocess.py", line 544, in check_output
raise CalledProcessError(retcode, cmd, output=output)
subprocess.CalledProcessError: Command '['./DHT']' returned non-zero exit status 1
pi@swpi ~/swpi/DHT $
Rimontando il tutto sul Rpi B torna tutto a funzionare.
Stazione Meteo: Raspberry PI B, Sensori Vento PCE, BME280, Camera PI, Web Cam HD, Huawei K3765, Pannello Fotovoltaico 50W - 1 Batteria 12V-40Ah
Si prega Accedi a partecipare alla conversazione.