Ergänzungen zum Ferienprogramm
von DG6RB
Ortsverband Amberg U01
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).
Viel Erfolg beim
Zusammenbauen und viel Spaß mit Euerem neuen Gefährten.
Aufbauanleitung
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.
Zuerst die Mutter und
Beilagscheibe vom Taster abschrauben, dann die beiden Taster wie abgebildet
einsetzen.
Kugel eindrehen bis das
Gewinde oben mit der Grundplatte bündig ist.
Siehe nächste Seite
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).
Zeichnungen
Stückliste
|
|
|
|
|
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)
Bilder der ersten Prototypen
Teststrecke für den ersten Prototypen
für weitere Unterlagen
Email an: DG6RB@DARC.de