ev3dev / ev3dev-lang-python

Pure python bindings for ev3dev
MIT License
422 stars 146 forks source link

Hello, I'm newbie with EV3DEV and I'm trying to make my absolute sensor working on my ev3. #774

Open dlech opened 2 years ago

dlech commented 2 years ago

Hello, I'm newbie with EV3DEV and I'm trying to make my absolute sensor working on my ev3. The sensor is recognized by the brick but i have a problem with loading the "sensor.lego" module. Here is the error message in vscode :

Traceback (most recent call last): File "/home/robot/vscode-hello-python-master/test mindstorm.py", line 5, in from sensor.lego import Sensor ImportError: No module named 'sensor'

Kernel 4.14.117-ev3dev-2.3.5-ev3

Can you help me please ?

Originally posted by @gaminoi in https://github.com/ev3dev/ev3dev-lang-python/issues/650#issuecomment-908660566

dlech commented 2 years ago

Can you share the full program?

gaminoi commented 2 years ago

Yes :

#!/usr/bin/env python3

import time
from sensor.lego import Sensor
from ev3dev2.port import LegoPort

def main():

    absport = LegoPort(address='ev3-ports:in2')
    absport.mode = 'nxt-i2c'
    abs = Sensor('ev3-ports:in2:i2c17')
    abs.mode = "TILT"
    print(abs.value(0))

    time.sleep(5)

if __name__ == '__main__':
    main()
dlech commented 2 years ago

The docs say that the Sensor class is in the ev3dev2.sensor module, not sensor.lego.

gaminoi commented 2 years ago

Your the best dlech ! It works fine if I remove the LegoPort configuration. Here is the final code :

#!/usr/bin/env python3
import time
import os
from ev3dev2.sensor import Sensor

def main():

    print('\x1Bc', end='') #RAZ écran
    os.system('setfont ' + 'Lat15-Terminus24x12') #Police

    abs = Sensor('ev3-ports:in2:i2c17')
    abs.mode = "TILT"
    for i in range(20):
        print(abs.value(0))
        time.sleep(0.1)

if __name__ == '__main__':
    main()`

Thank you !!

WesleyJ-128 commented 2 years ago

It sounds like you have solved the problem. Please close this issue if that is the case.