Kasutaja tarvikud

Lehe tööriistad


kursused:roboti_algkursused:2018.3:proge

Erinevused

Siin näed erinevusi valitud versiooni ja hetkel kehtiva lehekülje vahel.

Lõlita võrdlemise vaatele

Both sides previous revision Previous revision
kursused:roboti_algkursused:2018.3:proge [2018/09/30 17:03]
erki.meinberg [Varamu]
kursused:roboti_algkursused:2018.3:proge [2019/02/25 19:58] (Hetkel kehtiv)
erki.meinberg [ADC lugemine ja väärtuse edastamine]
Rida 290: Rida 290:
  USART_SendString(buff);​ // Edasta buhver.  USART_SendString(buff);​ // Edasta buhver.
  _delay_ms(500);​ // Oota mingi mõistlik hetk, et ekraan ei täituks liiga kiiresti.  _delay_ms(500);​ // Oota mingi mõistlik hetk, et ekraan ei täituks liiga kiiresti.
 + }
 +}
 +</​code>​
 +
 +==== Näite loogika robotile ====
 +
 +<code c>
 +/*
 + * Arduino Nano
 + ​* ​
 + ​* ​
 + */
 +
 +#include <​stdio.h>​
 +#include <​avr/​io.h>​ /​* Include AVR std. library file */
 +#include <​util/​delay.h>​
 +#include "​USART_RS232_H_file.h"​
 +#include "​ADC_H_file.h"​
 +#include "​MOTORS_H_file.h"​
 +
 +void do_driving(uint16_t left, uint16_t right)
 +{
 + if (left > 400 && right > 400)
 + {
 + motors_set(800,​ 800);
 + }
 + else if (left > 400)
 + {
 + motors_set(0,​ 800);
 + }
 + else if (right > 400)
 + {
 + motors_set(800,​ 0);
 + }
 + else
 + {
 + motors_set(0,​ 0);
 + }
 +}
 +
 +void print_sensor(uint16_t sensor)
 +{
 + char buffer[255] = { 0 };
 + sprintf(buffer,​ "Mingi formaat: %d\n\r",​ sensor);
 + USART_SendString(buffer);​
 +}
 +
 +int main()
 +{
 + USART_Init();​
 + adc_init();​
 + motors_init();​
 +
 + while(1)
 + {
 + uint16_t adc_left = adc_read(0);​
 + uint16_t adc_right = adc_read(1);​
 +
 + do_driving(adc_left,​ adc_right);
 +
 + print_sensor(adc_left);​
 + print_sensor(adc_right);​
  }  }
 } }
 </​code>​ </​code>​
kursused/roboti_algkursused/2018.3/proge.txt · Viimati muutnud: 2019/02/25 19:58 persoon erki.meinberg