|
Edited by 1723638227 at 2024-8-14 09:27 PM
We recently acquired a Raspi-tank kit by Adeept. My daughter has successfully built the kit but we are having problems getting the software going. We have been able to install the Pi OS and boot the Pi, but can't get the camera to work.
There seems to be a lot of confusing information out there regarding Pi cameras. So far I have ascertained with have a Pi Cam v1.3, which, when recognized comes up as an OV5467 device. We are using a Pi 3 rev B board.
By default, libcamera identifies the camera as follows:
$ libcamera-hello --list-cameras
Available cameras
-----------------
0 : ov5647 [2592x1944] (/base/soc/i2c0mux/i2c@1/ov5647@36)
Modes: 'SGBRG10_CSI2P' : 640x480 [58.92 fps - (16, 0)/2560x1920 crop]
1296x972 [43.25 fps - (0, 0)/2592x1944 crop]
1920x1080 [30.62 fps - (348, 434)/1928x1080 crop]
2592x1944 [15.63 fps - (0, 0)/2592x1944 crop]
However, if webServer.py is run, it is unable to find the camera and instructs us to enable legacy support:
$ sudo python3 webServer.py
......................pause..........................
Starting camera thread.
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (1824) handleMessage OpenCV | GStreamer warning: Embedded video playback halted; module v4l2src0 reported: Cannot identify device '/dev/video-1'.
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (914) open OpenCV | GStreamer warning: unable to start pipeline
[ WARN:0] global ../modules/videoio/src/cap_gstreamer.cpp (501) isPipelinePlaying OpenCV | GStreamer warning: GStreamer: pipeline have not been created
[ WARN:0] global ../modules/videoio/src/cap_v4l.cpp (1004) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.
--------------------
error: Unable to read camera data.
It may be that the Legacy camera is not turned on or the camera is not connected correctly.
Open the Legacy camera: Enter in Raspberry Pi'sudo raspi-config' -->Select'3 Interface Options' -->'I1 Legacy Camera'.
Use the command: 'sudo killall python3'. Close the self-starting program webServer.py
Use the command: 'raspistill -t 1000 -o image.jpg' to check whether the camera can be used correctly.
Press the keyboard keys 'Ctrl + C' multiple times to exit the current program.
--------Ctrl+C quit-----------
[ WARN:0] global ../modules/videoio/src/cap_v4l.cpp (1004) tryIoctl VIDEOIO(V4L2:/dev/video0): select() timeout.
If we turn on legacy camera mode in raspi-config, then following reboot, libcamera does not recognize the camera at all:
$ libcamera-hello --list-cameras
No cameras available!
webServer.py continues to display the above message.
If we disable legacy mode again to make the camera recognizable, run the 'sudo python3 killall' command and then run libcamera-jpeg we are uanble to get an image but just get the following error:
$ rpicam-jpeg -n -o test.jpg
[0:05:04.175155952] [1326] INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f
[0:05:04.247789058] [1327] INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/ov5647@36 to Unicam device /dev/media3 and ISP device /dev/media0
[0:05:04.247903691] [1327] INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml'
[0:05:04.249209967] [1326] INFO Camera camera.cpp:1033 configuring streams: (0) 1296x972-YUV420
[0:05:04.249830735] [1327] INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/ov5647@36 - Selected sensor format: 1296x972-SGBRG10_1X10 - Selected unicam format: 1296x972-pGAA
[0:05:05.369471166] [1327] WARN V4L2 v4l2_videodevice.cpp:2007 /dev/video0[12:cap]: Dequeue timer of 1000000.00us has expired!
[0:05:05.369660850] [1327] ERROR RPI pipeline_base.cpp:1333 Camera frontend has timed out!
[0:05:05.369739650] [1327] ERROR RPI pipeline_base.cpp:1334 Please check that your camera sensor connector is attached securely.
[0:05:05.369819024] [1327] ERROR RPI pipeline_base.cpp:1335 Alternatively, try another cable and/or sensor.
Raspberry seems to have added considerably to the confusion by changing the supporting program commands from 'vcgencmd get_camera' to 'libcamera-hello --list-cameras' to 'rpicam-hello --list cameras' so one has to be carefull with online tutorials to documentation. Legacy mode is turned off by default. Furthermore, it seems that it needs to be turned off for the camera to even be regognized by Raspberry tools, yet even these, despite recognizing the camera, do not seem to work.
As for Adeept, the webServer.py tool seems to be designed in a way that prevents the the rest of the robot from operating without a working camera, so we are stuck. Given that the target audience is young people who are trying to learn, I think this is a pretty poor and understadably frustrating experience.
If anyone knows how to get the camera working then I would appreciate some insight.
Firstly, a good starting point might be to confirm whether the legacy camera mode needs to be enabled ot not? webServer.opy seems to imply that it does, but although the documentation mention turning on the GPIO pins, I do not see any mention of tuning on legacy camera mode?
Secondly, if nothing else, it would be useful to get the camera working using standard Raspberry tools. At least we could then verify that it does actually work and our investment in time and money would not be completely wasted. libcamera appears to 'see' it, so why are we getting a timout issue please?
UPDATE: OH DEAR! On top of that it seems that the forum software messes up text in CODE tags by interspersing with HTML markup! How much worse can this get.... Now tidied up using QUOTE tags instead.
|
|