Seite 1 von 1

No such file or directory: '/dev/ttyAMAO'

Verfasst: Freitag 22. Dezember 2023, 12:41
von Goldener Ritter
Moin,

Ich habe einen Mycobot 280 Pi und möchte den Roboter mit dem Pi verbinden. Rein technisch sind sie schon verbunden, da sie fest miteinander verbaut sind (https://shop.elephantrobotics.com/en-de ... tive-robot).

Wenn ich das Programm starte

Code: Alles auswählen

import time
from pymycobot.mycobot import MyCobot

mc = MyCobot('/dev/ttyAMAO',1000000)
mc.power_on()
mc.set_color(255,255,255)
kommt diese Fehlermeldung:

Code: Alles auswählen

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 322, in open
    self.fd = os.open(self.portstr, os.O_RDWR | os.O_NOCTTY | os.O_NONBLOCK)
FileNotFoundError: [Errno 2] No such file or directory: '/dev/ttyAMAO'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/Desktop/print.py", line 4, in <module>
    mc = MyCobot('/dev/ttyAMAO',1000000)
  File "/usr/local/lib/python3.9/dist-packages/pymycobot-3.3.3-py3.9.egg/pymycobot/mycobot.py", line 69, in __init__
    self._serial_port.open()
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 325, in open
    raise SerialException(msg.errno, "could not open port {}: {}".format(self._port, msg))
serial.serialutil.SerialException: [Errno 2] could not open port /dev/ttyAMAO: [Errno 2] No such file or directory: '/dev/ttyAMAO'
ich habe den Benutzer PI schon der Gruppe dialout zugeordnet.

ls -l /dev/tty*

Code: Alles auswählen

crw-rw-rw- 1 root tty       5,  0 Dec 21 19:00 /dev/tty
crw--w---- 1 root tty       4,  0 Dec 21 19:00 /dev/tty0
crw------- 1 pi   tty       4,  1 Dec 21 19:00 /dev/tty1
crw--w---- 1 root tty       4, 10 Dec 21 19:00 /dev/tty10
crw--w---- 1 root tty       4, 11 Dec 21 19:00 /dev/tty11
crw--w---- 1 root tty       4, 12 Dec 21 19:00 /dev/tty12
crw--w---- 1 root tty       4, 13 Dec 21 19:00 /dev/tty13
crw--w---- 1 root tty       4, 14 Dec 21 19:00 /dev/tty14
crw--w---- 1 root tty       4, 15 Dec 21 19:00 /dev/tty15
crw--w---- 1 root tty       4, 16 Dec 21 19:00 /dev/tty16
crw--w---- 1 root tty       4, 17 Dec 21 19:00 /dev/tty17
crw--w---- 1 root tty       4, 18 Dec 21 19:00 /dev/tty18
crw--w---- 1 root tty       4, 19 Dec 21 19:00 /dev/tty19
crw--w---- 1 root tty       4,  2 Dec 21 19:00 /dev/tty2
crw--w---- 1 root tty       4, 20 Dec 21 19:00 /dev/tty20
crw--w---- 1 root tty       4, 21 Dec 21 19:00 /dev/tty21
crw--w---- 1 root tty       4, 22 Dec 21 19:00 /dev/tty22
crw--w---- 1 root tty       4, 23 Dec 21 19:00 /dev/tty23
crw--w---- 1 root tty       4, 24 Dec 21 19:00 /dev/tty24
crw--w---- 1 root tty       4, 25 Dec 21 19:00 /dev/tty25
crw--w---- 1 root tty       4, 26 Dec 21 19:00 /dev/tty26
crw--w---- 1 root tty       4, 27 Dec 21 19:00 /dev/tty27
crw--w---- 1 root tty       4, 28 Dec 21 19:00 /dev/tty28
crw--w---- 1 root tty       4, 29 Dec 21 19:00 /dev/tty29
crw--w---- 1 root tty       4,  3 Dec 21 19:00 /dev/tty3
crw--w---- 1 root tty       4, 30 Dec 21 19:00 /dev/tty30
crw--w---- 1 root tty       4, 31 Dec 21 19:00 /dev/tty31
crw--w---- 1 root tty       4, 32 Dec 21 19:00 /dev/tty32
crw--w---- 1 root tty       4, 33 Dec 21 19:00 /dev/tty33
crw--w---- 1 root tty       4, 34 Dec 21 19:00 /dev/tty34
crw--w---- 1 root tty       4, 35 Dec 21 19:00 /dev/tty35
crw--w---- 1 root tty       4, 36 Dec 21 19:00 /dev/tty36
crw--w---- 1 root tty       4, 37 Dec 21 19:00 /dev/tty37
crw--w---- 1 root tty       4, 38 Dec 21 19:00 /dev/tty38
crw--w---- 1 root tty       4, 39 Dec 21 19:00 /dev/tty39
crw--w---- 1 root tty       4,  4 Dec 21 19:00 /dev/tty4
crw--w---- 1 root tty       4, 40 Dec 21 19:00 /dev/tty40
crw--w---- 1 root tty       4, 41 Dec 21 19:00 /dev/tty41
crw--w---- 1 root tty       4, 42 Dec 21 19:00 /dev/tty42
crw--w---- 1 root tty       4, 43 Dec 21 19:00 /dev/tty43
crw--w---- 1 root tty       4, 44 Dec 21 19:00 /dev/tty44
crw--w---- 1 root tty       4, 45 Dec 21 19:00 /dev/tty45
crw--w---- 1 root tty       4, 46 Dec 21 19:00 /dev/tty46
crw--w---- 1 root tty       4, 47 Dec 21 19:00 /dev/tty47
crw--w---- 1 root tty       4, 48 Dec 21 19:00 /dev/tty48
crw--w---- 1 root tty       4, 49 Dec 21 19:00 /dev/tty49
crw--w---- 1 root tty       4,  5 Dec 21 19:00 /dev/tty5
crw--w---- 1 root tty       4, 50 Dec 21 19:00 /dev/tty50
crw--w---- 1 root tty       4, 51 Dec 21 19:00 /dev/tty51
crw--w---- 1 root tty       4, 52 Dec 21 19:00 /dev/tty52
crw--w---- 1 root tty       4, 53 Dec 21 19:00 /dev/tty53
crw--w---- 1 root tty       4, 54 Dec 21 19:00 /dev/tty54
crw--w---- 1 root tty       4, 55 Dec 21 19:00 /dev/tty55
crw--w---- 1 root tty       4, 56 Dec 21 19:00 /dev/tty56
crw--w---- 1 root tty       4, 57 Dec 21 19:00 /dev/tty57
crw--w---- 1 root tty       4, 58 Dec 21 19:00 /dev/tty58
crw--w---- 1 root tty       4, 59 Dec 21 19:00 /dev/tty59
crw--w---- 1 root tty       4,  6 Dec 21 19:00 /dev/tty6
crw--w---- 1 root tty       4, 60 Dec 21 19:00 /dev/tty60
crw--w---- 1 root tty       4, 61 Dec 21 19:00 /dev/tty61
crw--w---- 1 root tty       4, 62 Dec 21 19:00 /dev/tty62
crw--w---- 1 root tty       4, 63 Dec 21 19:00 /dev/tty63
crw--w---- 1 root tty       4,  7 Dec 21 19:00 /dev/tty7
crw--w---- 1 root tty       4,  8 Dec 21 19:00 /dev/tty8
crw--w---- 1 root tty       4,  9 Dec 21 19:00 /dev/tty9
crw-rw---- 1 root dialout 204, 64 Dec 21 19:00 /dev/ttyAMA0
crw------- 1 root root      5,  3 Dec 21 19:00 /dev/ttyprintk
Habt ihr Tipps wie ich weiter vorgehen muss, um den Roboter anzusprechen?
Liebe Grüße der Goldene Ritter

Re: No such file or directory: '/dev/ttyAMAO'

Verfasst: Freitag 22. Dezember 2023, 13:34
von __deets__
Ich vermute ein Rechtsproblem, dein User muss in der Gruppe dialout sein. Zb mit “adduser <username> dialout”, und dann einfach neu starten & testen, dass der user drin ist, sollte mit dem “id” Kommando funktionieren. Dann nochmal probieren.

Re: No such file or directory: '/dev/ttyAMAO'

Verfasst: Freitag 22. Dezember 2023, 13:53
von __deets__
So, nochmal geschaut. Das Problem: der Dateiname endet auf O. Nicht 0 (null). Muss er aber. Das sind AMA0, AMA1, etc.

Re: No such file or directory: '/dev/ttyAMAO'

Verfasst: Samstag 23. Dezember 2023, 16:24
von __blackjack__
@Goldener Ritter: An der Stelle sollte man auch mal schauen ob man überall wo es relevant ist, eine Schriftart verwendet, bei der man das grosse O und die 0 optisch gut voneinander unterscheiden kann. Viele Schriftarten die in Editoren und IDEs verwendet werden, haben entweder einen Schrägstrich durch die 0 oder einen Punkt/Kreis oder ein Oval im Innenbereich der Null.

Das Problem wäre auch nicht aufgetreten wenn man die beiden Konstangen `PI_PORT` und `PI_BAUD` aus der Bibliothek verwendet.

`time` wird importiert, aber gar nicht verwendet‽

Das `MyCobot`-Objekt hat eine `close()`-Methode die man am Programmende aufrufen sollte. Dafür bietet sich die ``with``-Anweisung und `contextlib.closing()` an, weil das Objekt selbst leider kein Kontextmanager ist.

Namen sollten keine kryptischen Abkürzungen enthalten, oder gar nur daraus bestehen. Statt `mc` wäre etwas wie `robot` oder `robot_arm` sinnvoller als Name.

Ungetestet:

Code: Alles auswählen

#!/usr/bin/env python3
from contextlib import closing

from pymycobot import PI_BAUD, PI_PORT, MyCobot


def main():
    with closing(MyCobot(PI_PORT, PI_BAUD)) as robot:
        robot.power_on()
        robot.set_color(255, 255, 255)


if __name__ == "__main__":
    main()