Hi,
mein Name ist Jonas. Ich habe vor einen GPS Chip (möglichst genau, evtl.
Sirf Star 3?!) über einen Mikrocontroller mit einem Bluetooth Chip zu
betreiben. Ich weiß natürlich, dass das nicht einfach sein wird, da ich
im Bereich Mikrocontroller bisher noch nicht viel gemacht habe.
Programmierkenntnisse sind Vorhanden. Nun möchte ich mich irgendwie in
das Thema einarbeiten, und bitte euch, mir Tipps zu Büchern zu geben und
mich zu beraten, welchen Mikrocontroller ich verwenden sollte. Wenn
irgendwas unklar sein sollte fragt einfach :)
Gruß,
Jonas
Naja. Zu den drei Chips gibt es Datenblaetter. Da stehen deren
Eigenschaften und Faehigkeiten drin. Lies die mal durch und dann koennen
wir probieren zu helfen, wenn Schwierigkeiten auftreten.
@Jonas
Na ja, dann sollte man aber auch schon ein bisschen Grips in die
Grundlagen investiert haben, denke ich. Was hast Du Dir denn für
Einzelmodule (GPS, uC, BT) ausgesucht? Und hast Du mal geguckt was das
so an (Daten-)Schnittstellen zur Verfügung stehen? Und, das hast Du
immer noch nicht beantwortet, was solls den werden? Ohne einen
Grundstock an Infos wird Dir keiner helfen wollen bzw. können.
PS: Das Ziel soll ein "Virtual Fence" sein, das bedeutet man bringt das
modul z.B. an ein Pferd an, und wenn es die virtuellen Grenzen
überschreitet passiert irgendetwas (Stromschlag/Ton/..., aber das soll
erstmal nicht die Sorge sein). Aus diesem Grund sollte das GPS möglichst
genau sein, evtl. mit Referenz-Station am Rand der Wiese. Was die GPS
Chipsätze angeht, was haltet ihr von den MediaTek Chipsätzen? Und mit
welchem Buch/wie soll ich in die Mikrokontroller-Programmierung
einsteigen, bzw. welcher Mikrokontroller währe überhaupt geeignet? Wenn
man einen AVR nehmen würde, würdet ihr dann das Tutorial von hier, oder
eher doch ein Buch empfehlen?
Gruß,
Jonas
Jonas schrieb:> PS: Das Ziel soll ein "Virtual Fence" sein, das bedeutet man bringt das> modul z.B. an ein Pferd an
Aha, ein verortetes Lebewesen also,...
>, und wenn es die virtuellen Grenzen> überschreitet passiert irgendetwas (Stromschlag/Ton/..., aber das soll> erstmal nicht die Sorge sein).
..dessen Reaktion auf 'irgendetwas' wohl kaum abschätzbar ist. Nun ja,
Dein Problem bzw. das Deiner Versicherung.
> Aus diesem Grund sollte das GPS möglichst> genau sein, evtl. mit Referenz-Station am Rand der Wiese.
Aaah ja, die Kosten scheinen dann nicht Dein größtes Problem zu sein.
> Was die GPS> Chipsätze angeht, was haltet ihr von den MediaTek Chipsätzen?
Mit einer GPS-Referenz, so Du sie finanzieren kannst, ist vollkommen
schnurz welchen GPS-Chipsatz zu verwendest. Stromsparend sollte es
vielleicht für Dich sein.
> Und mit> welchem Buch/wie soll ich in die Mikrokontroller-Programmierung> einsteigen, bzw. welcher Mikrokontroller währe überhaupt geeignet?
Ich denke Du hast wohl schon jetzt, in der Planungsphase sozusagen, ganz
andere Probleme als die Wahl des Mikrocontrollers zu lösen. Mir
erschliesst sich z.B. bis jetzt noch nicht was Du mit BT anstellen
willst. Hast Du schon mal eine Blockskizze Deines Projektes mit allen
bisher bekannten Aspekten parat, das nicht jeder der Dir helfen will
Deiner Salamitaktik der Informationsgewinnung darüber erliegt?
> Wenn> man einen AVR nehmen würde, würdet ihr dann das Tutorial von hier, oder> eher doch ein Buch empfehlen?
Ähm, vielleicht erst mal das (kostenlose) Tutorial?! Aber Kosten spielen
ja keine Rolle...
@GPSser
erstmal Danke für deine Hilfe!
Das Bluetooth soll den Client mit nem iPhone verbinden, um "Alarm zu
Schlagen" und evtl. die Abweichung des Referenz-Empfängers in das Signal
des Clienten einzuberechnen. Unter Referenz-Station Verstehe ich einen
fest-stehenden GPS-Empfänger mit Bluetooth, der nach dem "abstecken" des
Zaunes nicht mehr bewegt wird. Das iPhone soll dabei die Rolle des
"Hirten" spielen, indem dort der Zaun abgesteckt wird, und alle
Berechnungen stattfinden.
Gruß,
Jonas
Zum Thema fencing hatte ich mir auch schon Gedanken gemacht.
Mit einem AVR wird man wohl nicht den Algorithmus Entfernung zweier GPS
Punkte rechnen können. Aber ein Viereck begrenzt durch 2 Punkte sollte
einfach zu realisieren sein.
Het eventuell jemand ein effizienten algorithmus, zum Ermitteln, ob ein
gegebener Punkt in einem Polygon liegt?
Grüße , Adib.
Also, Jonas, nimm es mir nicht übel. Aber Du scheinst meinen Wink wegen
der notwendigen Informationen nicht verstanden zu haben, Stichwort
Projektplanung. Da ich keine Lust habe Dir alles aus der Nase zu ziehen
klinke ich mich hiermit aus.
@Adib
Wenn gegebenerpunkt.x > punkt1.x und gegebenerpunkt.x < punkt2.x und
gegebenerpunkt.y > punkt1.y und gegebenerpunkt.y < punkt2.y dann...
Müsste das nicht schon gehen?
Gruß,
Jonas
@ GPSser
Schade :(, aber kein Problem, trotzdem danke für deine Hilfe. Tut mir
leid, dass ich so dumm bin, aber ich hab noch nie etwas mit
Mikrocontrollern gemacht.
Gruß,
Jonas
Das iPhone soll nur, wenn ich mich recht erinnere, ein Class 2 Bluetooth
eingebaut haben, d.h. mit Reichweiten von ca. 10..20m. Außerdem brauchst
du für DGPS (mit Referenzstation) entsprechende Chipsätze, die auch
GPS-Korrekturdaten berechnen und ausgeben können. DGPS funktioniert
NICHT durch Berechnung der Position und anschließender Korrektur,
sondern der Referenzempfänger teilt, vereinfacht ausgedrückt, dem
mobilen Empfänger die aus seiner Sicht zu korrigierende Entfernung zum
jeweiligen Satelliten mit. Der mobile Empfänger kann dann mit diesen
Entfernungskorrekturen seine Position genauer berechnen.
Jonas schrieb:> PS: Das Ziel soll ein "Virtual Fence" sein, das bedeutet man bringt das> modul z.B. an ein Pferd an, und wenn es die virtuellen Grenzen> überschreitet passiert irgendetwas (Stromschlag/Ton/..., aber das soll> erstmal nicht die Sorge sein).
Ziemlicher Unsinn. Beim gewöhnlichem Elektrozaun wird das Tier recht
schnell von selbst begreifen, dass es innerhalb des Zaunes bleiben soll.
Bei deiner tollen Erfindung existiert diese sichtbare Barriere jedoch
nicht, das Tier wird also wahrscheinlich keine Ahnung haben, warum es
nun einen Stromschlag bekommt, und in welche Richtung es soll, damit das
wieder aufhört.
Wenn du auf einen Weidezaun pinkelst, wirst du auch schnell lernen, dass
du das lassen solltest. Wenn du hingegen einfach so aus heiterem Himmel,
ohne erkennbaren Grund, einen Stromschlag bekommst, wirst du keine
Ahnung haben warum das ganze und was du dagegen machen kannst.
Hi
warum nimmst du als "Hardware" nich einfach ein geignetes Smartphone und
bindest das dem Gaul ans Geschirr?
Da ist schon ALLES drin was du brauchst und ist leichter (?) zu
programmieren (Java). Zusätzlich zum Bluetooth (Reichweite???) ist auch
noch WLAN drin und du könntest noch ne E-Mail mit den Aktuellen Daten
abschicken dfalls du überhaupt ne SIM Karte reinmachen willst.
Was bleibt ist die Genauigkeit und das Powerproblem.
MfG
Achim
Jonas schrieb:> @Adib>> Wenn gegebenerpunkt.x > punkt1.x und gegebenerpunkt.x < punkt2.x und> gegebenerpunkt.y > punkt1.y und gegebenerpunkt.y < punkt2.y dann...>> Müsste das nicht schon gehen?>> Gruß,>> Jonas
HAllo Jonas,
das habe ich momentan auch. Also der Bereich ist als Viereck definiert
durch 2 gegenüberliegende Punkte bestimmt.
Jetzt sind aber speziell bei diesem Algorithmus die Kanten immer
parallel dem Meridian/Äquator. Manchmal liegt dann aber das Viereck
ungünstig und ich hätte es gern "gedreht".
Also suche ich einen Algorithmus der "Punkt in Polygon" sinnvoll schnell
auf einem Atmel AVR ausführt. Die Koordinaten sind bei mir als int32_t
definiert und da wollte ich Divisionen möglichst vermeiden.
Adib.
adib schrieb:> Jetzt sind aber speziell bei diesem Algorithmus die Kanten immer> parallel dem Meridian/Äquator. Manchmal liegt dann aber das Viereck> ungünstig und ich hätte es gern "gedreht".> Also suche ich einen Algorithmus der "Punkt in Polygon" sinnvoll schnell> auf einem Atmel AVR ausführt. Die Koordinaten sind bei mir als int32_t> definiert und da wollte ich Divisionen möglichst vermeiden.
Du musst einfach nur auf Deine Schulkenntnisse zurückgreifen.
* Ein n-Eck wird von n Geraden begrenzt.
* Eine Gerade wird durch zwei Punkte eindeutig definiert.
* Eine Gerade wird durch die Gleichung y=ax+b beschrieben.
Wie Du nun aus den gegebenen Eckpunkten (x1;y1) und (x2;y2) a und b
errechnest, bleibt Dir als Hausaufgabe. Oder schau in Deine alten
Schulhefte - das solltest Du eigentlich irgendwann in der 7. oder 8.
Klasse gelernt haben.
Wie entscheidest Du, ob ein Punkt (x3;y3) oberhalb/auf/unterhalb der
Geraden liegt? Klar, Du berechnest y_g=ax3+b und schaust nach, ob y3
größer/gleich/kleiner als y_g ist.
Wie entscheidest Du, ob ein Punkt links oder rechts von einer Geraden
liegt? Das ist auch eine Hausaufgabe für Dich.
Was lernst Du daraus? Bevor Du ein Problem am Rechner löst, musst Du es
erst einmal so gut verstanden haben, dass Du es auf Papier lösen kannst.
Der Rechner dient nachher nur der Automatisierung.
Heißt für Dich: zuerst die mathematischen Grundlagen lernen und dann
erst mit dem Programmieren anfangen!
fchk