heim - Service
BEAM-Roboter. Einen Roboter zu Hause bauen Hat Ihr Roboter besondere Anforderungen?
26.01.2011, 09:18
Quelle:

Normalerweise versuche ich in Artikeln, das Material in der Reihenfolge seiner Entwicklung darzustellen, aber ich denke, dass dies nicht der Fall ist. Lassen Sie uns daher die Entwurfsphasen des Grundlegenden überspringen Elektrischer Schaltplan, PCB-Layout und alles andere. In Abbildung 1 sehen wir, was für eine „Schande“ ich erlitten habe.

Auf den ersten Blick scheint es nur ein Haufen Eisen, Elektronik und Drähte zu sein. Dies liegt wahrscheinlich daran, dass Stücke aus unterschiedlichen Materialien verwendet wurden. Lass es uns herausfinden.

Jetzt ist alles in Ordnung. Der Attiny2313-Mikrocontroller empfängt ein Hindernissignal (logische Eins oder Null) von zwei Infrarotsensoren. Dann steuert der Mikrocontroller laut Firmware den L293D-Motortreiberchip (Steuerstrom bis zu 1 Ampere). Abbildung 3 zeigt ein Foto eines umgekehrten Roboters.

Die Grundlage für die Konstruktion eines selbstgebauten Roboters ist ein trapezförmig gebogener Metallstreifen. Der Biegewinkel beträgt ca. 120°. Grundsätzlich ist es wichtig, dass auf beiden Seiten die gleiche Biegung entsteht, sonst bewegt sich der Roboter nicht geradlinig. Andererseits kann das, was ein Mechaniker oder Elektronikingenieur schlecht gemacht hat, manchmal durch einen Programmierer ausgeglichen werden, indem er beispielsweise PWM verwendet, um dies zu erreichen geradlinige Bewegung Roboter

Aus dem Geometriekurs in der Schule wissen wir alle, dass eine Ebene entweder durch drei Punkte oder durch eine Gerade und einen Punkt im Raum gebildet wird. Der dritte Punkt ist ein frei rotierendes Rollenrad.

Empfänger von IR-Sensoren und Fototransistoren befinden sich unten, um die Beleuchtung zu reduzieren und Fehlalarme zu minimieren. Die IR-Sensoren selbst sind an beweglichen Scharnieren montiert, wodurch Sie den Scanbereich anpassen können. Interessant war übrigens die Reaktion meiner Katze auf den kriechenden Roboter im Flur? Meine Katze ist schwarz. Ich habe die IR-Sensoren auf graue Tapete eingestellt, sodass sich der Roboter fast im allerletzten Moment vor der Katze drehte und die Katze mit einem lauten Fauchen einen Schritt zurücksprang.

Die nächste Modifikation für den Roboter waren IR-Sensoren an seinem Bauch, die es dem Roboter ermöglichten, einer schwarzen Linie zu folgen, die mit einem Marker auf weißes Papier gezeichnet wurde. Die Umsetzung erforderte drei Sensoren und einen Komparator auf dem LM339N-Chip, um den Mikrocontroller zu entlasten. Ein wesentlicher Nachteil erwies sich als notwendig Voreinstellung Sensoren mit Trimmwiderständen je nach Beleuchtung im Raum.

P.S. Der Lohn für die Zeitverschwendung bei der Entwicklung eines sinnlosen Geräts wird vielleicht die Klarheit der Funktionsweise und des Speichers des Mikrocontrollers sein, die so lange im Regal verstauben, bis sich vielleicht jemandes Kind dafür interessiert.

Um Ihren eigenen Roboter zu erstellen, müssen Sie weder einen Abschluss machen noch viel lesen. Es reicht aus, es zu verwenden Schritt für Schritt Anweisungen, das von Robotik-Meistern auf ihren Websites angeboten wird. Im Internet findet man einiges nützliche Informationen, das sich der Entwicklung autonomer Robotersysteme widmet.

10 Ressourcen für den angehenden Robotiker

Die Informationen auf der Website ermöglichen es Ihnen, selbstständig einen Roboter mit komplexem Verhalten zu erstellen. Hier finden Sie Programmbeispiele, Diagramme, Referenzmaterialien, vorgefertigte Beispiele, Artikel und Fotos.

Für Anfänger gibt es auf der Website einen separaten Bereich. Die Ersteller der Ressource legen großen Wert auf Mikrocontroller, die Entwicklung universeller Platinen für die Robotik und das Löten von Mikroschaltungen. Finden Sie auch hier Quellcodes Programme und viele Artikel mit praktischen Ratschlägen.

Auf der Website gibt es einen speziellen Kurs „Schritt für Schritt“, der den Prozess der Erstellung der einfachsten BEAM-Roboter ausführlich beschreibt automatisierte Systeme basierend auf AVR-Mikrocontrollern.

Eine Website, auf der angehende Roboterentwickler alle notwendigen theoretischen und praktischen Informationen finden. Außerdem werden hier zahlreiche nützliche aktuelle Artikel veröffentlicht, Neuigkeiten aktualisiert und Sie können im Forum Fragen an erfahrene Robotiker stellen.

