Historia Przygoda Pasja... Odkrycia i poszukiwania

Treasure hunting, metal detectors, history...




Teraz jest sobota, 20 kwietnia 2024, 09:37

Strefa czasowa: UTC + 1




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 
Autor Wiadomość
 Tytuł: Pinpointer AVR
PostNapisane: czwartek, 21 marca 2013, 11:08 
Offline
plutonowy
plutonowy

Dołączył(a): poniedziałek, 4 kwietnia 2011, 23:16
Posty: 113
Lokalizacja: Mysłowice
Witam

Zainspirowany Zdecydowanym zabawiłem się w budowę własnej wersji. Oto mój prototyp:


Filmik:
http://youtu.be/bQox3S40gTE
Załącznik:
pinpointer.jpg


Nie masz wystarczających uprawnień, aby zobaczyć pliki załączone do tego postu. Zarejestruj się


Góra
 Zobacz profil  
 
 Tytuł: Re: Pinpointer AVR
PostNapisane: czwartek, 21 marca 2013, 21:33 
Offline
plutonowy
plutonowy

Dołączył(a): niedziela, 17 lipca 2005, 22:33
Posty: 116
Bardzo zgrabnie Ci to wyszło!
Warto uzupełnić o jakąś sygnalizację dźwiękową bo w terenie
diodki świecące są raczej mało użyteczne.
Fajne!


Góra
 Zobacz profil  
 
 Tytuł: Re: Pinpointer AVR
PostNapisane: czwartek, 21 marca 2013, 23:02 
Offline
plutonowy
plutonowy

Dołączył(a): poniedziałek, 4 kwietnia 2011, 23:16
Posty: 113
Lokalizacja: Mysłowice
Pierwotnie był tam głośniczek ze starej nokii (fotka na elektrodzie: http://obrazki.elektroda.pl/2946337400_1363807867.jpg) ale był za cichy - dołączę chyba jakieś hałaśliwe piezo.
Program obsługujący jest na razie do bólu prosty - dla zainteresowanych zmieści się w poście:
Kod:
#include <avr/io.h>
#include <avr/interrupt.h>

volatile uint16_t time, wait=50, avg_cnt=20;
volatile uint32_t avg_sum=0, avg;


ISR(TIMER1_CAPT_vect)
{
static int16_t icr1;
static int16_t delta;

time = ICR1-icr1;
icr1 = ICR1;

if(wait)  // power on wait
   wait--;
else
  if(avg_cnt>0) // measure LC frequency on startup
   {
   avg_cnt--;
   avg_sum += time;
   } 

avg = avg_sum / 20;
delta = time - avg;

// no magnetic metal
if( delta < -10)   PORTC = (1<<2);
if( delta < -20)   PORTC = (1<<1);
if( delta < -60)   PORTC = (1<<0);

// magnetic metal
if( delta > 10)    PORTC = (1<<4);
if( delta > 60)   PORTC = (1<<5);

// nothing
if (( delta <= 10) && (delta >= -10)) PORTC = (1<<3);


// autotune
if(time > avg)
     avg_sum += 5;
if(time < avg)
    avg_sum -= 5;
}


int main(void)
{

// Timer0 prescaler div 0xff
TCCR0B = (1<<CS01) | (1<<CS02);
OCR0B = 128;
TCCR0A = (1<<COM0B0);
DDRD = (1<<5);  // output from prescaler


// Timer1 as capture
TCCR1B = (1<< CS10) | (1<< WGM13);  // clock 20MHz
TCCR1B = (1<< CS10) | (1<< ICNC1);
TIMSK1 = (1<< ICIE1);
PORTD = (1<<4); // pull up for input

DDRC = (1<<0) | (1<<1) |(1<<2) |(1<<3) |(1<<4) |(1<<5);    // LEDs

sei();

while(1);  //
}



Pozdrawiam


Góra
 Zobacz profil  
 
 Tytuł: Re: Pinpointer AVR
PostNapisane: sobota, 25 czerwca 2016, 10:31 
Offline
kanonier
kanonier
Avatar użytkownika

Dołączył(a): czwartek, 23 czerwca 2016, 22:06
Posty: 7
województwo: harkov
Witam, chciałbym powtórzyć to pinpointer czy materiały mają i może podzielić?


Góra
 Zobacz profil  
 
 Tytuł: Re: Pinpointer AVR
PostNapisane: niedziela, 24 września 2017, 07:19 
Offline
kanonier
kanonier
Avatar użytkownika

Dołączył(a): czwartek, 23 czerwca 2016, 22:06
Posty: 7
województwo: harkov
ale system może być powtórzony? interesująca opcja zarówno dla wskazówek


Góra
 Zobacz profil  
 
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 5 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 40 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007, 2011 phpBB Group
Przyjazne użytkownikom polskie wsparcie phpBB3 - phpBB3.PL