.. note:: Hello, welcome to the SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community on Facebook! Dive deeper into Raspberry Pi, Arduino, and ESP32 with fellow enthusiasts. **Why Join?** - **Expert Support**: Solve post-sale issues and technical challenges with help from our community and team. - **Learn & Share**: Exchange tips and tutorials to enhance your skills. - **Exclusive Previews**: Get early access to new product announcements and sneak peeks. - **Special Discounts**: Enjoy exclusive discounts on our newest products. - **Festive Promotions and Giveaways**: Take part in giveaways and holiday promotions. 👉 Ready to explore and create with us? Click [|link_sf_facebook|] and join today! .. _control_by_app: 13. Controlled by the APP ================================== The SunFounder controller is used to control Raspberry Pi/Pico based robots. The APP integrates Button, Switch, Joystick, D-pad, Slider and Throttle Slider widgets; Digital Display, Ultrasonic Radar, Grayscale Detection and Speedometer input widgets. There are 17 areas A-Q , where you can place different widgets to customize your own controller. In addition, this application provides a live video streaming service. Let's customize a PiCar-X controller using this app. **How to do?** #. Install the ``sunfounder-controller`` module. The ``robot-hat``, ``vilib``, and ``picar-x`` modules need to be installed first, for details see: :ref:`install_all_modules`. .. raw:: html .. code-block:: cd ~ git clone https://github.com/sunfounder/sunfounder-controller.git cd ~/sunfounder-controller sudo python3 setup.py install #. Run the code. .. raw:: html .. code-block:: cd ~/picar-x/example sudo python3 13.app_control.py #. Install `SunFounder Controller `_ from **APP Store(iOS)** or **Google Play(Android)**. #. Open and create a new controller. Create a new controller by clicking on the + sign in the SunFounder Controller APP. .. image:: img/app1.PNG There are preset controllers for some products in the Preset section, which you can use as needed. Here, we select **PiCar-X**. .. image:: img/app_control_preset.jpg #. Connect to PiCar-x. When you click the **Connect** button, it will automatically search for robots nearby. Its name is defined in ``picarx_control.py`` and it must be running at all times. .. image:: img/app9.PNG Once you click on the product name, the message "Connected Successfully" will appear and the product name will appear in the upper right corner. .. image:: img/app10.PNG .. note:: * You need to make sure that your mobile device is connected to the same LAN as PiCar-X. * If it doesn't search automatically, you can also manually enter the IP to connect. .. image:: img/app11.PNG #. Run this controller. Click the **Run** button to start the controller, you will see the footage of the car shooting, and now you can control your PiCar-X with these widgets. .. image:: img/app12.PNG Here are the functions of the widgets. * **A**: Show the current speed of the car. * **E**: turn on the obstacle avoidance function. * **I**: turn on the line following function. * **J**: voice recognition, press and hold this widget to start speaking, and it will show the recognized voice when you release it. We have set ``forward``, ``backard``, ``left`` and ``right`` 4 commands in the code to control the car. * **K**: Control forward, backward, left, and right motions of the car. * **Q**: turn the head(Camera) up, down, left and right. * **N**: Turn on the color recognition function. * **O**: Turn on the face recognition function. * **P**: Turn on the object recognition function, it can recognize nearly 90 kinds of objects, for the list of models, please refer to: https://github.com/sunfounder/vilib/blob/master/workspace/coco_labels.txt.