Diese Ressource ist dem schrittweisen Eintauchen in die Welt der Roboterentwicklung gewidmet. Alles beginnt mit Kenntnissen über Arduino, danach wird der unerfahrene Entwickler über AVR-Mikrocontroller und modernere ARM-Analoga informiert. Detaillierte Beschreibungen und die Diagramme erklären sehr deutlich, wie und was zu tun ist.

Eine Seite darüber, wie man mit eigenen Händen einen BEAM-Roboter baut. Es gibt einen ganzen Abschnitt, der den Grundlagen sowie Logikdiagrammen, Beispielen usw. gewidmet ist.

Diese Ressource beschreibt sehr anschaulich, wie Sie selbst einen Roboter erstellen, wo Sie anfangen, was Sie wissen müssen, wo Sie nach Informationen und den erforderlichen Teilen suchen müssen. Der Dienst enthält auch einen Bereich mit Blog, Forum und Neuigkeiten.

Ein riesiges Live-Forum, das der Entwicklung von Robotern gewidmet ist. Hier sind Themen für Einsteiger offen, interessante Projekte und Ideen werden besprochen, Mikrocontroller, fertige Module, Elektronik und Mechanik beschrieben. Und das Wichtigste: Sie können jede Frage zum Thema Robotik stellen und erhalten eine ausführliche Antwort von Profis.

Die Ressource des Hobbyrobotikers ist vor allem seinem eigenen Projekt „Homemade Robot“ gewidmet. Hier finden Sie jedoch viele nützliche thematische Artikel, Links zu interessanten Websites, erfahren mehr über die Leistungen des Autors und diskutieren verschiedene Designlösungen.

Die Arduino-Hardwareplattform eignet sich am besten für die Entwicklung von Robotersystemen. Die Informationen auf der Website ermöglichen es Ihnen, diese Umgebung schnell zu verstehen, die Programmiersprache zu beherrschen und mehrere einfache Projekte zu erstellen.

Vor etwa 20 Jahren, als ich Student am ChPT war und in der Praxis bei Stankomash arbeitete (dies ist eine separate epische Geschichte, die in meinem Blog ausführlich beschrieben wird), drückte ich mich nachmittags, wie es sich für einen respektablen Studenten gehört, vor der Arbeit und kraxelte hinein Suche nach Leckereien durch zahlreiche interne Industriedeponien, die großzügig in der Nähe jeder verlassenen Werkstatt und sogar innerhalb der Werkstätten verstreut waren;) Was auch immer da war, aber im Grunde alles Eisenmetall. Nichteisenmetalle, darunter auch Motorwicklungen, wurden schon lange vor mir gestohlen.

Ich war auf der Suche nach kaputter Elektronik, manchmal waren darin vereinzelt KM-Kondensatoren, ETO und andere Seltenerd-Goodies enthalten, die bekanntermaßen für 800 Dollar pro Kilo gekauft wurden (das Gehalt betrug damals hundert Dollar und sie zahlten es einmal alle sechs). Monate) und an örtliche harte Arbeiter. Es gab nur genug Gehirne, um Aluminiumheizkörper und Kupferstangen aufzusammeln. Was mir im Allgemeinen ins Auge fiel, war ein Ständer einer CNC-Maschine aus der Ära der Automatisierung und Beschleunigung der 80er Jahre der Perestroika.

Es war Robotron, ein riesiger Sarg aus 2 mm dickem Eisen. Es scheint mir, dass er sogar einem Schuss eines Kalaschnikow-Sturmgewehrs standhalten konnte, obwohl es durch die Reling schießt. Beim Versuch, die Kühler herauszubrechen, wurden die Platinen zerquetscht, das Fünf-Zoll-Laufwerk blieb jedoch trotz des soliden Aluminiumgehäuses intakt. Was mich überraschte, war, dass der Pancake-Antrieb nicht von einem dreiphasigen Synchronmotor stammte, wie bei späteren Diskettenlaufwerken.

Scheiß drauf! Die Spindel wurde von einem Kommutatormotor über einen Riemen gedreht. Wow, dachte ich. Wenn ein Sammler mit einer so präzisen Aufgabe betraut wurde, dann muss er ein wirklich großartiger Sammler sein.


Ein interessantes Detail fiel in meine hartnäckigen Hände. Dreiachsiger digitaler Beschleunigungsmesser kombiniert mit einem digitalen Magnetometer, Empfindlichkeit bis zu 1,5 Gauss. Die Stärke des Erdmagnetfeldes beträgt übrigens etwa 0,4 Gauss. Fast ein Drittel der Reichweite, also könnte dieses Ding einen ziemlich guten elektronischen Kompass abgeben. Der Ausgabepreis beträgt übrigens nur 350 Rubel pro Chip. Ganz schön göttlich, wenn man die Füllung an Bord und die Empfindlichkeit dieses Mikroschaltkreises bedenkt.

Chip LSM303DLH
Besonders interessant sieht der Bauch aus – natürlich Leiterplatte. Mit Schienen und Übergangslöchern. Ich wollte sofort keine Wege darunter machen. Sonst reißt irgendein Nagel auf dem Weg den Lack am Bauch ab und kürzt ihn in die falsche Richtung.


Was mir außerdem nicht gefallen hat, war, dass die Kontaktpads von den Enden aus nicht sichtbar sind. Die Positionierung und Überprüfung der Siegelgenauigkeit ist schwierig. In dieser Hinsicht sind QFN-Gehäuse komfortabler.


