PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : newbiemaschine



ckeen
17.10.2006, 14:02
möchte folgende "maschine" realisieren:
möchte einen kasten an die wand hängen.
per bewegungsmelder möchte ich feststellen, ob eine person davor steht und einen zähler starten.
wenn eine person 1min vor dem kasten steht, möchte ich ein brett um 180° drehen.
(wenn die person nur 50sekunden davorsteht und weggeht soll ein reset erfolgen, sprich man muss wieder volle 60 sekunden davorstehen bis zur drehung)

skizze:
http://img207.imageshack.us/img207/7042/kastenbo0.png

bin leider absoluter newbie: habe ich eine realistische chance das ohne grundkenntnisse in akzeptabler zeit zu realisieren, was brauche ich dafür alles und wo kann ich mich informieren?

vielen dank schonmal für eure antworten!! :)

HannoHupmann
17.10.2006, 16:12
es kommt drauf an ob das Brett welche sich bewegen soll schwer ist oder nicht. Wenn du wirklich nur eine Bewegung um 180° willst, dann ist ein Servo allerdings die bessere Wahl, da diese sich entschieden leichter ansteuern lassen.

Ansonsten fehlt nur ein Bewegungsmelder (IR Sensor, Ultraschall, oder Refelxlichtschranke etc) und ein µC. Das vielleicht noch Spannungsversorgung.

Im Prinzip nichts kompliziertes, für jeden geübten Roboter bastler ne Sache von ner Woche. Allerdings für einen Laien würd ich schon 1 bis 2 Monate rechnen, da du dich erst einarbeiten musst.

Überleg dir mal die genauen Abmessungen vom Brett und Kasten und die Gewichte die auf das Brett wirken. Dann lässt sich schneller sagen wie kompliziert die Mechanik wird.

ckeen
17.10.2006, 18:58
das brett kann sehr leicht sein (z.b. dünnes sperrholz,..)
die abmessung vorne (also das brett) sollen ungefähr 20-40cm^2 sein, der kasten drumrum dann halt ensprechend als verkleidung..

wie funktioniert dann die kommunikation zwischen motor und sensor? muss man das programmieren und wenn ja was benötige ich dafür an hardware?

ACU
17.10.2006, 19:30
Hallo!
Sensor->uC->Motor.
So ist die Kette. Die Werte vom Sensor werden eingelesen und dieser entscheidet anhand eines gespeicherten Programms, was an den Motor ausgegeben werden soll.
Programmieren mußt du das, sollte aber selbst für Anfänger machbar sein.
Um den Mikrocontroller zu programmieren brauchst du einen Programmer.
Wenn du selber löten kannst (was ich für dich hoffe), dann kannst du dir für wenig Geld einen selber löten. Wenn du auf Nummer sicher gehen willst, kauf dir einen fertigen.


MfG ACU

HannoHupmann
17.10.2006, 19:46
Wahrscheinlich geht es sogar ganz ohne µC (ist natürlich komfortabler), aber nach deiner Beschreibung ist es nämlich noch viel einfacher.

Wir haben eine Bewegungsensor, dieser läd in seiner Signal Phase (Mensch davor) einen Kondensator, wenn dieser voll geladen ist (nach 60sec) wird ein Releais oder Transistor geschaltet und der Motor dreht sich. Ein kleiner Schalter am Kasten schaltet den Motor aus wenn das Brett wieder senkrecht steht. Wenn der Mensch nun weg geht (Signal aus) wird der Kondensator entladen und das Relais zieht nicht mehr an, der Motor fährt wieder zurück bis ein weiterer Schalter (unten) bestätig, dass das Brett wieder in Ausgangstellung ist.

Ergo wir brauchen einen Kondensator oder mehrer die 60sec überbrücken, ein paar Widerstände ein Transistor einen Motor und ein paar Schalter und einen IR Sender z.B.

