Ergänzungen zum Ferienprogramm

 

von DG6RB

 

Ortsverband Amberg U01

 

 

 

 

 

Ferienprogramm 2002

Der Stadt Amberg


Bastelprojekt: mobiler Schmierfink

 

 


 

Hallo liebe Teilnehmer des Ferienprogramms!

 

Ich möchte mich Euch kurz vorstellen. Ich heiße Robbi und  bin ein mobiler Schmierfink.

Soweit unterscheide ich mich fast nicht von Euch, außer dass Ihr laufen könnt und ich fahren kann. Wir haben auch sonst noch ein paar Gemeinsamkeiten. Meine 2 Augen sind die Lichtsensoren an der Unterseite, mein Gehirn sitzt in dem schwarzen „Käfer“ genannt IC auf der Platine. Mit den 2 Rädern kann ich mich fortbewegen. Werden beide angetrieben fahre ich geradeaus. Bleibt das rechte Rad stehen und das linke dreht sich, geht’s rechtsherum und umgekehrt.

 

Im Gegensatz zu Euch bin ich in meiner Freiheit stark eingeschränkt. Ich kann mich nicht frei bewegen. Mein Programmierer DG6RB hat mir beigebracht, einem schwarzen Band zu folgen. Meine Lichtsensoren erkennen das von der roten Leuchtdiode reflektierte Licht.

Bekommt zum Beispiel der rechte Sensor mehr Licht als der linke, bin ich zu weit nach rechts gefahren ( das weiße Papier wirft mehr Licht zurück). Halt sofort gegensteuern -  linkes Rad stoppen - rechtes Rad dreht weiter -  beide Sensoren sehen wieder die gleiche Lichtmenge – uff geschafft, ich bin wieder auf dem rechten Weg. Ihr seht, alles ganz einfach. Am besten kann ich Schwarz  und Weiß unterscheiden. Um das Fahren auf einer Bahn zu starten, bitte die rote Taste drücken.

 

Als Zugabe hat mir Bernd noch ein paar Kunststückchen beigebracht. Ihr könnt Sie mit dem roten Vierfach-Schalter auf der Platine auswählen. Zum Starten bitte die blaue Taste drücken. Lasst  Euch überraschen.

 

Weitere Informationen und verschiedene Vorlagen zum Bau einer eigenen Rennbahn für Robbi findet Ihr bald im Internet unter nachstehender Seite, Kopiervorlagen befinden sich am Ende dieser Anleitung  (den Kopierer dunkel einstellen für maximalen Kontrast).

 

www.amateurfunk-amberg.de   

 

 

Viel Erfolg beim Zusammenbauen und viel Spaß mit Euerem neuen Gefährten.


Aufbauanleitung

 

 

1                    Getriebemontage

 

Die nachfolgenden Schritte sind jeweils für beide Getriebehalter (links+rechts) durchzuführen.

 

Motor mit 2 Schrauben an der Getriebeplatte befestigen.


 

 

Ritzel ein kleines Stück auf die Motorwelle aufdrücken.

Zahnräder in der Reihenfolge wie abgebildet auf die Achsstifte stecken.

Zuerst ein weißes Zahnrad in der Mitte, dann das weiße Zahnrad links und zum Schluß das Laufrad mit dem roten Zahnrad auf die mittlere Achse aufschieben.

Zum Schluß die weiße Abschlußkappe auf die mittlere Achse aufdrücken.



Getriebeeinheit mit 2 Schrauben an der Grundplatte befestigen.

 

 

 


 

2                    Taster montieren

 

Zuerst die Mutter und Beilagscheibe vom Taster abschrauben, dann die beiden Taster wie abgebildet einsetzen.

 



3                    Kugel montieren

 

Kugel eindrehen bis das Gewinde oben mit der Grundplatte bündig ist.


 

 

 

 

 

4                    Platine nach Bestückungsplan montieren

 

Siehe nächste Seite


 

 

5                    Platine verdrahten und wie abgebildet montieren

 

 

Farben beachten:

Die Reihe der Kabel bei den Tastern beginnt oben mit blau, gelb, braun und zuletzt schwarz.