Die Gehäusegröße beträgt 5x5 mm. Wie eine Notebookzelle. Grusel:)

Beim Bau verschiedener Roboter ist es manchmal notwendig, mehrere Servos zu verwenden. Und wenn es sich um eine Art sechsbeinige Spinne handelt, dann gibt es dort einfach jede Menge Antriebe. Wie verwaltet man sie? Im Forum beklagten einige Leute sogar, dass sie für diese Zwecke Samt hätten verwenden sollen. Aber was zum Teufel ist ein FPLI, wenn der gewöhnlichste Mikrocontroller sogar drei Dutzend Servos steuern kann und für diese Aufgabe nur einen Timer benötigt?

Wer also nicht mehr weiß, wie die Servos gesteuert werden, kann vorbeischauen und sein Wissen auffrischen.

Nehmen wir zunächst 8 Servos. Jedes Servo empfängt das folgende Signal:


Jedes Servo sollte die folgende Sequenz von seinem Controller-Zweig haben. Völlige Ähnlichkeit mit PWM für 8 Kanäle. Wie kann dieser Fehler generiert werden? So einfach ist das. Das Prinzip hier ist einfach. Die Impulse sind langsam – nur 50 Hz, sie ändern sich auch selten – das Servo ist ein träges Ding, man kann es also nicht einmal hundertmal pro Sekunde bewegen. Wir haben also einen Wagen und einen kleinen Karren für die Verarbeitung.

Die Impulse selbst werden von einem Timer erzeugt Hintergrund. Das Prinzip der Erzeugung ist einfach: Alle Impulse starten gleichzeitig und setzen ihren Pegel auf 1.
Anschließend wird die Dauer des ersten Impulses in das Vergleichsregister des Timers eingetragen. Wenn der Vergleich unterbrochen wird, passiert Folgendes:

  • Setzen Sie das Bit am ersten Kanalport zurück
  • Laden der zweiten Impulsdauer in das Timer-Vergleichsregister

Dies ist ein weiterer Roboterkonstrukteur – ein mechanischer Arm mit fünf Freiheitsgraden. Velleman Roboterarm KSR10
Das Ding ist ziemlich selten, weil... Ich habe bei Ebay nur einen Verkäufer gefunden und dieser Rettich möchte nicht in die ehemalige UdSSR verschickt werden. Es ist in mehreren bürgerlichen Geschäften zu finden und scheint bei ChiD gewesen zu sein, aber wir haben es dort gekauft :) Der geforderte Preis liegt zwischen 60 und 100 Dollar.

Das Gerät selbst ist nur ein weiteres fortgeschrittenes Spielzeug, aber mehr brauchen wir zum Verwöhnen und Ausarbeiten von Algorithmen nicht.

Oft müssen große Abfolgen komplexer Vorgänge durchgeführt werden – beispielsweise eine Flugmission für einen Roboter. Ja, Sie können das Ganze in das Hauptprogramm packen, aber plötzlich geht etwas schief und der Algorithmus muss überarbeitet werden – das gesamte Programm muss überarbeitet werden.

Hier weiter Hilfe wird kommen virtuelle Maschine. Im Endeffekt sind die wichtigsten Verfahren zur Steuerung des Geräts im Speicher des Controllers, im Hauptprogramm, abgelegt. Handelt es sich um einen Roboter, dann können das so einfache Befehle sein wie „vorwärts“, „rückwärts“, „drehen“ und so weiter.

Dann brauchen wir einen Skriptprozessor, der unsere Aktionssequenz von irgendwoher – einem Skript – übernimmt und sie in Aufrufe an echte Codeteile – Mikrooperationen – umwandelt.
Der Skript-Handler kann dieselbe Dispatcher-Aufgabe sein, die im Hintergrund ausgeführt wird. Es spielt keine Rolle, woher er die Daten bezieht. Sie können über usart heruntergeladen oder aus dem EEPROM-Speicher abgerufen werden. Oder Sie können Speicher auf IIC installieren und erhalten eine austauschbare Patrone :)

Neben Roboterkonstrukteuren vertreibt Inex Global auch coole Getriebemotoren. Die gleichen, die in und stehen. Er trägt sie regelmäßig nach Tscheljabinsk. Ich habe ein paar zum Ausprobieren gekauft, ich habe eine Idee dafür, aber dazu später mehr;)

Zunächst erzähle ich Ihnen etwas über den Motor selbst. Es gibt sie in zwei Modellen IE-BO2-120M Und IE-BO2-48M, unterscheiden sich voneinander im Übersetzungsverhältnis von 1:120 und 1:48.

Erinnern Sie sich, dass ich ein russisches Handbuch versprochen habe? Ich hatte also keine Zeit und der Designer wurde schneller aus den Regalen gefegt, als ich zugestimmt hatte, das Buch zum Scannen herauszuholen. Jedoch Bschepan, einer der zufriedenen Besitzer dieses Spielzeugs, hat eine gute Tat getan und einen Scan in DejaVu gepostet.

Wenn die Leistung eines Transistors nicht ausreicht, um die Last anzutreiben, verwenden Sie ihn Verbundtransistor (Darlington-Transistor). Der Punkt hier ist, dass ein Transistor einen anderen öffnet. Und zusammen arbeiten sie als einzelner Transistor mit einer Stromverstärkung, die dem Produkt der Koeffizienten des ersten und zweiten Transistors entspricht.

