rörelsevakt + digitalkamera = viltkamera i skogen ... Hjäl

Planering och tankar kring eventuella framtida projekt.
Användarvisningsbild
Chribbe76
EF Sponsor
Inlägg: 1167
Blev medlem: 17 januari 2004, 22:43:17
Ort: Stockholm

Inlägg av Chribbe76 »

Programkoden är typ klar.
Justering med vridpot blev 1sek - 64sek.
Jag har gjort så att den undviker att ta kort efter 27-33 sek efter senaste kortet, anledningen är att kameran kan stänga av sig just då.
Frågan är om kameran alltid stänger av sig efter lika lång tid och hur lång är den tiden "exakt" ?
Hur lång tid behöver kameran från att man trycker på ON till att man trycker på slutaren (2sek) ?
Hur lång utebliven signal från nattvakten ska krävas för att den ska sluta ta kort(20sek) ?

Jag kan tyvärr inte ta någon bild av kopplingsdäcket just nu för digitalkameran verkar trasig. :x

(Du ska absolut inte känna press att genomföra projektet bara för att jag har lagt ner tid på det)

[EDIT]
Jag tog ett kort genom ett förstoringsglas med mobilen men jag ska fixa en bättre bild.
Bild
robowich
Inlägg: 37
Blev medlem: 7 november 2006, 12:55:13
Ort: Oskarshamn

Inlägg av robowich »

Jag ska kolla upp tiderna...

problemet nu när jag slaktat kameran så fungerar inte lcd´n utan jag vet bara att första "mode-läget" är att fota, så ett vanligt kort tryck på ON-knappen sedan är det bara att fota.

Har nu lött (heter det så??) två jordtrådar til ON och FIRE knapparna när jag trycker respektive tråd mot minuspolen så sker exakt det som skulle ske om jag trycker på knapparna.

återkommer snart
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Enklaste sättet att lösa problemet med on-knappen (att inte trigga den när kameran redan är på) är väl att leta reda på något ställe i kameran som får ström när kameran är på, t.ex. nån status-lysdiod, lcd-drivare, eller vad som helst.
Man låter en in-pinne på µC:n kolla om kameran är på, isf. skickar den ingen "on-tryckning"..
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Sen kan man väl göra så att... äh, lite pseudokod säger tusen ord :)

Kod: Markera allt

function startcamera() {
  if ($_IN-PINNE[1] != 1) { // om pinne 1 ("kamerastatus") != 1, dvs kameran inte är på
    // Pinne 2 = kamerans on-knapp. Aktivera och avaktivera; starta kameran.
    ut_pinne_on(2);
    // vänta lagom kort stund
    ut_pinne_off(2);
  }
}

event ($_IN-PINNE[3] == 1) { // Följande kod körs när pinne 3 (signal från rörelsevakten) aktiveras
  $MOTION_DETECTED = 1;
}

while ( 1 ) { // oändlig loop
  if ($MOTION_DETECTED == 1) {
    startcamera();

    // Pinne 5 = kamerans "ta kort"-knapp. Aktivera och avaktivera.
    ut_pinne_on(5);
    // vänta lagom kort stund
    ut_pinne_off(5);

    $MOTION_DETECTED = 0;

    sleep(15); // Vänta 15 sekunder innan loopen fortsätter (OBS, event-triggern ovanför fungerar fortfarande!)
  }
}
Alltså. När rörelsedetektorn ger utslag så körs "event"-koden, som sätter variabeln $MOTION_DETECTED till 1.
Evighetsloopen kollar hela tiden den variabeln. Så fort den blir == 1, så körs koden, som först anropar startcamera(). startcamera() startar då kameran, dock endast om den var avstängd. Om kameran redan var på så gör startcamera() ingenting.
Sedan aktiveras "ta kort"-knappen.
$MOTION_DETECTED nollställs, och evighetsloopen väntar i 15 sekunder innan den fortsätter. Om det då under dessa 15 sekunder har kommit ett "rörelsevakt-event", så har ju $MOTION_DETECTED satts till 1 igen, och "ta kort"-koden i if-satsen körs igen.
Om det inte har kommit någon signal från rörelsevakten, så är $MOTION_DETECTED fortfarande nollställd, och while-loopen startar om omedelbart utan att köra if-satsen, och utan någon 15-sekunders-paus, alltså reagerar den direkt på ett event från rörelsevakten, 15s-pausen körs bara om kameran just har tagit ett kort, för att förhindra att den pepprar av massor av kort.
robowich
Inlägg: 37
Blev medlem: 7 november 2006, 12:55:13
Ort: Oskarshamn

Inlägg av robowich »

Aha! Nu förstår jag... INTE!!

Jag är ju för fasen helt novis på detta och det senaste inlägget gjorde ju inte att mitt självförtroende i projektet ökade direkt.

Vi måste börja basic vad ska jag löda vart osv... Hur ska kretsen se ut . Va fasen är en uC? (jag hittar inte ens tecknet för det.)

Hur programmerar man en såndär IC egentligen? Kopplar man den till datorn på nåt sätt?
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

µ-tecknet (uttalas "my" tror jag, och "betyder" mikro) ligger oftast på AltGr+M...
µC = microcontroller / mikroprocessor, AVR, PIC, BASIC Stamp, etc.
Det är som en liten programmerbar dator i mikroformat.
(Gissar att du menar µC när du säger IC.. IC står för Integrated Circuit, och kan vara vilken sorts integrerad krets som helst. En µC är en sorts IC. En 555 är också en IC..)

