Forum >Replies by Matha.Goram
userhead Matha.Goram
Replies (20)
  • You Reply:

    Further to my post above, if I pass the parameter “unihiker” for Board method as:

    Board("unihiker").begin()

     

    I get the following message:

    The selected development board is UNIHIKER

    The development board found is None

    The development board does not match !!!

     

    Why can't pinpong initialization constructor determine that the board is indeed UNIHIKER? Of course, I'm simply guessing in the dark.

  • You Reply:

    Yessir, you are correct again! My memory retention has become weak. I thought I did the Firmata upgrade (to get a simple Python script to detect ambient noise - worked successfully) but now I am back at the starting gate. I have to study the documentation more carefully. Thanks for your suggestion.

     

    Regards.

  • You Reply:

    Here's what I get:

     

    /usr/local/lib/python3.7/dist-packages/pinpong/base/FirmataExpress.UNIHIKER.3.7.bin
    stm32flash -w /usr/local/lib/python3.7/dist-packages/pinpong/base/FirmataExpress.UNIHIKER.3.7.bin -v -g 0x08000000 /dev/ttyS3
    stm32flash 0.5

    http://stm32flash.sourceforge.net/

    Using Parser : Raw BINARY
    Interface serial_posix: 57600 8E1
    Failed to init device.

    [37] Burn done
    selected -> board: UNIHIKER serial: /dev/ttyS3
    [10] Opening /dev/ttyS3
    [22] Arduino compatible device found and connected to /dev/ttyS3
    [40] Retrieving analog map...
    Traceback (most recent call last):
     File "./light_ambient.py", line 12, in <module>
       Board().begin()
     File "/usr/local/lib/python3.7/dist-packages/pinpong/board.py", line 1369, in begin
       self.board = pymata4.Pymata4(com_port=self.serial, arduino_wait=2, baud_rate=115200, name = self.boardname)
     File "/usr/local/lib/python3.7/dist-packages/pinpong/base/pymata4.py", line 396, in __init__
       raise RuntimeError('*** Analog map retrieval timed out. ***'
    RuntimeError: *** Analog map retrieval timed out. ***
    Do you have Arduino connectivity and do you have the correct Firmata sketch uploaded to the board?
    root@unihiker1:~/projects/sensors# 
     

    I "deactivated" conda. (IMHO, should've never installed conda for my YOLO “experiments” but that is a separate story). I “thought” that I had upgraded Firmata but now it seems that it is using the original one that was flashed during manufacturing. I will have to read the documentation carefully again and install the current one. Thanks.

     

    Regards.

     

  • You Reply:

    The above issue is owing to the use of an obsolete PinPong package. Now that I'm on pinpon-0.6.1, I get a new message:

     

    (base) root@unihiker1:~/# python
    Python 3.10.14 | packaged by conda-forge | (main, Mar 20 2024, 21:44:20) [GCC 12.3.0] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from pinpong.board import Board
    >>> Board().begin()
    Please connect the development board !!!
    Please connect the development board !!!
    Please connect the development board !!!
     

    However, the board is already connected to the desktop - currently running an SSH session. What else do I need to do? Thanks.

     

    Regards.

  • You Reply:

    In Arduino IDE 2.3.4, drill-down as follows: ToolsUSB CDC on BootEnabled. Cascade menu limited to specific boards.

  • You Reply:

    Peter, the forum administrator, was kind enough to provide some variations that will come in handy for PCBA work too.

  • You Reply:

    There is an ongoing competition, deadline Jan 12, to submit a model!

  • You Reply:

    Thank you for the reply.

     

    Would the General Availability of the firmware be announced through a broadcast message to UNIHIKER “fans” at the appropriate time?

     

    Regards.

  • You Reply:

    Update:

    The documentation at https://www.dfrobot.com/blog-13928.html at Step 5 Run the Python script states that the quick_start.py script (created at an earlier step) should be run. The image immediately following this statement illustrates the output from a script call test_onnx_bus.py.

     

    Also, there is some (minor difference, IMHO) between the statements in quick_start.py and the jameslahm/yolov10 example. The DFR statement is implicit for v10 while the equivalent statement at jameslahm website is syntactically different.

     

    In the DFR tutorial, the model loading is incomplete owing to the Illegal instruction message. It would be helpful if the person at DFR who wrote the tutorial could offer some guidance. Thanks.

     

    Regards.

     

    P.S.

    I'm curious about having to install huggingface but not importing it explicitly in the simple Python quick_start.py script, whereas jameslahm does it slightly differently:

    at https://huggingface.co/jameslahm/yolov10n

    Training and validation

    from ultralytics import YOLOv10

    model = YOLOv10.from_pretrained('jameslahm/yolov10n')
    # Training
    model.train(...)
    # after training, one can push to the hub
    model.push_to_hub("your-hf-username/yolov10-finetuned")

    # Validation
    model.val(...)

    Inference

    from ultralytics import YOLOv10

    model = YOLOv10.from_pretrained('jameslahm/yolov10n')
    source = 'http://images.cocodataset.org/val2017/000000039769.jpg'
    model.predict(source=source, save=True)

     

     

     

  • You Reply:

    RESOLVED:

     

    Callback differences between MQTT v3.1 and MQTT v5.0 caused the issue.

     

    These challenges owing to buster will persist, IMHO.

  • Topic: YOLO Issue
    You Reply:

    When I print(results), I don't see any value for bus (viz. 5) assigned to any attribute:

     

    [ultralytics.engine.results.Results object with attributes:


     

    boxes: ultralytics.engine.results.Boxes object

    keypoints: None

    keys: ['boxes']

    masks: None

    names: {0: 'person', 1: 'bicycle', 2: 'car', 3: 'motorcycle', 4: 'airplane', 5: 'bus', 6: 'train', 7: 'truck', 8: 'boat', 9: 'traffic light', 10: 'fire hydrant', 11: 'stop sign', 12: 'parking meter', 13: 'bench', 14: 'bird', 15: 'cat', 16: 'dog', 17: 'horse', 18: 'sheep', 19: 'cow', 20: 'elephant', 21: 'bear', 22: 'zebra', 23: 'giraffe', 24: 'backpack', 25: 'umbrella', 26: 'handbag', 27: 'tie', 28: 'suitcase', 29: 'frisbee', 30: 'skis', 31: 'snowboard', 32: 'sports ball', 33: 'kite', 34: 'baseball bat', 35: 'baseball glove', 36: 'skateboard', 37: 'surfboard', 38: 'tennis racket', 39: 'bottle', 40: 'wine glass', 41: 'cup', 42: 'fork', 43: 'knife', 44: 'spoon', 45: 'bowl', 46: 'banana', 47: 'apple', 48: 'sandwich', 49: 'orange', 50: 'broccoli', 51: 'carrot', 52: 'hot dog', 53: 'pizza', 54: 'donut', 55: 'cake', 56: 'chair', 57: 'couch', 58: 'potted plant', 59: 'bed', 60: 'dining table', 61: 'toilet', 62: 'tv', 63: 'laptop', 64: 'mouse', 65: 'remote', 66: 'keyboard', 67: 'cell phone', 68: 'microwave', 69: 'oven', 70: 'toaster', 71: 'sink', 72: 'refrigerator', 73: 'book', 74: 'clock', 75: 'vase', 76: 'scissors', 77: 'teddy bear', 78: 'hair drier', 79: 'toothbrush'}

    orig_img: array([[[119, 146, 172],

    [121, 148, 174],

    [122, 152, 177],

    ...,


     

    ...,

    [ 95, 85, 91],

    [ 96, 86, 92],

    [ 98, 88, 94]]], dtype=uint8)

    orig_shape: (1080, 810)

    path: '/root/opencv/bus.jpg'

    probs: None

    save_dir: None

    speed: {'preprocess': 94.56586837768555, 'inference': 3410.3922843933105, 'postprocess': 162.766695022583}]

  • You Reply:


  • You Reply:

    Hello!

     

    I posted a basic question on camera interface with OpenCV in another thread, which has not received any reply. Please pardon me for using this thread to seek another response.

     

    I noticed that the sample code uses OpenCV without any issue. I installed the OpenCV package. Furthermore, I can get the version number (in my case it is 4.6.0 - rather old but not an issue for my introductory purposes).

     

    However, I cannot get either cv2.VideoCapture (to read frames) or cv2.imshow() (to display frames) to work. Is there anything else that needs to be done for configuration other than to install the OpenCV package? Thanks.

     

    Regards.

  • You Reply:

    Hello @Lupin,

     

    Thanks for your detailed instructions. It seems that running Remote SSH requires PyCharm Professional. Is my understanding correct?

     

    Regards.

     

     

  • You Reply:

    Thanks, @LL, once again for coming to the rescue. Again, I didn't drill down the pages earlier because Firefox kept blinking the pages making it difficult to read the material. However, thanks to your guidance, I will be persistent and scroll down.

     

    The information on MQTT (and SMTP) at the link you provided is exactly what reassured me that I can leverage my code to test solutions quickly. Thanks.

     

    Regards.

  • You Reply:

    Thanks for your detailed reply. I guess I was too lazy to read the specs correctly. Your reply contains exactly the information that I need to proceed. The DFR0548 makes more sense to me. Appreciate it.

     

    It would be nice to get encoder output from the motors directly rather than from external sensors (from the wheels or auxiliary wheels with attachments) since the planned robots are small.  I may have to go this route but at least the DFR0548 is a good starting point. Anyway, please consider my inquiry as resolved.

     

    Regards.

  • You Reply:

    Use the following three commands in a terminal window (after you have successfully established network connectivity):

     

     timedatectl list-timezones

     sudo timedatectl set-timezone <choose from the list of the previous command>

     timedatectl
     

  • You Reply:

    Again, another hasty message on my part. After connecting via Wi-Fi, I no longer receive the above message. The current error message is:

    Err:5 http://httpredir.debian.org/debian buster-backports Release

    but this is for me to resolve. Thanks again for your understanding.

     

    Regards.

  • You Reply:

    Please disregard this message! In my haste, I did not visit the Network Settings page previously. I have done so now, and my Wi-Fi is up and running. Sorry for the false alarm. Thanks for your understanding.

     

    Regards.

  • You Reply:

    Hello @lupin,

     

    How did you enable your Wi-Fi? By default, I get the following:

    root@unihiker:~# ip a
    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
       link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
       inet 127.0.0.1/8 scope host lo
          valid_lft forever preferred_lft forever
       inet6 ::1/128 scope host 
          valid_lft forever preferred_lft forever
    2: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
       link/ether 00:e0:4c:84:34:77 brd ff:ff:ff:ff:ff:ff
    3: p2p0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
       link/ether 02:e0:4c:84:34:77 brd ff:ff:ff:ff:ff:ff
    4: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br0 state UP group default qlen 1000
       link/ether 00:e0:4c:9e:fe:c1 brd ff:ff:ff:ff:ff:ff
       inet6 fe80::2e0:4cff:fe9e:fec1/64 scope link 
          valid_lft forever preferred_lft forever
    5: usb1: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast master br0 state DOWN group default qlen 1000
       link/ether 00:e0:4c:9e:fe:c3 brd ff:ff:ff:ff:ff:ff
    6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
       link/ether 00:e0:4c:9e:fe:c1 brd ff:ff:ff:ff:ff:ff
       inet 10.1.2.3/24 brd 10.1.2.255 scope global br0
          valid_lft forever preferred_lft forever
       inet6 fe80::2e0:4cff:fe9e:fec1/64 scope link 
          valid_lft forever preferred_lft forever
    root@unihiker:~# 
     

    Don't mean to post a redundant question (because I just inquired about gateway address assignment) but what made UNIHIKER receive 10.0.0.14 for your Wi-Fi? Thanks.

     

    Regards.

     

    P.S.

    I do have a dual band Wi-Fi Access point actively serving other clients in my farm.