Nieuws:

Ubuntu-NL weer online!

Na een periode van technische problemen en een overbelaste server zijn we eindelijk weer bereikbaar.
Samen met Hobbynet, onze sponsor en hostingpartner, hebben we een oplossing gevonden zodat alles weer soepel draait.

Bedankt voor jullie geduld en begrip. We hopen nu weer verder te gaan waar we gebleven waren.

Het team van Ubuntu-NL

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: IndexError:list index out of range.  (gelezen 5376 keer)

IndexError:list index out of range.
« Gepost op: 2021/08/28, 15:35:43 »
Van een Arduino krijg ik volgende data binnen via de serial USB  in  een python programma


['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']


Python programma:

*****************************************************************
import serial
import time

arduinoData = serial.Serial('/dev/ttyUSB1', 115200)
time.sleep(1)

while True:
    while(not(arduinoData.inWaiting())):
        pass
    dataPacket = arduinoData.readline()     #formaat dataPacket:  b'255,255,255\r\n'
    dataPacket = str(dataPacket,'UTF-8')     #formaat dataPacket:  255,255,255
    splitPacket = dataPacket.split(',')             #formaat splitPacket: ['255', '255', '255\r\n']
    x = splitPacket[0]
    y = splitPacket[1]
    z = splitPacket[2]
    print(x)    <---------  :)               # 255 als resultaat
    print(y)    <---------  :(              # IndexError: list index out of range
    print(z)   <---------  :(               # IndexError: list index out of range
   
*****************************************************************

Kan splitPacket[1] en splitPacket[2] niet printen. ???
   
𝕸𝖎𝖘𝖈𝖊𝖗𝖊 𝖚𝖙𝖎𝖑𝖊 𝖉𝖚𝖑𝖈𝖎. (Ter leering ende vermaeck)
𝕹𝖎𝖑 𝖛𝖔𝖑𝖊𝖓𝖙𝖎𝖇𝖚𝖘 𝖆𝖗𝖉𝖚𝖚𝖒. (Niets is moeilijk voor hen die willen)
https://henk.oegema.com  (Op RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  24.04 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & TELLO drone (voor AI)

Re: IndexError:list index out of range.
« Reactie #1 Gepost op: 2021/08/28, 16:34:32 »
Van een Arduino krijg ik volgende data binnen via de serial USB  in  een python programma


['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']
['255', '255', '255\r\n']


Python programma:

*****************************************************************
import serial
import time

arduinoData = serial.Serial('/dev/ttyUSB1', 115200)
time.sleep(1)

while True:
    while(not(arduinoData.inWaiting())):
        pass
    dataPacket = arduinoData.readline()     #formaat dataPacket:  b'255,255,255\r\n'
    dataPacket = str(dataPacket,'UTF-8')     #formaat dataPacket:  255,255,255
    splitPacket = dataPacket.split(',')             #formaat splitPacket: ['255', '255', '255\r\n']
    x = splitPacket[0]
    y = splitPacket[1]
    z = splitPacket[2]
    print(x)    <---------  :)               # 255 als resultaat
    print(y)    <---------  :(              # IndexError: list index out of range
    print(z)   <---------  :(               # IndexError: list index out of range
   
*****************************************************************

Kan splitPacket[1] en splitPacket[2] niet printen. ???
   

De fout onstaal al bij:

y = splitPacket[1]
z = splitPacket[2]
𝕸𝖎𝖘𝖈𝖊𝖗𝖊 𝖚𝖙𝖎𝖑𝖊 𝖉𝖚𝖑𝖈𝖎. (Ter leering ende vermaeck)
𝕹𝖎𝖑 𝖛𝖔𝖑𝖊𝖓𝖙𝖎𝖇𝖚𝖘 𝖆𝖗𝖉𝖚𝖚𝖒. (Niets is moeilijk voor hen die willen)
https://henk.oegema.com  (Op RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  24.04 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & TELLO drone (voor AI)

Re: IndexError:list index out of range.
« Reactie #2 Gepost op: 2021/08/29, 13:17:50 »
Na 2 dagen zoeken, eindelijk de fout gevonden,  O0

Deze lijn (in de Arduino) was de oorzaak:
if (RGB_sensor.init())
  {
    Serial.println("Sensor Initialization Successful\n\r");
  }

Dit is natuurlijk geen getal. (int of float)   ;)

Na deze verandering:
if (RGB_sensor.init())
  {
    //Serial.println("Sensor Initialization Successful\n\r");
  }
werkte het wel.
𝕸𝖎𝖘𝖈𝖊𝖗𝖊 𝖚𝖙𝖎𝖑𝖊 𝖉𝖚𝖑𝖈𝖎. (Ter leering ende vermaeck)
𝕹𝖎𝖑 𝖛𝖔𝖑𝖊𝖓𝖙𝖎𝖇𝖚𝖘 𝖆𝖗𝖉𝖚𝖚𝖒. (Niets is moeilijk voor hen die willen)
https://henk.oegema.com  (Op RaspberryPi2)
Registered linux user 520520.  In gebruik: Ubuntu  24.04 Hobby's: Radio Amateur callsign: PA2HO.  Interesses: Raspberry Pi & Arduino & TELLO drone (voor AI)