Ska du skriva programmet själv så är nog en basic stamp att rekommendera.. (Hjälp, rekommenderade jag verkligen BASIC till någon? :shock: )
En basic stamp är såvitt jag har förstått en PIC-processor med en "parser", ett program (skrivet i PIC-assemblerkod) som laddar in BASIC-programkoden (som du skrivit) från minnet och tolkar & kör den..

Pseudokoden kanske inte var riktad till dig direkt, utan till... tja... vet inte riktigt faktiskt..

Basic stamp är mycket dyrare än AVR- och PIC-processorer, men mycket enklare "programmeringsspråk" (om man nu kan kalla BASIC ett programmeringsspråk ;) )

Google kan säkert plocka fram lite bra sidor om hur basic stamp fungerar om du ber honom snällt... ;)
Användarvisningsbild
Jonaz
Inlägg: 2358
Blev medlem: 4 november 2003, 22:06:33
Ort: Huddinge

Inlägg av Jonaz »

Ärligt talat så tror jag inte att han har en changs att själv fixa det med en µC, idags läget.
Inget illa menat robowich.
Minns när jag köpte en AVR programerare STK500 för 2-3 år sedan och den har väl sett skrivbords ljus några gånger per år. Programering var helt enkelt inte min grej alls, även fast jag skulle vilja.
maxxflow
Inlägg: 1150
Blev medlem: 17 mars 2004, 16:11:14

Inlägg av maxxflow »

Det borde väl gå att lösa rätt enkelt med "analoga" grejer också... Nu är jag absolut ingen expert inom detta område, men jag tänker mig nåt sånt här:
Man fixar en "loopande timer" med någon 555-krets eller nåt sånt. När timern är igång (har matningsspänning) så skapar den en strömpuls t.ex. var 15:e sekund.
Timern kopplas paralellt med lysdioderna i rörelsevakten, så att den är igång när dioderna lyser.

Pulsen som timern skapar var 15:e sekund ska utföra två saker; starta kameran, och ta en bild.
För att undvika att den försöker starta kameran om den redan är igång, så har man något som fungerar som ett NC (normally closed) relä, går säkert att lösa med en transistor, men det vet jag inte så mycket om..
"Reläets" "spole" kopplar man till "kontrollpunkten" i kameran, alltså ett ställe som får ström när kameran är igång. Den ena av "reläets" kontakter kopplas till on-knappen på kameran, och den andra till pulsutgången från timern.
Då blir det alltså så att när kameran är avstängd, så släpper "reläet" igenom ström från puls-utgången till on-knappen, alltså startas kameran när en puls kommer från timern, som i sin tur startas av rörelsevakten.
Om kameran redan är igång, så bryter "reläet" kontakten mellan timern och on-knappen, så att kameran inte byter funktion när det kommer en ny puls..

Sen vill vi ju att den ska ta en bild också, och "ta bild"-pulsen får ju inte komma samtidigt som on-pulsen, kameran måste ju hinna starta först.
Därför använder vi en till timer, som inte "loopar", som kopplas till pulsutgången från 15s-timern (paralellt med "reläet", men på 15s-timer-sidan, så att denna nya timern får 15s-pulsen även oavsätt om reläet är på eller av).
Denna timern sätts till den tid det tar för kameran att starta, kanske runt 2s.

Då blir det alltså såhär:

* Om kameran är avstängd:
Rörelsevakten uppfattar en rörelse, och tänder sina lysdioder.
Då startas även 15s-timern, som först skickar ut en puls, sen väntar i 15 sekunder, och om den då fortfarande får ström från rörelsevakten så skickar den ut en puls igen, och väntar i 15s igen, och fortsätter så ända tills den inte längre får någon ström från rörelsevakten.
Eftersom kameran nu är avstängd, så skickas pulsen från 15s-timern till kamerans on-knapp, och kameran startas.
Samtidigt skickas pulsen till 2s-timern, som efter 2s skickar en egen puls till kamerans "ta kort"-knapp.

* Om kameran redan var på:
15s-timern skickar ut en puls när rörelsevaktern har startat den.
Pulsen kommer inte till kamerans on-knapp, tack vare reläet, eftersom kameran redan var igång.
Pulsen kommer dock som vanligt till 2s-timern, som väntar i 2s och sedan skickar en puls till kamerans "ta kort"-knapp.


Om man vill krångla till det så kan man mha. lite "växlande reläer" fixa så att 2s-pausen endast används om kameran *inte* var igång sedan innan (om kameran redan är igång så behöver man ju inte vänta på att den ska starta, då är det bara att knäppa bilden direkt)
Men det känns lite onödigt, blir bara mer krångel.

Hoppas du förstår hur jag menar.
Jag kan inte rita något kopplingsschema åt dig, har inte tillräckliga kunskaper för det, men om du har tur så kanske någon annan här kan göra det..
robowich
Inlägg: 37
Blev medlem: 7 november 2006, 12:55:13
Ort: Oskarshamn

Inlägg av robowich »

Tusen tack för all hjälp ändå! Någon annan kanske skulle vilja rita lite åt mig. Jag vill hemskt gärna löda ihop detta själv och lyckas med detta lilla projekt.
Användarvisningsbild
netrunner
Inlägg: 5510
Blev medlem: 4 februari 2005, 12:26:05
Ort: 127.0.0.1

Inlägg av netrunner »

Programering ÄR (!) kul bara man har en bra bok som förklara lite saker. Är boken på svenska är det bara bättre.

Någon som vet någon bra bok om PIC? Bör det inte finnas bra literatur för olika kurser på univerisitete?
Skriv svar