Forum >> Principianti >> Il programma che gira su raspberry 3 non gira su Raspberry 2 B+

Pagina: 1

Buonasera, sempre lo stesso programma di prima
# 11/09/2016 : fa lampeggiare due led con le funzioni
#! /usr/bin/env python
#! python3 
# coding: utf-8

import RPi.GPIO as GPIO
import time

### Setup iniziale ###
GPIO.setmode(GPIO.BCM)
PIN5 = 5 ### Ma scegli quello che ti piace di più ###
PIN6 = 6
PIN7 = 7
PIN8 = 8
GPIO.setwarnings(False) ### Serve solo per non stampare i warning a schermo, un po' li odio lo confesso ###
GPIO.setup(PIN5,GPIO.OUT)
GPIO.setup(PIN6,GPIO.OUT)
GPIO.setup(PIN7,GPIO.OUT)
GPIO.setup(PIN8,GPIO.OUT)

def led5_on():
    GPIO.output(PIN5,True)
    time.sleep(1)
    
def led6_on():
    GPIO.output(PIN6,True)
    time.sleep(1)    
    
def led7_on():
    GPIO.output(PIN7,True)
    time.sleep(1)
    
def led8_on():
    GPIO.output(PIN8,True)
    time.sleep(1)

def led5_off():
    GPIO.output(PIN5,False)
    time.sleep(1)
    
def led6_off():
    GPIO.output(PIN6,False)
    time.sleep(1)
    
def led7_off():
    GPIO.output(PIN7,False)
    time.sleep(1)
    
def led8_off():  
    GPIO.output(PIN8,False)
    time.sleep(1)
    
### Accendi e spegni la lucetta finché non spari allo script ###
while True:
    
    led5_on()
    led6_on()
    led7_on()
    led8_on()

    led5_off()
    led6_off()
    led7_off()
    led8_off()

