film digitaliseren met eenvoudige Arduino-code

Ehh, onmiddelijk nadat de microswitch de steppermotor heeft doen stoppen Erik :slight_smile:

Mvg,

kees

UPDATE UPDATE UPDATE!!

laatst vermeldde schema net bedraad en geüpload en het werkt!

knop 1 laat stepper motor 2048 stappen rechtsom lopen en

knop 2 laat steppermotor 48 stappen linksom lopen (aantal stappen door mij aangepast om verschil te zien)

een en ander houdt in dat ik de code voor zowel de knoppen als voor de steppermotor werkend heb kunnen combineren in één complete code! Ons bent blij! :slight_smile: want weer een "step" verder jaja

nou die pauze nog :confused: ...

en die microswitch nog even in de projector frommelen, (ik denk dat ik toch maar zo'n Velleman reed dingetje koop: https://www.okaphone.com/artikel.asp?id=484585 die is net wat makkelijker te positioneren

Mvg,

kees

P.S.

uh-oh

knop 2 (1024 stappen counterclockwise) werkt niet zolang knop 1 niet klaar is m.a.w. knop 2 beinvloed knop 1 NIET door bijv. meteen de andere kant op te draaien

hoe laat ik de steppermotor sowieso lopen (met of zonder knop 1, dat geeft verder niet) en knop 2 de steppermotor meteen laten stoppen met een pauze er achteraan? en de loop dan weer van voren af aan?

Vertelll!!! jullie kunnen het!!! :slight_smile:

Dat zou dus zijn ná deze regels?

  if (toestandknop1 == HIGH) {
    TeMakenStappen  =  STAPPEN_PER_TOTAAL_OMWENTELING1 ;  // draai 1x rechtsom
    small_stepper.setSpeed(500);                          // zet de snelheid
    small_stepper.step(TeMakenStappen);                   // loop
  }else if (toestandknop2 == HIGH) {
    TeMakenStappen  =  STAPPEN_PER_TOTAAL_OMWENTELING2 ;  // draai 0,5 keer linksom
    small_stepper.setSpeed(500);                          // zet de snelheid
    small_stepper.step(TeMakenStappen);                   // loop
  }

Vraagje: kunnen knop1 en knop2 tegelijk ingedrukt zijn?

NB: Ik stel voor om de namen "knop1" en "knop2" te vervangen door resp. "knop1Pin" en "knop2Pin", dat is duidelijker.

En als je toch bezig bent: "STAPPEN_PER_TOTAAL_OMWENTELING1" en idem2 kunnen beter "STAPPEN_PER_TOTAAL_OMWENTELING_RECHTSOM" resp. "STAPPEN_PER_TOTAAL_OMWENTELING_LINKSOM" heten, dan zegt de naam tenminste precies waar het voor dient.

Deze regel (staat er twee keer in) lijkt mij weinig zin te hebben, de waarde is zo te zien altijd 500.

 small_stepper.setSpeed(500);

Beter verplaatsen naar void setup(), dan wordt 'ie eenmalig uitgevoerd.

/*
Het programmablok void setup wordt eenmaal beschreven
*/

Hier wordt ongetwijfeld bedoeld "eenmaal uitgevoerd". Puntjes op de i... :wink:

Ik zie nu ook (pas) dat je pin 1 gebruikt als input voor een knop. Maar op de Uno is dat de TX-pin van de seriepoort, en die kun je / mag je dus niet gebruiken! Verplaats de draden op pins1 en 2 even naar bv. 2 en 3!

Zo, dat houdt je wel even bezig, kan ik even gaan puzzelen over die delay().. :wink:

kortom, alle goede dingen komen langzaam :confused:

Geeft niet, als ze maar komen. :wink:

Ja hoi Erik :slight_smile: , alvast erg bedankt voor alle moeite en tijd die je aan mijn project hebt gespendeerd

De laatste sketch met de twee knoppen kan ik evt gebruiken om te leren hoe je steppermotor code en drukknop/microswitch code in één sketch kunt laten werken, dat is ook nodig want ik heb me laten wijsmaken dat in tegenstelling tot de Raspberry pi de Arduino maar één programma tegelijk kan draaien dus daar móeten alle functies dan ook in zijn samengevat

Noodzakelijke volgende stap in mijn leerproces is dat ik alle sketches maar eens uitprint op papier en de aparte regels of alinea's m.b.t. de verschillende functies uitknip en met elkaar vergelijk en een soort GGD m.b.t. de functies ontdek en, als alles meezit, ook nog een logische volgorde en ja, dat kan ook in de pc maar met papier kun je nou eenmaal sneller schuiven, combineren en alles overzien enz

Vanmorgen heb ik ook al code gevonden om de motor (met één, twee of drie knoppen? even vergeten) direct! linksom en rechtsom te laten draaien én ook direct te laten stoppen, ik was dus op zoek naar vooral die laatste functie

(Verder wordt de verleiding steeds groter om een kant en klaar digitaliseerding van 435 euro te kopen maar natuurlijk alleen om aan te kunnen tonen dat de mijne veel beter wordt :wink: hopelijk heb ik de mijne aan de draai vóórdat ik zo'n ding moet kopen koop)

Mvg

kees

P.S. vanmiddag bezig met printen, knippen (en plakken) van coderegels, heb al 5 sketches klaar :slight_smile:

dit is dus de in m'n vorige post genoemde sketch met drie direct werkende pushbuttons en een steppermotor 28BYJ-48

maar het is wel een super ONoverzichtelijk filmpje en deze meneer gebruikt ook nog eens twee dezelfde kleur draden (grijsbruin) voor twee verschillende knoppen en tot overmaat van ramp is een wiring diagram natuurlijk weer niet bijgesloten dan met onnodig lastig gedoe met een link waarna je het nog niet kan vinden... :frowning: , wat is dat toch met die wiring diagrams?? schamen Arduino en/of programmeurs/ontwikkelaars zich daar voor?

of die diagrams zijn er helemaal niet of je kunt er niet bij of het moet lastig, uiterst lastig (hou toch op...)

kortom, te onnodig lastig om deze sketch uit te voeren en je hebt hoogstens wat houvast aan de code zelf maar zover ben ik nog lang niet :frowning: ...

/*
 * This is Arduino code to control 28BYj-48 with ULN2003 board using
 3 push buttons.  STPB-1
 * Written by Ahmad Shamshiri for Robojax Robojax.com
 * on Feb 20, 2019 at 19:34 in Ajax, Ontario, Canada
 Watch the video instruction for this sketch: https://youtu.be/q-H7GbyX5ho
 
 STPB-1 Control Stepper 28BYJ-48 Push buttons using Arduino code CCW, CW STOP STPB-1
 STPB-2 Controlling Position of 28BYJ-48 Stepper Motor with 2 Push buttons STPB-2
 STPB-3 Controlling ONE Revolution of 28BYJ-48 Stepper Motor with 2 Push buttons STPB-3
 STPB-4 Send 28BYJ-48 Stepper Moor to any Angle  with 3 Push buttons STPB-4 CW, CCW and STOP
 
You can get the wiring diagram from my Arduino Course at Udemy.com
Learn Arduino step by step with all library, codes, wiring diagram all in one place
visit my course now http://robojax.com/L/?id=62

If you found this tutorial helpful, please support me so I can continue creating 
content like this. You can support me on Patreon http://robojax.com/L/?id=63
or make donation using PayPal http://robojax.com/L/?id=64

* 
 * Code is available at http://robojax.com/learn/arduino

 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.* 
 * This code has been download from Robojax.com
    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <https://www.gnu.org/licenses/>. 

*/

int Pin1 = 10;//IN1 is connected to 10 
int Pin2 = 11;//IN2 is connected to 11  
int Pin3 = 12;//IN3 is connected to 12  
int Pin4 = 13;//IN4 is connected to 13 
int switchCW  =2;//define input pin for CW push button
int switchStop=3;//define input pin for Stop push button
int switchCCW =4;//define input pin for CCW push button

 
int pole1[] ={0,0,0,0, 0,1,1,1, 0};//pole1, 8 step values
int pole2[] ={0,0,0,1, 1,1,0,0, 0};//pole2, 8 step values
int pole3[] ={0,1,1,1, 0,0,0,0, 0};//pole3, 8 step values
int pole4[] ={1,1,0,0, 0,0,0,1, 0};//pole4, 8 step values


int poleStep = 0; 
int  dirStatus = 3;// stores direction status 3= stop (do not change)

void setup() 
{ 
 pinMode(Pin1, OUTPUT);//define pin for ULN2003 in1 
 pinMode(Pin2, OUTPUT);//define pin for ULN2003 in2   
 pinMode(Pin3, OUTPUT);//define pin for ULN2003 in3   
 pinMode(Pin4, OUTPUT);//define pin for ULN2003 in4   
 
 pinMode(switchCW,INPUT_PULLUP);// CW push button pin as input
 pinMode(switchStop,INPUT_PULLUP);//Stop push button pin as input 
 pinMode(switchCCW,INPUT_PULLUP);//CCW push button pin as input

} 
 void loop() 
{ 
  
  if(digitalRead(switchCCW) == LOW) 
  {
    dirStatus =1;
  }else if(digitalRead(switchCW) == LOW)
  {
   dirStatus  = 2;  
  }else if(digitalRead(switchStop) == LOW)
  {
    dirStatus =3; 
  }
 if(dirStatus ==1){ 
   poleStep++; 
    driveStepper(poleStep);    
 }else if(dirStatus ==2){ 
   poleStep--; 
    driveStepper(poleStep);    
 }else{
  driveStepper(8);   
 }
 if(poleStep>7){ 
   poleStep=0; 
 } 
 if(poleStep<0){ 
   poleStep=7; 
 } 
 delay(1); 

}// loop



/*
 * @brief sends signal to the motor
 * @param "c" is integer representing the pol of motor
 * @return does not return anything
 * 
 * www.Robojax.com code June 2019
 */
void driveStepper(int c)
{
     digitalWrite(Pin1, pole1[c]);  
     digitalWrite(Pin2, pole2[c]); 
     digitalWrite(Pin3, pole3[c]); 
     digitalWrite(Pin4, pole4[c]);   
}//driveStepper end here

UPDATE OP UPDATE OP UPDATE...

zelfde meneer, lijkt overzichtelijk wiring diagram nu met verschillende kleuren voor elke verbinding

En toen had ik geen 3e pushbutton meer in huis :cry:

Mvg,

kees

Ehh Erik, ' ben een aantal dagen bezig geweest om codes te proberen met m'n oude 28BYJ-48 stappenmotortje maar de code voor dat motortje lijkt net even anders te zijn dan voor m'n NEMA 17 dus met die laatste ga ik nu weer door om het eenvoudig te houden :slight_smile:

Mvg

kees

dan wel een vraag, welke driver zit ertussen, en hoe stuur je die aan, want de canadees gebruikt enkel 5 Volt met vier spoelen, maar een NEMA motor heeft maar 2 spoelen en moet dus ook anders aangestuurd worden. dus gebruik je een L293 of een A4988 driver.
op de laatste hoef je alleen maar een puls te zetten vandaar de vraag, en teken het even dan snap je misschien wel vanzelf hoe het aangestuurd moet worden.
liefst in fritzing

Ja hoi Shooter,

de NEMA 17 wordt verzorgd door een L298N dubbele H-brug driver en gevoed door een (instelbare) trafo met 12v (1000mA(12V))

deze NEMA 17 drijft met een rubber snaar de centrale projector-as met sluiter ("vlinder") van de projector aan Op de platte kant van deze sluiter komt een plakmagneetje dat na elke 360 graden omwenteling van de sluiter een Velleman VMA308 reed switch omschakelt van 0 naar 1

UIteindelijk is het de bedoeling dat er een Arduino sketch komt waarmee de steppermotor iedere keer de projector-as zover rond draait (+- 360 graden) tot de reed switch "aanslaat" en de Arduino code de motor een seconde of 3 stopt om een digitale camera het voorstaande filmbeeldje te laten fotograferen...

...waarna de motor weer opnieuw gaat lopen om de projector-as weer 360 graden te laten lopen, de reed switch opnieuw aanslaat, de motor weer stopt en het volgende filmbeeldje gefotografeerd kan worden enz enz (speciale telecine software maakt van al die foto's dan een complete film)

' kan evt complicatie optreden dat de motor weer moet gaan lopen met de reed switch nog op 1, da's dus een uitdaging :wink:

Maar daar is ook alles mee gezegd "Zou" eigenlijk een heel eenvoudige sketch moeten zijn maar hoe?

Mvg ,

kees

P.S. foto is de allereerste test-opzet, inmiddels zijn bijna alle componenten gesitueerd op plaat multiplex van 25 x 50cm

IMG_0317.JPG

IMG_0317.JPG

maak een stap,
if (je reed aan is){even naar een functie dat je camera laat gaan}

wacht even (mag met delay bijv. 100 msec.
en begin weer bovenaan.
en ja ik kan het voorkauwen, maar veel liever dat je zelf een programma schrijft
het zijn 5 regels in totaal.

Ehh, ' heb liever dat je het "voorkauwt" als je dat niet erg vindt Shooter , met het toepassen (en evt hier en daar aanpassen) van een kant en klare code leer ik op dit moment meer dan van een code waarvan ik absoluut niet weet waar te beginnen dan tegen een lege of deels gevulde void setup en void loop aan te kijken

ik heb gelukkig al sketches met code voor het lopen vd motor en sketches met code voor een drukknop (werkt ook met switch neem ik aan) en zelfs een sketch met lopen vd motor én een drukknop maar ook dan nog is het voor een beginner als ik zowat onmogelijk een en ander te overzien, laat staan lopend te krijgen

ben er wel net in geslaagd m'n Arduino 1.8.4 IDE van een donkere achtergrond te voorzien, dat laat een aantal dingen in verschillende kleuren zien, dat leek me wel zo handig :grin:

verder heb ik al 9 sketches uitgeprint en in aparte alinea's van constanten, void setups en void loops uitgeknipt, dat maakt het vergelijken van de syntax van dezelfde onderdelen van verschillende sketches wel een stuk makkelijker :slight_smile:

resumé:

motor CW laten lopen
motor stoppen bij reed switch op 1 (als de centrale as van de projector 360 graden heeft afgelegd)
pauze (+- 3 seconden)
reed switch code weer op 0 zetten, wsch in void loop
motor weer CW laten lopen

Mvg,

kees

P.S. mijn digitale camera heeft alleen maar afstandsbediening met een tablet of smartphone

Én ik heb vanmiddag net een betere en afstelbare "cameratafel" gemaakt die ik in hoogte en helling en dus waterpas kan afstellen en daarom op de optische as van het projector-objectief kan positioneren Trouwens, dat projector-objectief projecteert het filmbeeldje direct op de sensor van de digitale camera

oke, even de foto? wat zit waar aangesloten, en wat is de driver waarschijnlijk een L293 of zo, welk programma gebruik je nu en waar loop je tegen aan.

@keithjansen : film digitaliseren met eenvoudige Arduino-code - #10 by MAS3 - Nederlands - Arduino Forum

Ehh nee, voor de NEMA 17 wordt een L298N dubbele H-brug driver gebruikt... en aansluitingen zijn op foto te zien :slight_smile:

Mvg,

kees

Zie foto van NEMA 17 in de projector geplaatst, op deze manier kan de snaar ook nog losser of strakker afgesteld worden

Update...

Arduino forum wil m'n foto niet laten zien :frowning: , wat zijn de voorwaarden voor het plaatsen van jpg's eigenlijk??

Mvg ,

kees

Een foto moet niet te groot zijn.
Meestal zal 800x600 al meer dan genoeg zijn.

Verder kan een *.jpg bestand veel meer bevatten dan het plaatje.
Bijvoorbeeld wanneer je je mobiel gebruikt voor de betreffende foto, dan zet die er bij welk toestel er gebruikt is, en wanneer beschikbaar ook op welke GPS positie die foto gemaakt is.
Ik kon een aantal jaren geleden een vraagsteller vertellen dat hij met zijn Huawei P6 telefoon in een plaats Engeland ook scherpere foto´s moest kunnen maken die beter bruikbaar zouden zijn.
Waarop die persoon aardig uit z´n dak ging over hoe ik dat allemaal kon weten.
Met andere woorden, wanneer je met je mobiel foto´s maakt kun je je eigen privacy aardig te grabbel gooien (dat was destijds de reden dat ik die vraagsteller er op wees).
Daarom is dat nu een reden voor de forumsoftware om uit veiligheidsoverwegingen een foto die EXIF data bevat niet toe te laten.
Je kunt dit heel snel oplossen met een foto bewerk programma (tip: the Gimp).
Verklein de foto door 'm bij te snijden zodat alleen de relevante data er in staat.
Pas dan de resolutie aan zodat er niet teveel bits verstookt moeten worden door het forum om jouw fotootje aan iedereen te laten zien.
Sla je foto tenslotte op als *.PNG bestand, en voeg dat toe aan je bericht.
Sinds kort worden toegevoegde foto's automatisch in je bericht getoond.
Een *.PNG bestand kan geen EXIF data bevatten dus dat word met die conversie overboord gegooid, en het is het andere foto bestandsformaat dat op het forum is toegestaan.

aha, dank je wel Mas :slight_smile:

een en ander kon ook met: file info in photoshop zag ik net, opslaan als PNG idem dito :slight_smile:

dit is dus de linkerkant van de omgebouwde projector waar de originele motor (en de trafo) plaats hebben gemaakt voor de NEMA steppermotor met een poelie/snaarwiel en dat zit dan weer afstelbaar vast mbv wat mecano :slight_smile:

Op de sluiter van de projector (de "vlinder") die je nét tussen de ketting door kunt zien komt een plakmagneetje die na elke 360 graden omwenteling de mini magnetic micro reed switch van 0 naar 1 zet

nu eerst even kijken of de foto meekomt

Mvg,

kees

wel opletten waar je het magneetje plaatst, want dat moet natuurlijk wel zijn dat het transport stil staat en de lamp aan is, ofwel als de haakjes de film hebben losgelaten.

ja daar was ik natuurlijk al van op de hoogte Shooter maar bedankt voor het meedenken (btw, de LED-lamp is altijd aan) en heb je je 5 regels code al klaar?...

ik moet eerst nog bezig met een optisch- (en kleur-) neutraal glaasje voor m'n digitale camera (om de sensor te vrijwaren voor stof enz)

Wat ik nu heb - een stukje "cell" = transparant spul waar ze vroeger tekenfilms op tekenden - laat een verschil in scherpte zien in het te fotograferen filmbeeldje en dat kan absoluut niet

oh ja, ik kan het beeld van de digitale camera zien op m'n tablet met de Canon connect app :slight_smile: ons bent handig!!

daarna moet ik ook nog een beter afstel-ding van mecano maken voor m'n 10 watt LED met een "diffuser" erbij want met name de hoeken van het filmbeeldje worden niet goed uitgelicht :frowning: ' ben bang dat de volle 10 watt van m'n LED aan moet (gereguleerd met een trafo, een weerstand en een pot-meter)

btw, ik heb een paar dagen niet kunnen forummen omdat m'n ww in firefox het niet meer deed (vreemd) Net een nieuw ww gemaakt en ja hoor, ut werkt en daar ben ik weer :slight_smile:

Mvg,

kees

keithjansen:
... ik heb een paar dagen niet kunnen forummen omdat m'n ww in firefox het niet meer deed (vreemd) Net een nieuw ww gemaakt en ja hoor, ut werkt en daar ben ik weer :slight_smile:

Dat ligt niet aan het wachtwoord of aan Firefox, maar aan de forum software.
Daar is zoveel aan gerommeld om het een eigen Arduino gezicht te geven dat het nu van alle kanten rammelt en uit elkaar valt.
Er zijn dus nog veel meer problemen, en die kunnen jij en ik met geen mogelijkheid oplossen.
Geen nieuw wachtwoord maken dus en ook niet aan Firefox twijfelen.
Net zo vaak proberen tot het wel lukt.
Ga eens naar een andere pagina en probeer het van daar uit bijvoorbeeld, of je ziet dan dat je toch wel ingelogd bent.
Op deze pagina met jouw vraag, druk eens een paar keer op F5 (verversen); kan zomaar zijn dat je dan ineens wel bent ingelogd.
Niet fijn en zeer onprofessioneel, maar het is niet anders.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.