## 3 Adaptive Field-of-View Visible Light Communication: Concept and Prototype Development
### Presentation of the VLC Transmitter Used for the Experiments
The sensor module consisted of a 4 cm \(\times\) 8 cm \(\times\) 4 cm quarter-sphere that englobed 28 IR photodiodes, each with a \(\pm 10^{\circ}\) FoV, distributed from \(-30^{\circ}\) to \(30^{\circ}\) on the \(0x\) axis and from \(0^{\circ}\) to \(30^{\circ}\) on the \(0y\) axis, as illustrated in Figure 2. The 28 IR photodiodes were connected through a multiplexor. A microcontroller periodically read the voltage generated by the resistive network and determined the sun's IR optical intensity. It should be clarified that the IR photodiodes were chosen in order to enable the system to respond to the sunlight  
Figure 1: Schematic representation of the VLC prototype, emphasizing the VLC receiver’s front-end components and the adaptive field-of-view mechanism. The proposed concept used a custom-made multi-angle light sensor to determine the sun’s intensity and location relative to the VLC receiver, and based on this assessment, it adjusted the aperture of the mechanical iris in order to maintain the incident light at a value below the photodiode saturation limit. instead of the light generated by the useful sources, such as the VLC transmitter. Then again, the sunlight's IR component enabled the system to estimate the sunlight's irradiance coming from different angles. Moreover, by comparing the irradiance from different angles, the microcontroller was able to estimate the sun's location with respect to the VLC receiver. For this purpose, the microcontroller calculated an average of the IR light intensity received on the different angles (i.e., \(-30^{\circ}\) to \(+30^{\circ}\) for the azimuth and \(0^{\circ}\) to \(30^{\circ}\) for the elevation), and then, by comparing the average intensities, the position of the sun was estimated. Moreover, the use of the average values rather than individual values reduced the effect of potential measurement errors generated by imprecise 3D printing or imprecise photodiode positioning within the multi-angle light sensor. On the other hand, if no major differences were measured, the algorithm assumed that the VLC receiver was exposed to indirect sunlight. In this case, the estimated optical irradiance will be the main factor considered for the FoV adaption. From this perspective, the system was calibrated to classify the light intensity from a low level to a high level, where the light incident on the \(0^{\circ}\) axes had a higher disruptive effect at the VLC receiver level. Therefore, by correlating the sun's location and optical intensity, the dedicated microcontroller commanded a DC motor that adjusted the aperture of a mechanical iris. The purpose of this adjustment was to ensure that the sunlight reaching the photosensitive element was always at a value that would not affect the communication parameters, where these values were established based on a preliminary set of experimental investigations. The signal-processing component that follows had the purpose of conditioning the electrical signal furnished by the previous stage. Within this block, the signal went through a fourth-order Bessel band-pass filter. This filter rejected frequencies below 1 kHz and those above 200 kHz. The output of the filtering stage was amplified by several amplification blocks, with the final one being an automatic gain control (AGC) amplifier. The AGC stage provided complementary gain for the signals that required additional amplification, enabling the VLC receiver to be compatible with mobile applications, where the transmitter-receiver distance can vary significantly. The AGC provided an output signal with an amplitude between 0.6 V and 2 V, which was fed to a Schmitt trigger circuit. In turn, the Schmitt trigger circuit was responsible for signal regeneration. In the end, the digital signal generated by the Schmitt trigger circuit was processed by a 600 MHz ARM Cortex M7 processor, overclocked at 1008 MHz. The microcontroller processed the signal and extracted the data bits.