Nehmen wir zum Beispiel einen Transistor MJE3055T Es hat einen maximalen Strom von 10 A und die Verstärkung beträgt nur etwa 50; damit es sich vollständig öffnen kann, muss es dementsprechend etwa zweihundert Milliampere Strom in die Basis pumpen. Ein normaler MK-Ausgang verträgt nicht so viel, aber wenn man dazwischen einen schwächeren Transistor (eine Art BC337) anschließt, der diese 200 mA ziehen kann, dann ist es einfach. Aber das ist so, damit er es weiß. Was ist, wenn Sie aus improvisiertem Müll ein Steuerungssystem bauen müssen? Es wird sich als nützlich erweisen.

In der Praxis fertig Transistorbaugruppen. Äußerlich unterscheidet er sich nicht von einem herkömmlichen Transistor. Gleicher Körper, gleiche drei Beine. Es hat nur viel Leistung und der Steuerstrom ist mikroskopisch :) In Preislisten machen sie sich normalerweise nicht die Mühe und schreiben einfach - ein Darlington-Transistor oder ein Verbundtransistor.

Unterdessen wird in Kasachstan die Entwicklung eines Cyborgs mit originellem Design auf Basis eines Controllers mit beschleunigtem Tempo fortgesetzt Bild, worüber S.W.G. meldet sich sehr aktiv in Kommentaren zu Beiträgen über seinen Roboter ab.

Unterwegs gab er mir einige seiner Arbeiten mit Seife.

SWG:

Für alle Fälle sende ich Ihnen einige der neuesten Informationen. Ich habe die Programme noch nicht fertiggestellt, ich werde den Austausch abschließen, debuggen und dann die normalen senden.

Unter den Stoßfängern wird eine 10 Millimeter dicke Platte aus ziemlich dichtem Schaumgummi oder sogar mikroporösem Gummi angebracht, ich habe mich noch nicht entschieden, ich werde es versuchen verschiedene Materialien. Es sollte weich, aber nicht sehr weich sein. Es ragt 10–15 Millimeter über die Platinen hinaus und schützt so die Hintergrundbeleuchtungs-LEDs und die Platinen selbst. Im Moment habe ich nur die Stoßstangenbretter in den Karton gelegt, um den allgemeinen Aufbau zu zeigen.

Nachdem ich mich für die Platzierung und Befestigung der Platinen entschieden habe, werde ich Verbindungskabel aus MGTF herstellen, die die optimale Länge haben, damit sie nicht umsonst baumeln, aber nicht zu sehr in die Länge gezogen werden. Ich denke auch über die Optionen, das Design und die Platzierung von Kilometerzählersensoren und Geräten nach, die in Zukunft installiert werden, um sie nicht mehrmals wiederholen zu müssen.

Auf den Stoßfängerplatinen befinden sich unten blaue Blöcke – Bodensensoren mit Fotowiderständen und weißen Hintergrundbeleuchtungs-LEDs. (Ich habe es aus Klemmenblöcken gemacht und sie stellenweise leicht gebohrt). Transparente LEDs oben – Beleuchtung des IR-Ortungsgeräts eingeschaltet TSOP(in der Mitte stehend, auf dem Kopf stehend). Die schwarzen Würfel an den Innenecken sind Optokoppler für reflektierende Kollisionssensoren. Darüber werden an den Seitenwänden Ecken angebracht – Vorhänge mit einem weißen Bereich auf schwarzem Grund oder einem Loch einer bestimmten Form.

Als die Platinen fertig waren, dachte ich, dass es möglich sei, die Optokoppler nicht oben, sondern unten auf der Platine anzulöten und die notwendigen Figuren direkt auf die Unterseite der Box zu zeichnen. Eigentlich ist es jetzt noch nicht zu spät, das zu tun, ich habe mich noch nicht entschieden. Außerdem habe ich sie auch gespiegelt in die Bibliothek gebracht, und beim Versiegeln musste ich die Beine darunter biegen, damit sie richtig entlötet werden konnten, damit sie von unten richtig passten. Im Allgemeinen haben sich eine Menge Kleinigkeiten angesammelt, über die man nachdenken kann, was Zeit verschwendet. („Die Tyrannei der Alternativen“). Mit dem Senden des Zustands der Sensoren scheint auch alles einfach zu sein, aber wenn man anfängt, eine Reihe aller möglichen Schutzmaßnahmen für alles hinzuzufügen und die korrekte Funktion zu überprüfen, wächst alles wie ein Schneeball, man muss ständig alles auf Mögliche prüfen und unmögliche Situationen, damit alles normal funktioniert. Die Kosten, beispielsweise in eine offene Luke zu fallen, sind zu hoch, und auch das ständige Verschließen aller Löcher und Türen ist keine Option ... Aber selbst wenn Sie auf Nummer sicher gehen, werden Sie sich möglicherweise überhaupt nicht bewegen.

DPM-25-N1-7T mit Getrieben (27 V, aber sie ziehen schon bei 12 gut, es werden noch mehr benötigt - ich werde einen Konverter bauen 12->27 ) und eine selbstgebaute Schwenkeinheit mit Rolle (drittes Rad).

