Projekt arduino z czujnikami optycznyni

Dyskusje o programowaniu mikroprocesorów.

Autor tematu
Fadal123
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 2
Posty: 22
Rejestracja: 08 gru 2019, 22:01

Projekt arduino z czujnikami optycznyni

#1

Post napisał: Fadal123 » 08 lis 2020, 16:27

Witam. Mam do wykonania projekt na arduino, ale obowiązkowo musze wykorzystać czujniki optyczne-jakie bez znaczenia. Macie jakieś sugestie co lub jak wykonac?



Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: Projekt arduino z czujnikami optycznyni

#2

Post napisał: TOP67 » 08 lis 2020, 17:02

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.

Awatar użytkownika

tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7781
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Projekt arduino z czujnikami optycznyni

#3

Post napisał: tuxcnc » 08 lis 2020, 17:39

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.


nanab
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 1
Posty: 330
Rejestracja: 01 paź 2018, 22:34

Re: Projekt arduino z czujnikami optycznyni

#4

Post napisał: nanab » 08 lis 2020, 17:54

Zrób fotel z potrójnym dildopędem włączanym przyciskiem dotykowym zrobionym z transoptora np. cny70.


StudentIB
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 2
Posty: 501
Rejestracja: 23 paź 2015, 00:00
Lokalizacja: Poznań

Re: Projekt arduino z czujnikami optycznyni

#5

Post napisał: StudentIB » 17 lis 2020, 23:48

Proponuję pulsoksymetr, temat akurat na czasie.


piromarek
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 1
Posty: 1341
Rejestracja: 08 maja 2007, 08:05
Lokalizacja: Chodzież

Re: Projekt arduino z czujnikami optycznyni

#6

Post napisał: piromarek » 18 lis 2020, 06:58

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.


mareq_bb
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 246
Rejestracja: 26 wrz 2016, 14:10
Lokalizacja: Bielsko-Biała

Re: Projekt arduino z czujnikami optycznyni

#7

Post napisał: mareq_bb » 18 lis 2020, 07:43

Możesz jeszcze zrobić optyczny enkoder i na arduino zliczanie lewo-prawo.


oprawcafotografii
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 6105
Rejestracja: 29 kwie 2009, 10:11
Lokalizacja: Kraków / Jaworzno / Kopanka

Re: Projekt arduino z czujnikami optycznyni

#8

Post napisał: oprawcafotografii » 18 lis 2020, 08:53

O właśnie - napisz dobre biblioteki do obsługi enkoderów na silnikach modelarskich BLDC :)
Zostaniesz doceniony :)
„Największym wrogiem wolności jest najedzony niewolnik.”

Awatar użytkownika

grg12
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1663
Rejestracja: 03 sty 2007, 14:27
Lokalizacja: Wiedeń

Re: Projekt arduino z czujnikami optycznyni

#9

Post napisał: grg12 » 18 lis 2020, 09:59

chronograph do pomiaru prędkości pocisku :)


Autor tematu
Fadal123
Czytelnik forum poziom 2 (min. 20)
Czytelnik forum poziom 2 (min. 20)
Posty w temacie: 2
Posty: 22
Rejestracja: 08 gru 2019, 22:01

Re: Projekt arduino z czujnikami optycznyni

#10

Post napisał: Fadal123 » 22 lis 2020, 21:00

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

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Arduino, Raspberry pi i inne systemy mikroprocesorowe”