Strona 1 z 2

Projekt arduino z czujnikami optycznyni

: 08 lis 2020, 16:27
autor: Fadal123
Witam. Mam do wykonania projekt na arduino, ale obowiązkowo musze wykorzystać czujniki optyczne-jakie bez znaczenia. Macie jakieś sugestie co lub jak wykonac?

Re: Projekt arduino z czujnikami optycznyni

: 08 lis 2020, 17:02
autor: TOP67
Masz spory wybór gotowych czujników jako moduły podpinane kabelkami do płytki prototypowej. Zajrzyj na stronę Bootland lub Gotronik.
Można je też kupić z Chin lub samemu zrobić z elementów dyskretnych.

Co ma robić taki czujnik, bo pojęcie jest szerokie.

Jeśli to zadanie do szkoły, to spróbuj zrobić np. tachometr.

Re: Projekt arduino z czujnikami optycznyni

: 08 lis 2020, 17:39
autor: tuxcnc
Ja kiedyś z czystych nudów zrobiłem wyjątkowo bajerancki projekt.
Potrzebny jest czujnik https://www.aliexpress.com/item/32730415199.html, moduł BT https://www.aliexpress.com/item/33009632983.html i ATtiny13 (można użyć Arduino, np. Nano).
Bajer polega na tym, że wynik zliczania odczytuje się smartfonem z Androidem, teraz dokładnie nie pamiętam, ale aplikacja to jakiś "serial monitor" albo coś w tym stylu.
Tutaj masz na szybko znaleziony przykład https://create.arduino.cc/projecthub/va ... ino-18eadc
A program na ATtiny 13 wygląda tak :

Kod: Zaznacz cały

#define F_CPU 9600000

#include <avr/io.h>
#include <util/delay.h>

#define SOFT_TX_PIN (1<<PB1) // PB1 as TXD 
#define SOFT_TX_PORT PORTB
#define SOFT_TX_DDR DDRB

unsigned int count = 0; 
char old = 0;
char now = 0;

int main (void) {
  PORTB =1;
  uart_tx_init (); // инициализация прог. UARTа

  while (1) {
    now = (PINB & 1);
    if (old != now ){
      old = now;
        if (old == 1){
          count++;
          uart_print("Current counter value = "); // превед 
          num_to_str(count, 5); // 0..99999
          uart_print("\r\n");  // переход на новую строчку 
        }
      }
    }
  return 0; 
}

void uart_tx_init ()
{
  TCCR0A = 1 << WGM01;    // compare mode
  TCCR0B = (1 << CS01);    // prescaler 8
  OCR0A = 125;  // 9600 baudrate at prescaler 8
  SOFT_TX_PORT |= SOFT_TX_PIN;
  SOFT_TX_DDR |= SOFT_TX_PIN;
}

// Функция вывода содержимого переменной
void num_to_str(unsigned int value, unsigned char nDigit)
{
  switch (nDigit)
  {
  case 5:
    uart_send_byte((value / 10000) + '0');
  case 4:
    uart_send_byte(((value / 1000) % 10) + '0');
  case 3:
    uart_send_byte(((value / 100) % 10) + '0');
  case 2:
    uart_send_byte(((value / 10) % 10) + '0');
  case 1:
    uart_send_byte((value % 10) + '0');
  }
}

void uart_print(char *str)
{
  byte i = 0;
  while (str[i]) {
    uart_send_byte(str[i++]);
  }
}

//bitbanged UART transmit byte
void uart_send_byte (unsigned char data)
{
  unsigned char i;
  TCCR0B = 0;
  TCNT0 = 0;
  TIFR0 |= 1 << OCF0A;
  TCCR0B |= (1 << CS01);
  TIFR0 |= 1 << OCF0A;
  SOFT_TX_PORT &= ~SOFT_TX_PIN;
  while (!(TIFR0 & (1 << OCF0A)));
  TIFR0 |= 1 << OCF0A;
  for (i = 0; i < 8; i++)
  {
    if (data & 1)
      SOFT_TX_PORT |= SOFT_TX_PIN;
    else
      SOFT_TX_PORT &= ~SOFT_TX_PIN;
    data >>= 1;
    while (!(TIFR0 & (1 << OCF0A)));
    TIFR0 |= 1 << OCF0A;
  }
  SOFT_TX_PORT |= SOFT_TX_PIN;
  while (!(TIFR0 & (1 << OCF0A)));
  TIFR0 |= 1 << OCF0A;
}
Komentarzami się nie przejmuj, przerabiałem coś znalezione w necie.
Skomplikowanie programu wynika z prostoty mikrokontrolera, ma tak mało zasobów, że trzeba wszystko pisać ręcznie. Na Arduino można użyć sprzętowego UART-a i gotowych bibliotek.

Re: Projekt arduino z czujnikami optycznyni

: 08 lis 2020, 17:54
autor: nanab
Zrób fotel z potrójnym dildopędem włączanym przyciskiem dotykowym zrobionym z transoptora np. cny70.

Re: Projekt arduino z czujnikami optycznyni

: 17 lis 2020, 23:48
autor: StudentIB
Proponuję pulsoksymetr, temat akurat na czasie.

Re: Projekt arduino z czujnikami optycznyni

: 18 lis 2020, 06:58
autor: piromarek
Prosty jest obrotomierz.
Może licznik towaru na taśmie.
Dojdzie wyświetlacz.
Chyba ,że trzy diody na przykład. . "Za wolno"- "dobrze"- "za szybko".

Coś tam kodu też będzie.

Bo już krańcówka optyczna albo czujnik długości narzędzia, to jak na projekt do szkoły chyba za mało kodowania.

Re: Projekt arduino z czujnikami optycznyni

: 18 lis 2020, 07:43
autor: mareq_bb
Możesz jeszcze zrobić optyczny enkoder i na arduino zliczanie lewo-prawo.

Re: Projekt arduino z czujnikami optycznyni

: 18 lis 2020, 08:53
autor: oprawcafotografii
O właśnie - napisz dobre biblioteki do obsługi enkoderów na silnikach modelarskich BLDC :)
Zostaniesz doceniony :)

Re: Projekt arduino z czujnikami optycznyni

: 18 lis 2020, 09:59
autor: grg12
chronograph do pomiaru prędkości pocisku :)

Re: Projekt arduino z czujnikami optycznyni

: 22 lis 2020, 21:00
autor: Fadal123
Wymyśliłem sobie coś takiego. Czujnik optyczny +moduł sim z ktorym mam problem. Posiadam sim800l i sim800l v2, z żadnym nie mogę sobie poradzić. daje osobne zasilanie i zadnych efektow