Verbrauch bei 12 V: 33 mA im ausgeschalteten Zustand. Motoren, bei max. Geschwindigkeit ohne Last (Räder berühren den Boden nicht) = 103 mA vorwärts, 115 mA rückwärts. Wenn ein Rad blockiert ist – 300 mA, wenn beide Räder blockiert sind = 500 mA.
L293DN etwas warm. Wenn es heiß wird, werde ich den Kühler aufkleben. Ja, Frequenz PWM Ich habe vorerst 500 Hz genommen. (Periode 2 ms). Ich werde die Stromanstiegsrate in den Motoren messen und die optimalere ermitteln (Beim kürzesten Impuls sollte der Strom im Motor Zeit haben, sein Maximum zu erreichen).
Die maximale Bewegungsgeschwindigkeit auf dem Boden beträgt nun 15-20 cm/Sek. Ich brauche im Moment nichts anderes, ich renne zu schnell durch den Raum. Raddurchmesser = 80 mm (Gummi-„Donuts“ scheinen von irgendeiner Art von Sanitärarmaturen zu stammen, die es auf dem Markt in Hülle und Fülle gibt).

Ehrlich gesagt war ich sehr überrascht, als ich die Motoreigenschaften gegoogelt habe DPM

Netzteil.
Wir haben einen 12-Volt-Bleiakku, der Controller benötigt jedoch 5 Volt. Also habe ich es vermasselt Pulsblockade Ernährung. Es war natürlich möglich, etwas hinzuzufügen LM7805(wie auf meinem Steckbrett) und die Spannung daran freigeben, aber das ist eine dumme Methode. Der Punkt ist, dass der LM7805 die Spannungsdifferenz in Form von Wärme wieder ausstößt. Also Effizienz Dieses Gerät wird sein unter 50 %, und wir haben Batteriestrom. Es gibt also nur einen Ausweg – die DC-DC-Wandlung. Als Controller habe ich einen bewährten, beliebten, zugänglichen und günstigen Controller gewählt MC33063A. Ich habe nichts erfunden und eine Standard-Abwärtsschaltung verwendet ( Schritt – Runter) aus seinem Datenblatt. Wie die Schaltung dieses Netzteils funktioniert, erzähle ich euch etwas später in einem separaten Beitrag. Nach der Veröffentlichung eines Artikels in Hacker, wo ich einen Artikel über Netzteile veröffentlichte.

Nachdem Sie genügend Filme über Roboter gesehen haben, wollten Sie sicherlich schon oft Ihren eigenen Kampfkameraden bauen, wussten aber nicht, wo Sie anfangen sollten. Natürlich können Sie keinen zweibeinigen Terminator bauen, aber das ist nicht das, was wir erreichen wollen. Sammeln einfacher Roboter Jeder, der weiß, wie man einen Lötkolben richtig in den Händen hält, kann es und es erfordert keine tiefen Kenntnisse, obwohl es nicht schaden wird. Amateurrobotik unterscheidet sich nicht wesentlich vom Schaltungsdesign, ist nur viel interessanter, da sie auch Bereiche wie Mechanik und Programmierung umfasst. Alle Komponenten sind leicht erhältlich und nicht so teuer. Der Fortschritt steht also nicht still und wir werden ihn zu unserem Vorteil nutzen.

Einführung

Also. Was ist ein Roboter? In den meisten Fällen handelt es sich dabei um ein automatisches Gerät, das auf alle Umwelteinflüsse reagiert. Roboter können von Menschen gesteuert werden oder vorprogrammierte Aktionen ausführen. Typischerweise ist der Roboter mit einer Vielzahl von Sensoren (Abstand, Drehwinkel, Beschleunigung), Videokameras und Manipulatoren ausgestattet. Der elektronische Teil des Roboters besteht aus einem Mikrocontroller (MC) – einer Mikroschaltung, die einen Prozessor, einen Taktgenerator, verschiedene Peripheriegeräte, Betriebs- und permanentes Gedächtnis. Es gibt weltweit eine Vielzahl unterschiedlicher Mikrocontroller für unterschiedliche Anwendungen, auf deren Basis man leistungsstarke Roboter zusammenbauen kann. Sie werden häufig für Amateurbauten verwendet. AVR-Mikrocontroller. Sie sind bei weitem am zugänglichsten und im Internet finden Sie viele Beispiele, die auf diesen MKs basieren. Um mit Mikrocontrollern arbeiten zu können, müssen Sie in Assembler oder C programmieren können und über Grundkenntnisse in digitaler und analoger Elektronik verfügen. In unserem Projekt werden wir C verwenden. Die Programmierung für MK unterscheidet sich nicht wesentlich von der Programmierung auf einem Computer, die Syntax der Sprache ist dieselbe, die meisten Funktionen unterscheiden sich praktisch nicht und neue sind recht einfach zu erlernen und bequem zu verwenden.

Was brauchen wir