Bei den Motorkabeln ist die Reihenfolge von oben braun, schwarz, gelb und blau.

 

Zwischen Platine und Grundplatte werden 4 Abstandshalter mit 20mm Länge montiert.


 

 

Geschafft !

Und jetzt schnell zur Teststrecke und die erste Probefahrt gemacht.


Allgemeine Hinweise

 


Batterie                        Die 9V Blockbatterie verfügt nur über eine geringe Speicherkapazität. Um genügend Energie für viele Tage zu haben kann diese 9V Batterie gegen einen Batterieblock mit 6 Zellen Größe AA ausgetauscht werden. Ein solcher Batterieblock ist z.B. bei Fa. Conrad erhältlich.

 

 

 

Umgebungslicht          Bei direkter Sonneneinstrahlung oder sehr hellen Räumen kann es passieren das Robbi seine Bahn nicht findet. In diesem Fall Raum etwas abdunkeln.

 

Bahnen                        beim Zusammenfügen von eigenen Bahnen müssen die schwarzen Bahnen direkt und ohne weiße Zwischenräume aneinander liegen.

                                    Die Muster in dieser Anleitung nur als Kopiervorlage benutzen damit sie später wiederverwendet werden können.

                                    Eigene Entwürfe z.B. mit dem Computer sollten ein Bahnbreite von ca. 30-40mm haben.

 

Malstift                         Der Malstift sollte nur eingesetzt werden wenn eine ausreichend große Unterlage vorhanden ist um nicht versehentlich etwas anderes als das vorgesehene Papier zu bemalen. Für entstehende Schäden wird keine Haftung übernommen.

Als Malstift kann eine Kugelschreiber Mine mit 6mm Durchmesser verwendet werden. Mit einem Stück Klebeband, das um den Stift gewickelt wird kann die passende Höhe eingestellt werden (etwas länger die Kugel damit Robbi auf dem Stift fährt).



 

 

 

Anhang

 

 

Schaltplan

 

 

 

Platinen Bestückungsplan

 

 

 

Platinenlayout

 

 

 

 

Zeichnungen

 

Grundplatte

 

 

Getriebehalter

 

 

Rad

 

 

 

 

 

 

Stückliste

 

Stückliste ROBI  Ferienprogramm 2002

 

 

 

 

 

29,85

 

Bauteil

Anzahl

Preis

Lieferant

Bestellnr.

Gesamtpreis

 

Transportkugel

1,00

1,50

Pollin

41-440 399

1,50

Grund- platte

Beilagscheibe M8

0,00

0,03

 

 

0,00

Mutter M8

0,00

0,01

 

 

0,00

Grundplatte

1,00

7,00

 

 

7,00

Getriebehalter

2,00

2,00

 

 

4,00

Getriebeeinheit

Rad

2,00

1,25

 

 

2,50

Runddichtring

2,00

0,06

 

 

0,12

Lagernadel 15,8mm

2,00

0,05

 

 

0,10

Lagernadel 29,8mm

2,00

0,06

 

 

0,12

Schraube M2x8

4,00

0,01

 

 

0,04

Motor MDN4BT

2,00

0,41

Pollin

41-310 164

0,82

Schraube M3x15

4,00

0,01

 

 

0,04

Getriebe

0,20

5,60

Conrad

297704-FH

1,12

Batteriehalter

0,00

0,27

Reichelt

Halter 6xUM3

0,00

Batterie

Batterieclip

1,00

0,09

Pollin

41-270 188

0,09

Batterie

0,40

1,00

Pollin

41-270 286

0,40

Schraube M3x35

4,00

0,01

 

 

0,04

Platine

Distanzhülse 20mm

4,00

0,05

Reichelt

DK 20mm

0,20

Mutter M3

4,00

0,01

 

 

0,04

Platine

0,50

1,50

Reichelt

FEPCU 160x100mm

0,75

Transistor BD682

4,00

0,27

Reichelt

BD682

1,08

Transistor BD677

4,00

0,27

Reichelt

BD677

1,08

Transistor BC548C

4,00

0,05

Reichelt

BC548C

0,20

Widerstand 1K

8,00

0,01

 

 

0,08

Widerstand 10K

4,00

0,01

 

 