che su raspberry 3 funziona benissimo , sul raspberry 2B+ mi da un errore che per me non ha senso (in pratica non capisco cosa mi voglia dire l'interprete)
Allego la foto dell'errore x potervi mettere in condizione di darmi un consiglio.
Grazie
Alberto
-------------------
Io ignoro, quindi non so , ma vorrei sapere per poter fare
Allegati
Buonasera, sempre lo stesso programma di prima
# 11/09/2016 : fa lampeggiare due led con le funzioni
#! /usr/bin/env python
#! python3 
# coding: utf-8

snip
che su raspberry 3 funziona benissimo , sul raspberry 2B+ mi da un errore che per me non ha senso (in pratica non capisco cosa mi voglia dire l'interprete)
Allego la foto dell'errore x potervi mettere in condizione di darmi un consiglio.
Grazie
PEP 263 (all'URL indicato dal messaggio d'errore nel tuo screenshot) prescrive:

    To define a source code encoding, a magic comment must
    be placed into the source files either as first or second
    line in the file, such as:

          # coding=<encoding name>

evidentemente, la quarta riga non va bene.

THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Ok , potrebbe non piacergli la riga di definizione della codifica, ma io vorrei sapere se è un problema di versione Hardware del raspberry tra la 2B+ e la 3 ; visto che sulla 3 il programma funziona egregiamente.
Si da il caso che io debba sviluppare (cha parolone grosso) un programmino che giri sia sul 2 che sul 3 e che quindi mi sia necessario capire come poter fare un programma compatibile con entrambe le schede.
Grazie

Alberto
Alberto
-------------------
Io ignoro, quindi non so , ma vorrei sapere per poter fare
ma io vorrei sapere se è un problema di versione Hardware del raspberry tra la 2B+ e la 3 ; visto che sulla 3 il programma funziona egregiamente.
Alberto cosa intendi con questa frase? Non stai usando dell'hardware esterno che potrebbe essere compatibile o meno con versioni diverse del RPi, ma stai utilizzando la porta GPIO per accedere a dei PIN che poi si traduce nell'accensione/spegnimento di alcuni led.

Anche se la mappatura della porta GPIO tra le varie versioni è diversa, anche se a memoria forse non ci sono differenze tra la RPi 2B+ e RPi 3 (controlla non vorrei dire fesserie), tutto si traduce in un diverso accesso alle risorse e nulla più. Lo script in linea di massima funzionerà semplicemente mappando i diversi PIN.

Pensa che io lavoro spesso con versioni molto diverse di RPi, con la GPIO a 26 PIN non 40, e non ho grossi problemi di compatibilità.

Cya
Daniele, intendo dire che se io faccio un programma che funziona su raspberry 3 mi aspetto che funzioni anche sul raspberry 2b+ visto che il primo è l'erede del secondo; i pin sono gli stessi 40 pin....
Vorrei capire e adattare il programma x farlo funzionare.

La riga "4" incriminata riscontrata da un post precedente è inifluente perchè l'ho inserita nel tentativo di aggirare il problema ( potrebbe essere errata, e forse lo è .... ma anche senza il problema persiste).

Siccome so già che dovrò "operare con prodotti di entrambe le versioni vorrei capire che cosa manca x far girare il programma sul Raspi 2B+6.

Io chiedo a voi che ne sapete SICURAMENTE più di me .... cosa manca.

Grazie
------
Alberto
Io capisco che ci possano essere delle differenze hardware tra le scheda ma la versione software è stata installata dalla stessa immagine dallo stesso pc.... quindi dove potrebbe essere l'inghippo.
Già sono alle prime armi e già mi blocco su un problema "stupido" :-(
------
Alberto
La riga "4" incriminata riscontrata da un post precedente è inifluente perchè l'ho inserita nel tentativo di aggirare il problema ( potrebbe essere errata, e forse lo è .... ma anche senza il problema persiste).
THE 🍺-WARE LICENSE (Revision ㊷):
<㎝🐌🐍.🇮🇹> wrote this post. As long as you retain this notice you
can do whatever you want with this stuff. If we meet some day, and you
think this stuff is worth it, you can buy me a 🍺 in return. -- ㎝
Sicuramente, anche la lingua è un problema e comunque grazie di tutto.
Io sinceramente l'ho messo li perchè su un listato che avevo visto non era nelle prime 2/3 righe, perchè nelle prime 5/6 c'erano dei commenti (# .....) ; non ho pensato al fatto che la posizione facesse difetto.
Quindi mi confermi che le due release di scheda (2B+ e 3) vanno "programmate" con alcune differenze (che devo imparare !!)
Grazie Ancora

Alberto
------
Alberto
Salve, avendo (spero) recepito il suggerimento sulla posizione errata della riga con il coding, ho fatto lo spostamento nella prima riga ma il messaggio di errore è lo stesso del primo post; con la varianre che avendo cancellato una riga non è piu' alla 11 ma alla riga 10 (che corrisponde a PIN5=5).



# -*- coding: <ascii> -*-
#! python3 
# 11/09/2016 : fa lampeggiare due led con le funzioni

import RPi.GPIO as GPIO
import time

### Setup iniziale ###
GPIO.setmode(GPIO.BCM)
PIN5 = 5 ### Ma scegli quello che ti piace di più ###
PIN6 = 6
PIN7 = 7
PIN8 = 8
GPIO.setwarnings(False) ### Serve solo per non stampare i warning a schermo, un po' li odio lo confesso ###
GPIO.setup(PIN5,GPIO.OUT)
GPIO.setup(PIN6,GPIO.OUT)
GPIO.setup(PIN7,GPIO.OUT)
GPIO.setup(PIN8,GPIO.OUT)

def led5_on():
    GPIO.output(PIN5,True)
    time.sleep(1)
    
def led6_on():
    GPIO.output(PIN6,True)
    time.sleep(1)    
    
def led7_on():
    GPIO.output(PIN7,True)
    time.sleep(1)
    
def led8_on():
    GPIO.output(PIN8,True)
    time.sleep(1)

def led5_off():
    GPIO.output(PIN5,False)
    time.sleep(1)
    
def led6_off():
    GPIO.output(PIN6,False)
    time.sleep(1)
    
def led7_off():
    GPIO.output(PIN7,False)
    time.sleep(1)
    
def led8_off():  
    GPIO.output(PIN8,False)
    time.sleep(1)
    
### Accendi e spegni la lucetta finché non spari allo script ###
while True:
    
    led5_on()
    led6_on()
    led7_on()
    led8_on()

    led5_off()
    led6_off()
    led7_off()
    led8_off()

Grazie per l'attenzione

Alberto





------
Alberto
L'errore è un: Non-ASCII character, in particolare si tratta della é accentata.

I sorgenti andrebbero in primis scritti usando solo caratteri ASCII, codici da 0 a 127 di cui quelli visualizzabili vanno dal 32 al 126, questi insomma:
for n in range(32, 127): print chr(n),
Se proprio si vogliono usare altri caratteri sono da fare due cose:
- Impostare l'editor per salvare il testo con una codifica specifica, come utf-8.
- Indicare nel sorgente (con il commento nelle prime due righe) quale codifica si sta usando.

Se nel commento indichi ASCII, all'editor non specifichi nulla (per cui salva nel suo modo pedefinito che può variare da un sistema all'altro), e nel sorgente inserisci caratteri non ASCII, Python non sa più che pesci pigliare (e questo indipendentemente dal fatto che si stia lavorando su Raspi o su un PC, vale sempre).


--- Ultima modifica di Claudio_F in data 2016-09-24 08:56:21 ---
*** Il codice va evidenziato con il simbolo di fianco ai colori per non perdere l'indentazione ***


Pagina: 1



Esegui il login per scrivere una risposta.