Zunächst wird unser Roboter in der Lage sein, Hindernissen einfach auszuweichen, also das normale Verhalten der meisten Tiere in der Natur zu wiederholen. Alles, was wir brauchen, um einen solchen Roboter zu bauen, finden wir im Radiofachhandel. Lassen Sie uns entscheiden, wie sich unser Roboter bewegen wird. Ich denke, am erfolgreichsten sind die Ketten, die in Panzern verwendet werden. Dies ist die bequemste Lösung, da die Ketten eine größere Manövrierfähigkeit als die Räder eines Fahrzeugs haben und bequemer zu steuern sind (zum Wenden reicht es, die Ketten zu drehen). in verschiedene Richtungen). Daher benötigen Sie einen Spielzeugpanzer, dessen Ketten sich unabhängig voneinander drehen. Sie können einen in jedem Spielzeugladen zu einem vernünftigen Preis kaufen. Von diesem Panzer benötigen Sie lediglich eine Plattform mit Gleisen und Motoren mit Getrieben, den Rest können Sie bedenkenlos abschrauben und wegwerfen. Wir brauchen auch einen Mikrocontroller, meine Wahl fiel auf ATmega16 – er verfügt über genügend Anschlüsse zum Anschluss von Sensoren und Peripheriegeräten und ist im Allgemeinen recht praktisch. Sie müssen außerdem einige Funkkomponenten, einen Lötkolben und ein Multimeter kaufen.

Mit MK ein Board erstellen



Roboterdiagramm

In unserem Fall übernimmt der Mikrocontroller die Funktionen des Gehirns, aber wir beginnen nicht damit, sondern damit, das Gehirn des Roboters mit Strom zu versorgen. Die richtige Ernährung ist der Schlüssel zur Gesundheit, deshalb beginnen wir damit, wie wir unseren Roboter richtig füttern, denn hier machen unerfahrene Roboterbauer normalerweise Fehler. Und damit unser Roboter normal funktioniert, müssen wir einen Spannungsstabilisator verwenden. Ich bevorzuge den L7805-Chip – er ist darauf ausgelegt, eine stabile Ausgangsspannung von 5 V zu erzeugen, was unser Mikrocontroller benötigt. Da der Spannungsabfall an dieser Mikroschaltung jedoch etwa 2,5 V beträgt, müssen ihr mindestens 7,5 V zugeführt werden. Zusammen mit diesem Stabilisator werden Elektrolytkondensatoren verwendet, um Spannungswelligkeiten zu glätten, und zum Schutz vor Verpolung ist unbedingt eine Diode in den Stromkreis eingebaut.
Jetzt können wir zu unserem Mikrocontroller übergehen. Das Gehäuse des MK ist DIP (bequemer zu löten) und hat vierzig Pins. An Bord sind ein ADC, PWM, USART und vieles mehr, das wir vorerst nicht nutzen werden. Schauen wir uns einige wichtige Knoten an. Der RESET-Pin (9. Zweig des MK) wird durch den Widerstand R1 auf das „Plus“ der Stromquelle gezogen – das muss gemacht werden! Andernfalls könnte Ihr MK unbeabsichtigt zurückgesetzt werden oder, einfacher ausgedrückt, einen Fehler verursachen. Eine weitere wünschenswerte, aber nicht zwingende Maßnahme besteht darin, RESET über den Keramikkondensator C1 mit Masse zu verbinden. Im Diagramm ist auch ein 1000 uF-Elektrolyt zu sehen, der Spannungseinbrüche bei laufenden Motoren verhindert, was sich auch positiv auf die Funktion des Mikrocontrollers auswirkt. Der Quarzresonator X1 und die Kondensatoren C2, C3 sollten so nah wie möglich an den Pins XTAL1 und XTAL2 liegen.
Ich werde nicht darüber sprechen, wie man MK flasht, da Sie im Internet darüber lesen können. Wir werden das Programm in C schreiben; als Programmierumgebung habe ich CodeVisionAVR gewählt. Dies ist eine recht benutzerfreundliche Umgebung und ist für Anfänger nützlich, da sie über einen integrierten Assistenten zur Codeerstellung verfügt.


Mein Roboterboard

Motorsteuerung

Nicht weniger eine wichtige Komponente Unser Roboter verfügt über einen Motortreiber, der uns die Steuerung erleichtert. Niemals und unter keinen Umständen dürfen Motoren direkt an die MK angeschlossen werden! Im Allgemeinen können leistungsstarke Lasten nicht direkt vom Mikrocontroller aus gesteuert werden, da dieser sonst durchbrennt. Verwenden Sie Schlüsseltransistoren. Für unseren Fall gibt es einen speziellen Chip – L293D. Versuchen Sie bei solch einfachen Projekten immer, diesen speziellen Chip mit dem „D“-Index zu verwenden, da dieser über eingebaute Dioden zum Überlastschutz verfügt. Diese Mikroschaltung ist sehr einfach zu steuern und im Radiofachhandel leicht zu bekommen. Es ist in zwei Paketen erhältlich: DIP und SOIC. Aufgrund der einfachen Montage auf der Platine verwenden wir DIP im Paket. L293D verfügt über eine separate Stromversorgung für Motoren und Logik. Daher versorgen wir die Mikroschaltung selbst über den Stabilisator (VSS-Eingang) und die Motoren direkt über die Batterien (VS-Eingang). Der L293D hält einer Belastung von 600 mA pro Kanal stand und verfügt über zwei dieser Kanäle, d. h. es können zwei Motoren an einen Chip angeschlossen werden. Aber um auf der sicheren Seite zu sein, werden wir die Kanäle zusammenfassen und dann für jede Engine ein Mikro benötigen. Daraus folgt, dass der L293D 1,2 A aushalten kann. Um dies zu erreichen, müssen Sie die Micra-Beine kombinieren, wie in der Abbildung gezeigt. Die Mikroschaltung funktioniert wie folgt: Wenn an IN1 und IN2 eine logische „0“ und an IN3 und IN4 eine logische Eins angelegt wird, dreht sich der Motor in eine Richtung, und wenn die Signale invertiert sind und eine logische Null angelegt wird, dann beginnt sich der Motor in die andere Richtung zu drehen. Die Pins EN1 und EN2 sind für das Einschalten jedes Kanals verantwortlich. Wir verbinden sie und verbinden sie mit dem „Plus“ der Stromversorgung vom Stabilisator. Da sich die Mikroschaltung im Betrieb erwärmt und die Installation von Heizkörpern in solchen Gehäusen problematisch ist, wird die Wärmeabfuhr durch GND-Beine gewährleistet – besser ist es, diese auf einem breiten Kontaktpad anzulöten. Das ist alles, was Sie zum ersten Mal über Lokführer wissen müssen.