0,04

Widerstand 330R

5,00

0,01

 

 

0,05

Widerstand 470R

2,00

0,01

 

 

0,02

Widerstand LDR07

2,00

0,79

Reichelt

LDR 07

1,58

IC TL072

1,00

0,00

 

 

0,00

Poti Spindel 500R

2,00

0,43

Reichelt

962-20 500 OHM

0,86

R-Netzwerk 10K

1,00

0,12

Reichelt

SIL 9-8 10K

0,12

Resonator 4 MHz

1,00

1,00

 

 

1,00

Kondensator 100nF

2,00

0,05

 

 

0,10

Kondensator 100µF

2,00

0,04

Reichelt

Rad 100/16

0,08

Festspannungsr. 5V

1,00

0,28

Reichelt

µA 7805

0,28

Leuchtdiode 5mm rot

2,00

0,05

Reichelt

LED 5mm rt

0,10

Leuchtdiode 5mm grün

2,00

0,05

Reichelt

LED 5mm gn

0,10

Leuchtdiode 5mm rot

1,00

0,33

Reichelt

LED 5-4500RT

0,33

Prozessor PIC16C57

1,00

3,55

Reichelt

PIC 16C57C-04P

3,55

IC-Fassung 28pol.

1,00

0,08

Reichelt

GS 28

0,08

Taster blau

2,00

0,12

Reichelt

T 250A bl

0,24

 

 

 

 

Quellcode für den PIC Prozessor geschrieben in C

 

#include "E:\PICC\EXAMPLES\16C57.H"

 

#PRAGMA DEVICE PIC16C57

#USE DELAY(CLOCK=4000000)

#FUSES NOWDT

 

#define LDR_1 PIN_C0

#define LDR_2 PIN_C1

#define TAST_1 PIN_C2

#define TAST_2 PIN_C3

#define SW4    PIN_C4

#define SW3    PIN_C5

#define SW2    PIN_C6

#define SW1    PIN_C7

 

#define LED1   PIN_A0

#define LED2   PIN_A1

#define LED3   PIN_A2

#define LED4   PIN_A3

 

#define PNP1A   PIN_B0

#define NPN1A   PIN_B1

#define PNP1B   PIN_B2

#define NPN1B   PIN_B3

#define PNP2A   PIN_B4

#define NPN2A   PIN_B5

#define PNP2B   PIN_B6

#define NPN2B   PIN_B7

 

 

void main(void);

void L_OFF(void);

void R_OFF(void);

void L_R(void);

void L_V(void);

void R_R(void);

void R_V(void);

void m_run(int l, int r, int t);

void malen(void);

 

int  lauf=0;    

int  lauf1=0;  

int  time=1;

int  flag=0;

char M1=0;

char M2=0;

 

 

#BYTE RA=0x05

#BYTE RB=0x06

#BYTE RC=0x07

 

void main(void)

{             

 L_OFF(); R_OFF();

 

 while(input(TAST_1))

 {

   if(input(LDR_1))       // LINKS                      

   { output_high(LED2); }

  else

   { output_low(LED2); }

 

  if(input(LDR_2))        // RECHTS

   { output_high(LED3); }

  else

   { output_low(LED3); }

 

  if(!input(TAST_2))   // Malen

   malen();

 }

 delay_ms(1000);

                                     

 while(1)

 {

  if(input(LDR_1)&&input(LDR_2))     // beide Taster da

   { L_V(); R_V(); }

 

  if(input(LDR_1)&&!input(LDR_2))    // links da - rechts weg

   { L_R(); R_V(); }

 

  if(!input(LDR_1)&&input(LDR_2))    // links weg - rechts da

   { L_V(); R_R(); }

 

  if(!input(LDR_1)&&!input(LDR_2))   // links weg - rechts weg

   { L_R(); R_R(); }

 

  if(!input(TAST_1))                             // anhalten

   {              

    L_OFF(); R_OFF();

    delay_ms(1000);

    while(!input(TAST_1))

     {}

    while(input(TAST_1))

    {

      if(input(LDR_1))    // LINKS                      

      { output_high(LED2); }

     else

      { output_low(LED2); }

 

     if(input(LDR_2))     // RECHTS

      { output_high(LED3); }

     else

      { output_low(LED3); }

    }

    delay_ms(1000);

   }

 }

}

 

 

