Laboratorul 04.

Presentation

  • no slides, all practical

Practical lab

Exercise 1

Step 1 - Create the hardware setup

Enable I2C proximity sensor vl53l.

Connect GND, VCC(3V), I2C3_SCL_3V3 and I2C3_SDA_3V3 data lines on expansion header and connect the sensor accordingly.

.

Setup should look like this:

setup1.jpeg.

Step 2 - Find a proper Linux kernel driver

Look inside ~/work/nss-linux/drivers/iio and find a proper driver for vl53l sensor. Use git grep vl53l. Once you find the correct source file look inside the driver and remember the compatible string.

Once you found the driver, use make menuconfig and select it to be compiled as a module. <M>

Step 3 - Create a proper device tree node

Look inside arch/arm64/boot/dts/freescale/imx8mq-pico-pi.dts and add your node under i2c3 node.

Your node should look like this:

&i2c3 {
       proximity-sensor@XX {
           compatible = <compatible-you-found-in-the-driver>;
           reg =<XX>;
           pinctrl-0 = <&pinctrl_prox>;
           status = "okay";
       };
};

XX - is the address of the I2C device. There are two ways of finding this. You can dig inside the datasheet and confirm the address by scanning for devices on i2c3 node on the hardware. Use i2cdetect -y 2.

The datasheet states that the I2C address is as shown as below, but you need to look closer and also understand the output of i2c scan command i2cdetect -y 2.

Step 4 - Load the driver & read the distance measured by sensor

Once the device tree is ready, recompile the kernel and boot the board. On the board, use modprobe <driver-name> to load the driver. If everything goes well the driver will be correctly loaded and you will be able to read data.

$ modprobe vl53l0x-i2c
$ cat /sys/bus/iio/devices/iio:device0/in_distance_scale

Use the following script the poll for proximity measurements every 0.5 seconds:

$ cat read_meas.sh
 
while true; do
cat /sys/bus/iio/devices/iio:device0/in_distance_raw
sleep 0.5
done

Exercise 2

Control a motor using GPIOs. Use the following Guide

motor1.jpeg

lkd/laboratoare/04.txt ยท Last modified: 2024/07/11 16:42 by daniel.baluta
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0