EM2019WSP06/Feindesign: Unterschied zwischen den Versionen
Zeile 3: | Zeile 3: | ||
=Software= |
=Software= |
||
+ | ==Software Main Architecture== |
||
− | ==IR_SENSORS== |
||
+ | [[Datei:D_bot_sw_arch.png |left| 300px]] |
||
+ | </br> |
||
+ | - For this project, the Sensors API need to be implemented.</br></br> - All the sensors communicate over GPIO pins.</br></br> - For the speed control of the motors a PWM Signal is necessary.</br></br> - Therefore, from the Zephyr OS, is "only" needed the GPIO and the PWM abstraction Service. |
||
+ | </br> </br> </br> |
||
+ | </br> |
||
+ | ==Main Application== |
||
+ | The Application layer has a behavior implementation. This file provides to the Main application the following routines: find_node(x), follow_line(), and turn_right(). </br> For now the Main application can only take one delivery service at once, and the Robot need to be placed back to the start point manually. </br> This make the main app really easy to implement, then it always start at y==0, x==0. Hence, the algorithm result very simple: Find Y, turn_right, find X. |
||
+ | |||
+ | [[Datei:App_flowchart.png |left| 407px]] [[Datei:Sq_diag_d_bot.png | 666px]] |
||
+ | |||
+ | *Example: |
||
+ | [[Datei:Find_2_2_example_d_bot.png |left| 407px]] |
||
+ | </br> </br> - Example of find_node(2,2); |
Version vom 4. März 2020, 23:16 Uhr
Schematic
Software
Software Main Architecture
- For this project, the Sensors API need to be implemented.
- All the sensors communicate over GPIO pins.
- For the speed control of the motors a PWM Signal is necessary.
- Therefore, from the Zephyr OS, is "only" needed the GPIO and the PWM abstraction Service.
Main Application
The Application layer has a behavior implementation. This file provides to the Main application the following routines: find_node(x), follow_line(), and turn_right().
For now the Main application can only take one delivery service at once, and the Robot need to be placed back to the start point manually.
This make the main app really easy to implement, then it always start at y==0, x==0. Hence, the algorithm result very simple: Find Y, turn_right, find X.
- Example:
- Example of find_node(2,2);