void malen(void)

{

 if(!input(SW1))

 {                                 // KREIS

  for(lauf1=0;lauf1<240;++lauf1)

   { m_run(255,0,1);}

 }

 if(!input(SW2))

 {           

  for(lauf1=0;lauf1<30;++lauf1)              // Zickzack

  { m_run(255,0,7); m_run(0,255,7); }

 }                         

 if(!input(SW3))

 {                                 // DREIECK

  for(lauf1=0;lauf1<10;++lauf1)

   { m_run(0,0,1);}

  for(lauf1=0;lauf1<40;++lauf1)

   { m_run(255,255,1);}

  for(lauf1=0;lauf1<40;++lauf1)

   { m_run(255,0,1);}

  for(lauf1=0;lauf1<40;++lauf1)

   { m_run(0,0,1);}

 }

 

 if(!input(SW4))

 {                                  // 2 Kreise                   

  for(lauf1=0;lauf1<240;++lauf1)

   { m_run(255,0,1);}

  for(lauf1=0;lauf1<30;++lauf1)

   { m_run(0,0,1);}

  for(lauf1=0;lauf1<240;++lauf1)

   { m_run(0,255,1);}

 }

 L_OFF(); R_OFF();

}

 

 

void L_OFF(void)

{

 output_low(NPN1A); output_low(PNP1A);

 output_low(NPN1B); output_low(PNP1B);

 output_low(LED1);  output_low(LED2);

}

 

void R_OFF(void)

{

 output_low(NPN2A); output_low(PNP2A);

 output_low(NPN2B); output_low(PNP2B);

 output_low(LED3);  output_low(LED4);

}

 

void L_V(void)

{

 output_high(NPN1A); output_low(PNP1A);

 output_low(NPN1B);  output_high(PNP1B);

 output_high(LED2);  output_low(LED1);

}

 

void L_R(void)

{

 output_low(NPN1A);  output_high(PNP1A);

 output_high(NPN1B); output_low(PNP1B);

 output_high(LED1);  output_low(LED2);

}

 

void R_V(void)

{

 output_high(NPN2A); output_low(PNP2A);

 output_low(NPN2B);  output_high(PNP2B);

 output_high(LED4);  output_low(LED3);

}

 

void R_R(void)

{

 output_low(NPN2A);  output_high(PNP2A);

 output_high(NPN2B); output_low(PNP2B);

 output_high(LED3);  output_low(LED4);

}       

 

void m_run(int l, int r, int t)

{        

 int lauf=0;

 int run=0;

 for(lauf=0;lauf<=t;++lauf)

 {

  for(run=0;run<255;++run)

   {

    if(r>run){ /*R_V*/ output_high(NPN2A); output_low(PNP2A); output_low(NPN2B);  output_high(PNP2B); }

    else     { /*R_O*/ output_low(NPN2A); output_low(PNP2A);  output_low(NPN2B); output_low(PNP2B);   }

    if(r==0) {/*R_R*/ output_low(NPN2A);  output_high(PNP2A); output_high(NPN2B); output_low(PNP2B);  }

 

    if(l>run){ /*L_V*/ output_high(NPN1A); output_low(PNP1A); output_low(NPN1B);  output_high(PNP1B); }

    else     { /*L_O*/ output_low(NPN1A); output_low(PNP1A);  output_low(NPN1B); output_low(PNP1B);   }

    if(l==0) { /*L_R*/ output_low(NPN1A);  output_high(PNP1A); output_high(NPN1B); output_low(PNP1B); }

   }

  delay_us(2);

 }

}

 

 

 

Vorlagen zur Erstellung eigener Bahnen

 (auf DIN A4 ausdrucken und auf DIN A3 kopieren)

 


Bahn in Form einer 0 (Null)

 

Kreuzung

 

Gerade

 

Kurve rechts

 

 

 

Bilder der ersten Prototypen

 

 

 

 

Teststrecke  für den ersten Prototypen

 

 

für weitere Unterlagen Email an: DG6RB@DARC.de