Saulius L.'s Posts (6)

Sort by

With the introduction of motorized zoom lenses, the next logical step was matching the sensor board. Sure there are countless suitable sensors from various manufacturers like Sony semiconductors, Onsemi, Aptina, and many more. But lack of good support from the SOC side suggested starting from IMX477. It is a reasonably modern 12M image sensor used by many single-board computers like Raspberry Pi, NVIDIA Jetson, and others.

Raspberry Pi locks cameras with a security chip and prohibits non-authorized cameras with standard boards. Luckily this security feature is not used by compute modules. Motorized lenses have dedicated, and in most cases, unique direct mount features. So a custom camera module is a must, thus introducing the IMX477 MIPI CSI2 camera board.

This is the first of a few upcoming camera modules. Note multiple mounting features – this allows single-board use with many lenses.

Features of the lens kit:

  • Lens optical train – 3 stepper motors for Zoom, Focus and compensate lens groups
  • Iris
  • Two optical filters: IR CUT and NIR
  • Reference optical train elements
  • Runs on GRBL firmware ported on STM32 CPU with four axis motion planner

Using the camera with Raspberry Pi compute module

There is a great resource about the IMX477 camera on Raspberry Pi pages, feel free to learn how to control and use it from Raspberry Pi. Below is a simple recipe for streaming real-time video from RPI to a computer.

Run on computer first

gst-launch-1.0 udpsrc port=5004 ! "application/x-rtp,media=(string)video,clock-rate=(int)90000,encoding-name=(string)JPEG,a-framerate=(string)40.000000,a-framesize=(string)1280-720,payload=(int)26" ! rtpjpegdepay ! decodebin ! autovideosink

Run on RPI as a second step

# Install librariessudo apt -y install libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev# Start streamerraspivid -t 0 -cd MJPEG -awb greyworld -mm average -w 2028 -h 1520 -fps 30 -b 132000000 -o - | gst-launch-1.0 fdsrc ! "image/jpeg,framerate=30/1" ! jpegparse ! rtpjpegpay ! udpsink host=<COMPUTER_IP> port=5004

Control the lens

The SCE2-SDK control software can be forked from GitHub. Python code allows code reuse on many operating systems and keeps it human-readable, thus open for customizations.

pip install -r requirements.txt
  • Run demo with command
python main.py

Results

And finally, demonstration video cycling through a few presets and changing filters.

Links

Read more…

Some time ago released smallest motorized lens controller suitable to drive advanced lenses. Is drives opto mechanical lens which in combination with USB camera makes lightweight camera Kurokesu C1 PRO X18 with optical zoom of 5.5~95mm. Posibility to change h.264 on board codec parameters makes it suitable for low bandwidth applications.

 

7402682672?profile=RESIZE_710x

Read more…

3D scanning like a pro

3689715752?profile=original

Almost any sensor yields more interesting results if mounted on a moving platform. It’s time to mount TOF LIDAR on two precision rotary stages arranged for pan and tilt operation. Rig provides real-time position data along with distance to an obstacle. Using simple math we can calculate position in Cartesian coordinate system. Data is collected point by point to reconstruct 3D object model. After 3D reconstruction and colorizing in MeshLab I got amazing result of my room.

More details in this blog post

--

BR,

Saulius Lukse

Read more…

This blog record is about using Carambola with Arducotper to get live telemetry data from quadcopter.

Carambola is low cost, open-source WiFi (21.5 dB / 2.4GHz) embeddable platform from 8devices. I have decided to use this board to control arducopter from computer. In order to have reliable link I have used two Carambolas. One as AP (on the quadcopter) other as Client (ground station). Mission planner connects to arducopter via bridge created by these boards.

Because article is pretty long I did not re-posted it here. Read full post here http://lukse.lt/uzrasai/2012-05-carambola-powered-quadcoper/


IMG_0481_2-1024x908.jpg?width=600

Read more…