Vorteil gegenüber der µC Schaltung. Kein Programmieren, kein Kabel zum Programmieren, kein Code zu tippen. Kein Motortreiber oder Servo wird benötigt.
Allerdings können wir unsere Schaltung auch nicht mehr so leicht ändern, falls jemand nicht lange genug davor steht und wir den Timer verkürzen oder den Motor anders drehen wollen.

Achja eine Minute vor einem Kasten zu stehen bei dem sich nichts tut ist verdammt lang. Ich weis ja nicht was es bringen soll, geheimnachricht auf der Rückseite?

Wäre ganz nett (wenn es nicht Top Secret ist) wozu das dienen soll später. Dann können wir dir noch besser helfen es möglichst simpel zu basteln

ckeen
17.10.2006, 19:51
Achja eine Minute vor einem Kasten zu stehen bei dem sich nichts tut ist verdammt lang. Ich weis ja nicht was es bringen soll, geheimnachricht auf der Rückseite?

Wäre ganz nett (wenn es nicht Top Secret ist) wozu das dienen soll später. Dann können wir dir noch besser helfen es möglichst simpel zu basteln
yep, so kann man es am besten beschreiben:
brett soll sich drehen, und dann kurz (z.b. bis die person weitergeht/und oder: eine bestimmte anzahl an sekunden) die rückseite des bretts mit einen text zeigen. danach (person ist weg) soll ein reset erfolgen (brett also wieder in ausgangslage (also entweder wieder zurückdrehen oder um 180° weiter)) und alles kann wieder von vorne losgehen..

wichtig wäre aber schon, dass die drehung NUR erfolgt, wenn jmd. 60sek am stück vor dem kasten steht..

ckeen
19.10.2006, 16:31
vielen dank schonmal für eure antworten!! :)

..da die person mind. 60 sekunden am stück davor stehen soll, bleibt also nur die "Sensor->uC->Motor"-variante, oder?

wie funktioniert das mit den uC-mircocontroller: wo bekomme ich sowas und wie kann ich den programmieren?
(habe bereits etwas programmiererfahrungen, allerdings nur softwarebasierend, und nur c, assembler kann ich bisher noch garnicht..)

was wird das insgesamt ~ an material (Sensor+uC+Motor) kosten?

HannoHupmann
19.10.2006, 20:30
es geht auch ohne, nur musst du dir halt dann ausrechnen wie gross der Kondensator sein muss, dass er eben 60 sec braucht bis er voll ist.

Aber einfacher oder variabler ist es aufjedenfall mit Pic

ckeen
02.11.2006, 21:07
hm, verstehe teilweis leider nur bahnhof (wie gesagt: bin leider noch absolut neu in der materie 8-[ )
-> mit was würdet ihr mir raten anzufangen?

Vitis
03.11.2006, 07:23
Buch von Kühnel (stimmt das so?) über Bascom,
Demoversion derselben runterladen,
Hier im RN n Board und den ISP pestellen
und schon kanns losgehen.

ckeen
03.11.2006, 15:15
ok, thx :)

-wo kann ich den ISP bestellen?
-habe mal den pseudocode augestellt, würdet ihr das auch so machen, oder ist da ein denkfehler drin:

DO

IF (bewegungsmelder unterbrochen)
{
if (zeit==0) {zeit_läuft=1;} //startet die zeit, falls noch nicht geschehen
}

IF ((zeit>0)&&(bewegungsmelder!=unterbrochen))//person < 60min davor und person wieder weg
{
zeit_läuft=0;
zeit=0;
}

IF ((zeit>=60)&&(zeit_läuft==1))
{
zeit_läuft=0;
brett um 180° drehen
zeit2_läuft=1;
}

if (zeit2>20) //nach 20sekunden brett wieder in ausgangslage + reset der zeiten
{
zeit_läuft=0;
zeit2_läuft=0;

zeit=0
zeit2=0
}

LOOP