Hindernissensoren

Damit unser Roboter navigieren kann und nicht überall zusammenstößt, werden wir zwei installieren Infrarotsensor. Der einfachste Sensor besteht aus einer IR-Diode, die im Infrarotspektrum emittiert, und einem Fototransistor, der das Signal von der IR-Diode empfängt. Das Prinzip ist folgendes: Wenn sich vor dem Sensor kein Hindernis befindet, treffen die IR-Strahlen nicht auf den Fototransistor und dieser öffnet sich nicht. Befindet sich vor dem Sensor ein Hindernis, werden die Strahlen von diesem reflektiert und treffen auf den Transistor – dieser öffnet und Strom beginnt zu fließen. Der Nachteil solcher Sensoren besteht darin, dass sie unterschiedlich auf verschiedene Oberflächen reagieren können und nicht vor Störungen geschützt sind – der Sensor kann versehentlich durch Fremdsignale anderer Geräte ausgelöst werden. Das Modulieren des Signals kann Sie vor Störungen schützen, aber damit beschäftigen wir uns vorerst nicht. Für den Anfang reicht das.


Die erste Version der Sensoren meines Roboters

Roboter-Firmware

Um den Roboter zum Leben zu erwecken, müssen Sie eine Firmware dafür schreiben, also ein Programm, das Messwerte von Sensoren erfasst und die Motoren steuert. Mein Programm ist das einfachste, es enthält keine komplexen Strukturen und wird für jeden verständlich sein. Die nächsten beiden Zeilen enthalten Header-Dateien für unseren Mikrocontroller und Befehle zum Erzeugen von Verzögerungen:

#enthalten
#enthalten

Die folgenden Zeilen sind bedingt, da die PORTC-Werte davon abhängen, wie Sie den Motortreiber an Ihren Mikrocontroller angeschlossen haben:

PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;

Der Wert 0xFF bedeutet, dass die Ausgabe log erfolgt. „1“ und 0x00 ist log. „0“.

Mit folgender Konstruktion prüfen wir, ob sich vor dem Roboter ein Hindernis befindet und auf welcher Seite es sich befindet:

Wenn (!(PINB & (1< {
...
}

Wenn Licht von einer IR-Diode auf den Fototransistor trifft, wird ein Protokoll auf dem Mikrocontroller-Bein installiert. „0“ und der Roboter beginnt, sich rückwärts zu bewegen, um sich vom Hindernis zu entfernen, dreht sich dann um, um nicht erneut mit dem Hindernis zu kollidieren, und bewegt sich dann wieder vorwärts. Da wir über zwei Sensoren verfügen, prüfen wir zweimal, ob ein Hindernis vorhanden ist – rechts und links – und können so herausfinden, auf welcher Seite sich das Hindernis befindet. Der Befehl „delay_ms(1000)“ gibt an, dass eine Sekunde vergeht, bevor der nächste Befehl ausgeführt wird.

Abschluss

Ich habe die meisten Aspekte behandelt, die Ihnen beim Bau Ihres ersten Roboters helfen werden. Aber die Robotik endet hier nicht. Wenn Sie diesen Roboter zusammenbauen, haben Sie viele Möglichkeiten, ihn zu erweitern. Sie können den Algorithmus des Roboters verbessern, z. B. was zu tun ist, wenn sich das Hindernis nicht auf einer Seite, sondern direkt vor dem Roboter befindet. Es würde auch nicht schaden, einen Encoder zu installieren – ein einfaches Gerät, das Ihnen hilft, Ihren Roboter genau zu positionieren und seinen Standort im Raum zu ermitteln. Aus Gründen der Übersichtlichkeit ist es möglich, ein Farb- oder Monochrom-Display zu installieren, das nützliche Informationen anzeigen kann – Akkuladestand, Entfernung zu Hindernissen, verschiedene Debugging-Informationen. Es würde nicht schaden, die Sensoren zu verbessern – TSOPs (das sind IR-Empfänger, die nur ein Signal einer bestimmten Frequenz wahrnehmen) anstelle herkömmlicher Fototransistoren zu installieren. Neben Infrarotsensoren gibt es Ultraschallsensoren, die teurer sind und auch ihre Nachteile haben, aber in letzter Zeit bei Roboterbauern immer beliebter werden. Damit der Roboter auf Geräusche reagieren kann, empfiehlt es sich, Mikrofone mit Verstärker zu installieren. Aber was ich wirklich interessant finde, ist die Installation der Kamera und die Programmierung der darauf basierenden Bildverarbeitung. Es gibt eine Reihe spezieller OpenCV-Bibliotheken, mit denen Sie Gesichtserkennung, Bewegung nach farbigen Beacons und viele andere interessante Dinge programmieren können. Es hängt alles nur von Ihrer Vorstellungskraft und Ihren Fähigkeiten ab.
Liste der Komponenten:
  • ATmega16 im DIP-40-Gehäuse
  • L7805 im TO-220-Gehäuse
  • L293D im DIP-16-Gehäuse x2 Stk.
  • Widerstände mit einer Leistung von 0,25 W mit Nennwerten: 10 kOhm x 1 Stk., 220 Ohm x 4 Stk.
  • Keramikkondensatoren: 0,1 µF, 1 µF, 22 pF
  • Elektrolytkondensatoren: 1000 µF x 16 V, 220 µF x 16 V x 2 Stk.
  • Diode 1N4001 oder 1N4004
  • 16 MHz Quarzresonator
  • IR-Dioden: Zwei davon reichen aus.
  • Fototransistoren, auch alle, die jedoch nur auf die Wellenlänge von Infrarotstrahlen reagieren
Firmware-Code:
/*****************************************************
Firmware für den Roboter

MK-Typ: ATmega16
Taktfrequenz: 16.000000 MHz
Wenn Ihre Quarzfrequenz anders ist, müssen Sie dies in den Umgebungseinstellungen angeben:
Projekt -> Konfigurieren -> Registerkarte "C-Compiler".
*****************************************************/

#enthalten
#enthalten

Void main(void)
{
//Eingabeports konfigurieren
//Über diese Ports empfangen wir Signale von Sensoren
DDRB=0x00;
//Pull-up-Widerstände einschalten
PORTB=0xFF;

//Ausgabeports konfigurieren
//Über diese Ports steuern wir die Motoren
DDRC=0xFF;

//Hauptschleife des Programms. Hier lesen wir die Werte der Sensoren aus
//und die Motoren steuern
während (1)
{
//Lass uns weitermachen
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 1;
PORTC.3 = 0;
if (!(PINB & (1< {
//Gehe 1 Sekunde rückwärts
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
Verzögerung_ms(1000);
//Wickeln Sie es
PORTC.0 = 1;
PORTC.1 = 0;
PORTC.2 = 0;
PORTC.3 = 1;
Verzögerung_ms(1000);
}
if (!(PINB & (1< {
//Gehe 1 Sekunde rückwärts
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 0;
PORTC.3 = 1;
Verzögerung_ms(1000);
//Wickeln Sie es
PORTC.0 = 0;
PORTC.1 = 1;
PORTC.2 = 1;
PORTC.3 = 0;
Verzögerung_ms(1000);
}
};
}

Über meinen Roboter

Im Moment ist mein Roboter fast fertig.


Es ist mit einer drahtlosen Kamera, einem Abstandssensor (sowohl die Kamera als auch dieser Sensor sind auf einem rotierenden Turm installiert), einem Hindernissensor, einem Encoder, einem Signalempfänger von der Fernbedienung und einer RS-232-Schnittstelle zum Anschluss an a ausgestattet Computer. Er arbeitet in zwei Modi: autonom und manuell (empfängt Steuersignale von der Fernbedienung). Die Kamera kann auch aus der Ferne oder vom Roboter selbst ein- und ausgeschaltet werden, um Batteriestrom zu sparen. Ich schreibe Firmware für die Wohnungssicherheit (Bilder auf einen Computer übertragen, Bewegungen erkennen, auf dem Gelände herumlaufen).

Ganz nach Ihren Wünschen poste ich ein Video:

UPD. Ich habe die Fotos erneut hochgeladen und einige kleinere Korrekturen am Text vorgenommen.



 


Lesen:



So partitionieren Sie eine Festplatte

So partitionieren Sie eine Festplatte

So teilen Sie eine Festplatte in zwei Partitionen auf, ohne Daten zu verlieren, vorausgesetzt, es gibt eine Partition, die in das Hauptvolume mit dem Buchstaben (C:) umgewandelt wurde, auf...

Wir unterteilen die Festplatte in Partitionen

Wir unterteilen die Festplatte in Partitionen

Bei der Installation von Windows wird die Festplatte traditionell in mindestens zwei Partitionen unterteilt – eine kleinere Systempartition mit dem Buchstaben C und eine größere Benutzerpartition...

Der Computer piept beim Einschalten

Der Computer piept beim Einschalten

Datum der Veröffentlichung: 01.02.2011 Es kann vorkommen, dass sich der Computer nicht einschaltet, sondern zu piepen beginnt. Wenn man zuhört, wird klar, dass...

Dateierweiterungen in Windows richtig ändern So ändern Sie die Archiverweiterung

Dateierweiterungen in Windows richtig ändern So ändern Sie die Archiverweiterung

Windows-Betriebssysteme erfreuen sich großer Beliebtheit, da sie es ermöglichen, Arbeitscomputer nach Belieben des Benutzers zu konfigurieren. Noch kein einziges Betriebssystem...

Feed-Bild RSS