Inhaltsverzeichnis:

Aktualisieren Sie den Heathkit Hero Jr-Roboter mit moderner Hardware - Gunook
Aktualisieren Sie den Heathkit Hero Jr-Roboter mit moderner Hardware - Gunook

Video: Aktualisieren Sie den Heathkit Hero Jr-Roboter mit moderner Hardware - Gunook

Video: Aktualisieren Sie den Heathkit Hero Jr-Roboter mit moderner Hardware - Gunook
Video: Heathkit Hero jr robot control with Kaypro IV computer 2024, November
Anonim
Aktualisieren Sie den Heathkit Hero Jr-Roboter mit moderner Hardware
Aktualisieren Sie den Heathkit Hero Jr-Roboter mit moderner Hardware

Dies ist eher ein Work in Progress als ein fertiges Projekt, bitte bedenken Sie dies beim Lesen. Vielen Dank

Ein bisschen über diesen Roboter, woher ich ihn habe und meine Pläne dafür. (Bild aus dem Star Wars Day-Projekt 2015)

Es war wahrscheinlich irgendwann im Jahr 2005, meine Frau und ich waren auf einem lokalen Flohmarkt, wir haben uns nur umgesehen, nicht wirklich nach etwas gesucht. Draußen hatte sich ein älterer Bauer aufgebaut, er war im hinteren Teil des Ladens, und nicht viele Leute würden sich seine Waren ansehen. Ich bin froh, dass ich einer war, der hingegangen ist und nachgesehen hat.

Er hatte diesen kleinen Roboter, natürlich wusste ich was es war. Ich fragte, wie viel er wollte, und war schockiert, schockiert, sage ich Ihnen - Er wollte ganze 20,00 Dollar. Damals erzählte er mir, dass es wahrscheinlich die letzten 20 Jahre in einer Scheune gestanden hatte und bei näherem Hinsehen pelzige Schöpfer darin gelebt hatten. Drähte waren zerkaut, Hauptplatine größtenteils zerstört. Die Batterien waren nicht verwendbar. Die Sache war ein Durcheinander, und das ist so schön, wie ich daran sein kann.

Es waren sogar alle Patronen dabei, und sie sahen ziemlich gut aus, wenn man bedenkt.

So wie es aussah, sah ich etwas, das ich mir schon seit meiner Jugend gewünscht hatte. Ich habe dem Bauern 20 Dollar gegeben und danke ihm. Ich trage meinen Preis zurück zum Auto.

Es dauerte ungefähr einen Monat oder so, bis es genug sauber war, um die Elektronik zu untersuchen und zu sehen, was funktionierte und was nicht. Endlich konnte ich auch Strom bekommen, überraschenderweise hat es den Selbsttest bestanden - ich dachte, hey, großartig, das war eine tolle Sache, auch wenn ich etwas aufräumen musste. Nun, es hat einmal den Selbsttest bestanden, das war es, ich konnte es nie wieder zum Bestehen bringen.

Ich habe die Mainboards gezogen, verkauft.

Überprüft den Antriebsmotor und den Schrittmotor (der Schrittmotor hatte Drähte, die anfingen zu korrodieren und waren nicht im besten Zustand), aber beide funktionierten, also behalte ich sie.

Ich habe den Roboter als eine Art Ausstellungsstück aufgestellt, weil ich mir nicht sicher war, was ich damit machen wollte.

Ende 2015 wurde eine Gruppe von Machern und Tüftlern, denen ich beigetreten bin, gefragt, ob wir etwas für den "Star Wars Day" für unsere lokale Bibliothek machen wollten. Also überlegten wir und ich sagte, was wäre, wenn ich "Hero Jr" zurückbringen würde Leben mit den Arduino-Mikrocontrollern. Und das habe ich getan - ich habe ihm etwas zusätzliches Flair gegeben und 7 Arduinos darin verwendet … wahrscheinlich mehr, als ich brauchte, aber zu der Zeit lernte ich noch. Und ich wollte, dass es "multitasking" ist, was ich damals nicht anders konnte. Ich habe dieses Projekt hier dokumentiert:

Nun, das war 2015, das Lichtschwert wurde entfernt und die meisten Arduinos, die für dieses Projekt spezifisch waren. In den meisten Fällen kann ein Arduino dies ausführen, wenn Sie nicht möchten, dass etwas Besonderes passiert. Der Roboter kehrte als Ausstellungsstück auf seinen Platz zurück. Ich habe dabei ein paar Dinge gelernt und wollte damals sogar sein Netzteil aufrüsten. Die Zeit hat das Beste aus mir herausgeholt, und ich habe nur ein 12-V-bis 5-V-4-Port-USB-8-Amp-Board bestellt. Leider kann ich das Board jetzt nirgendwo online finden, ich weiß nicht, ob sie aufgehört haben, es zu machen, oder? Aber selbst dieses Brett saß bis jetzt in einer Kiste.

Eines der Ziele des ursprünglichen Projekts war es, ihn so altmodisch wie möglich aussehen zu lassen, aber den Großteil der Hardware durch modernes Zeug zu ersetzen. Im Jahr 2020 habe ich beschlossen, seine LEDs sogar auf RGB (Neopixel) umzurüsten, dazu später mehr. Das Ziel ist es immer noch, es Vintage aussehen zu lassen, ich denke, das tut es, bis Sie eine andere Farbe als Rot verwenden.

Dieses Projekt verwendet ein Arduino Mega 2560 Mini (Klonplatine, ich mag es nicht), ein Raspberry Pi 3+, ein Original Google AIY Board/Lautsprecher/Mikrofon, ersetzt den Schrittmotor durch einen ASMC-04 Servomotor, einen 36V LIPO-Akku aus einem kaputten Hoverboard gezogen. Ich habe einen 36 V zu 12 V 5 A DC-DC-Wandler und das 4-Port 12 V zu 5 V 8 A USB-Gerät. Ein billiger Ultraschall und LDR, ziemlich viel 3D-gedruckte Halterungen. 8 kleine ws2812 LEDs (auch bekannt als Neopixel), ein paar Cat5 Keystones und ein kurzes Cat5 Kabel. (ein Spannungsteiler aus dem 2015-Projekt, aber es war für 12 V / 24 V nicht 36 V, also ist es nicht korrekt. Es muss repariert werden), und ich verwende einen L298-Motortreiber (auch aus dem 2015-Projekt übrig)

Was vom Original-Roboter von 1984 übrig ist - 12-V-Gleichstrom-Antriebsmotor, die Original-Tastatur funktioniert auch noch, ebenso wie die Original-"Grünstrom"-LED. Die Schale und der Rahmen sind immer noch gleich. Aber das ist es. Alles andere wurde ersetzt.

Dies ist zu diesem Zeitpunkt noch in Arbeit - ich arbeite immer noch daran, eine Python-Software für den Raspberry PI zu erstellen, ich muss ein paar kleine Probleme beheben, die ich in der Arduino-Skizze gefunden habe (meistens funktioniert). Ich sage scherzhaft, dass dies eines dieser Projekte ist, die niemals enden werden. Zu diesem Zeitpunkt funktionieren alle LEDs, Ultraschall funktioniert, LDR funktioniert, Servomotor funktioniert, Antriebsmotor geht vorwärts, nicht rückwärts (kaputter Draht, den ich aufspüren muss). Die 36 V bis 12 V funktionieren und 12 V bis 5 V funktionieren, Raspberry Pi schaltet sich ein, Arduino schaltet den PI aus. Meist ist die Hardware verkabelt und funktioniert. Jetzt ist alles Software.

Schritt 1: Die LEDs und das Upgrade

Die LEDs und das Upgrade!
Die LEDs und das Upgrade!
Die LEDs und das Upgrade!
Die LEDs und das Upgrade!
Die LEDs und das Upgrade!
Die LEDs und das Upgrade!
Die LEDs und das Upgrade!
Die LEDs und das Upgrade!

Beim Originalmodell von 1984 waren die LEDs nur "seltsam" gelötet, wenn Sie mich fragen, sie mussten von der Platine entfernt sein, aber das Löten war auf der gleichen Seite wie die LEDs. Im Jahr 2015 funktionierten einige dieser LEDs, andere nicht. Ich konnte diejenigen ersetzen, die nicht funktionierten, aber das führte dazu, dass einige von ihnen sehr dunkel wurden und einige einfach nicht funktionierten. Wenn Sie sich die Platine genau ansehen, können Sie möglicherweise sehen, dass einige der Lötpads angehoben und gebrochen sind.

Sie alle teilten sich das gleiche 5V-Plus. Um sie ein- oder auszuschalten, schalten Sie die Erdung um. Was ich weiß, ist eine Sache, aber das hat mir nicht gefallen. Sie wissen, in einer Arduino-Skizze ist ein "HIGH" normalerweise eingeschaltet und "LOW" ist normalerweise ausgeschaltet - in diesem Fall hat "HIGH" die LEDs ausgeschaltet und "LOW" ist eingeschaltet. Umkehrlogik auf den LEDs.

Im Jahr 2015 habe ich dies einfach schleifen lassen, da ich mich damals um wichtigere Dinge kümmern musste.

Dieses Jahr habe ich beschlossen, dass mir die Idee der WS2812 RGB-LEDs gefällt, sie sind billig und einfach zu bedienen, sie verwenden eine Datenleitung und benötigen nur 5 V und Masse. Dies sind 5-mm-LEDs, sie passen also sehr gut in fast alles, wo eine Standard-LED passt. Ich habe sie bei eBay gefunden, sie waren etwas mehr als ich normalerweise für diese Art von LEDs bezahle, aber ich bestelle aus den Staaten Diesmal, weil der Versand aus China sehr lange dauert. Also zahlen Sie ein wenig mehr, erhalten Sie sie viel schneller. 10 LEDs kosten mich 10,00 $, nicht schlecht, aber auch kein toller Preis.

Diese zu verdrahten ist ziemlich einfach und unkompliziert, es gibt eine Masse, einen Pluspol (5V), einen Dateneingang und einen Datenausgang. Ich beschließe, eine alte Verbindungsmethode zu verwenden und diese zu verdrahten. Mein Gedanke war, wenn es schwieriger wäre, die Daten auszurichten und die Daten anzuordnen, wenn ich sie verlöten würde, könnte es auch schwieriger sein, wenn ich die Leitungen zu weit zurückschneide, sie würden nicht richtig in die bereits vorhandenen Löcher passen der Hero Jr. Mit Wire-Wrap kann ich sie ein bisschen bewegen und etwas besser formen.

Nachdem ich sie verkabelt hatte, schloss ich sie an ein Arduino UNO an und verwendete eines der Beispiele von Adafruit für die Neopixel. Glücklich, dass alles funktioniert hat. Ich legte sie in den Roboterkopf und legte doppeltes Klebeband darüber, um sie beide vor der Platine zu schützen und sie etwas besser zu halten.

Ich habe sie dann wieder an das Arduino angeschlossen und das Beispiel erneut ausgeführt, nur um sicherzustellen, dass ich keinen Draht gestoßen habe oder um sicherzustellen, dass sie nicht kurzgeschlossen sind. Alles hat funktioniert. Es hat ein wenig Zeit gedauert, alles zu verkabeln, aber ehrlich gesagt, wenn Sie einmal mit dem Verdrahten begonnen haben, können Sie ziemlich schnell vorankommen.

Die Bilder oben zeigen die ursprünglichen ROTEN LEDs, die Platine, ich habe versucht, die gebrochenen Spuren zu zeigen, die neuen LEDs in verschiedenen Stadien der Verdrahtung. Und schließlich arbeiten sie im Kopf.

Ich habe auch Videos vom Hero Jr "Mund", bei dem die LEDs beim Sprechen einen "Mund" animieren, und die Pixel, die die Adafruit-Beispiele ausführen. Ich habe sie noch nicht hochgeladen, aber das wird bald sein.

Schritt 2: Raspberry PI Google AIY und der Arduino Mega 2560 Mini

Raspberry PI Google AIY und Arduino Mega 2560 Mini
Raspberry PI Google AIY und Arduino Mega 2560 Mini
Raspberry PI Google AIY und Arduino Mega 2560 Mini
Raspberry PI Google AIY und Arduino Mega 2560 Mini
Raspberry PI Google AIY und Arduino Mega 2560 Mini
Raspberry PI Google AIY und Arduino Mega 2560 Mini

2015, Es war eine andere Zeit – und ein anderes Projekt. Ich habe 7 verschiedene Arduinos verwendet, die meisten waren entweder UNOs oder Nanos, ein paar MEGAs. Ich hatte einen nur zum Abspielen von MP3s mit einem MP3-Schild, ich hatte einen zur Steuerung eines EMIC 2-Sprachsynthesizers, einen für das Lichtschwert. Motortreiber, Schrittmotor-Tastatur, die Liste geht weiter. Unnötig zu erwähnen, dass ich seit 2015 viel gelernt habe, und ehrlich gesagt ist es erstaunlich, dass die Version von 2015 so gut funktioniert hat (ich weiß nichts und lerne und rate).

2020 - Da die "Star Wars Day"-Version immer eine einmalige Verwendung sein sollte, war mein Plan, die Dinge von Anfang an zu vereinfachen. 2015 habe ich dann mit dem Gedanken gespielt, einen Raspberry PI zu verwenden, aber ich wusste damals nicht wirklich genug, um das zum Laufen zu bringen. Ich entschied, dass ein Arduino Mega 2560 mini alles tun würde, was Input / Output benötigt, dh: Motor ein- / ausschalten, Stepper / Servo drehen, LDR lesen, Ultraschall lesen, Spannungsteiler lesen. In diesem Fall ist der Mega im Grunde ein "Dummy" -Gerät mit nur wenigen Dingen, die er wirklich tun muss. Aber der Mega wird auch verwendet, um die Tastatur zu lesen, also brauchte ich wirklich eine Methode der Zwei-Wege-Kommunikation zwischen dem Mega und der Raspberry PI. Ich entscheide mich für die Verwendung des MQTT-Protokolls, aber das schlug ein anderes Problem vor, wie man das über den seriellen Port bekommt. Zum Glück habe ich dieses Projekt auf github "serial2mqtt" https://github.com/vortex314/serial2mqtt gefunden dann an den MQTT-Broker weitergegeben. Es hat ein bisschen gedauert, bis es richtig funktioniert, aber es hat ziemlich gut funktioniert und scheint das zu tun, was ich brauche. Der Arduino Mega veröffentlicht, wenn er online ist, den Ultraschallmesswert, den ldr-Messwert und den Spannungsmesswert. Es hört auf Befehle, Motorbewegungen, Servobewegungen und was mit den LEDs zu tun ist. Obwohl das alles viel zu sein scheint, ist der Overhead ziemlich gering und es funktioniert ziemlich gut.

Der Raspberry PI wird mit Python, C++, fast allem, was den seriellen Port verwenden kann, programmierbar sein und MQTT verwenden. Da ich Google nicht mit dem AIY verwenden wollte, musste ich die Treiber installieren und sicherstellen, dass es funktionierte. Ein weiterer Glücksbringer von Github zur Rettung, Shivasiddharth macht GassistPI und hat herausgefunden, was installiert werden muss, damit dies funktioniert. Anweisungen finden Sie hier:

Der PI hostet den MQTT-Broker, espeak für Sprache und andere Software nach Bedarf. Um darauf zuzugreifen, verwende ich derzeit SSH, ich habe vor, ein Webinterface zu erstellen, aber das ist noch lange nicht getan. Ich habe mit Python für dieses Projekt "gespielt", aber ich habe noch nicht viele Programme fertig.

Einige besondere Hinweise hier:

Der ursprüngliche Mega 2560 Mini, den ich hatte, war ein kleiner Klon des ursprünglichen Arduino Mega 2560, der denselben seriellen Chip für die Kommunikation verwendet, also habe ich beim Testen einfach einen Mega in voller Größe auf der Werkbank verwendet. Leider hatte ich die Tastaturdrähte an diese Platine gelötet (Entlöten der Header-Pins, was habe ich mir gedacht, ich wünschte, ich könnte das 2015 beschuldigen, aber ich kann es nicht) Der unglückliche Teil, ich hatte ein paar dieser Drähte schnappen aus, und ich konnte auch kein sauberes Loch zum erneuten Löten bekommen. Am Ende ging ich zu einem Klon eines Klons, es ist immer noch ein Arduino Mega 2560, aber eine billigere Version und mit einem billigen seriellen Port-Chip. Dies verursacht bei mir einige Probleme mit verlorenen Paketen von etwa 10 % oder so. Es reicht nicht aus, alles wieder herauszuziehen und es mit einem anderen Board erneut zu versuchen. Aber es ist gerade genug, um mich ein wenig verrückt zu machen. Bei der "neuen" (Version 2) Mega habe ich Wire-Wrap verwendet und die Header-Pins belassen (hey vielleicht zukünftige Erweiterung, ich verwende derzeit nur 12 oder 13 Pins)

Ich habe auch 3D-gedruckt (sowie einige fehlgeschlagene Drucke wiederverwendet) Halterungen für den Raspberry PI und den Mega Mini. Ich müsste die Designdateien suchen, wenn sie jemand haben will. Sie sind nicht sehr gut, da ich ein Drehwerkzeug verwendet habe, um ein paar Löcher zu schneiden oder sie ein wenig zu formen, aber wenn jemand sie haben möchte, werde ich sie suchen.

Bilder oben: Raspberry PI 3+ mit Google AIY Hat, in einer maßgefertigten Halterung, Original Mega 2560, das ich verwenden wollte, aber wirklich durcheinander, das Ersatz-Mega 2560 (v2), mit dem ich nicht so zufrieden bin, aber es funktioniert, mit Wire-Wrap-Draht und benutzerdefinierter 3D-gedruckter Halterung

Schritt 3: Vom Stepper zum Servo

Vom Stepper zum Servo
Vom Stepper zum Servo
Vom Stepper zum Servo
Vom Stepper zum Servo

Leider habe ich davon nicht viele Bilder gemacht und ich habe keine Bilder vom alten Schrittmotor.

1984 - ein Schrittmotor war 1984 wahrscheinlich billiger als ein großes Servo, ich bin mir nicht sicher. Es gab Endanschläge, und der Stepper musste sich bei jedem Einschalten selbstständig machen. Denken Sie an 3D-Drucker und wie sie zu Hause sind.

2015 - In einem weiteren Schritt, in dem ich nicht wirklich wusste, was ich tat, entfernte ich die Endanschläge - und verlor sie. Wie ich bereits sagte, hatten die kleinen Schöpfer einige der Drähte am Stepper aufgefressen, die Drähte waren mehr / weniger freigelegt und begannen zu korrodieren. Ich bin überrascht, dass es 2015 funktioniert hat, aber es tat.

2020 - Der Stepper funktionierte nicht mehr und ich begann nach einem Ersatz zu suchen. Ich bin auf den großen Servomotor ASMC-04 gestoßen, dies war nicht die billigste Option, aber es war eine der besseren, die ich gefunden habe. Der Stepper kostete mehr als 50 US-Dollar aus China und die Hornhalterung kostete weitere 13 oder 14 US-Dollar. Für mich überwogen die Vorteile die Kosten.

Der Servotreiber ist entweder 12 oder 24 Volt, der Drehwinkel beträgt 0 bis 300 Grad (in meiner Arduino-Skizze auf 0 bis 180 begrenzt), ich kann dies mit 1 Draht vom Arduino steuern (2, wenn Sie ein Erdungskabel zählen). Es ist ein RC-Servo mit hohem Drehmoment, es ist jedoch nicht so schnell beim Drehen.

Die Enttäuschung daran war, dass selbst die mitgelieferten Spezifikationen so aussahen, als würde sie nur in den gleichen Löchern wie der Stepper montiert werden, sie passten nicht richtig zusammen und ich musste neue Löcher dafür bohren. Die Servohornhalterung ist auch viel größer als die originale Schrittmotorhalterung, so dass mehr Löcher gebohrt werden mussten.

Für mich erinnert es mich sehr an die Geschwindigkeit des Steppers, also insgesamt ein guter Ersatz und etwas, das Sie nicht bemerken werden, hat sich geändert, es sei denn, Sie schauen in den Roboter.

Bilder:

Ich habe nicht viele Bilder davon gemacht, vielleicht gibt es noch ein paar mehr, aber sie werden ungefähr so aussehen.

Schritt 4: Einige weitere Bilder

Noch ein paar Bilder
Noch ein paar Bilder
Noch ein paar Bilder
Noch ein paar Bilder
Noch ein paar Bilder
Noch ein paar Bilder
Noch ein paar Bilder
Noch ein paar Bilder

Da ich noch an diesem Roboter arbeite (zur Zeit hauptsächlich Software) dachte ich, ich teile einfach noch ein paar Bilder

Bilder:

4-Port USB 12V zu 5V 8 Ampere DC-DC-Wandler, ich kann diesen nicht mehr finden und ich wünschte, ich hätte ein paar davon gekauft.

36v LiPo-Akku aus einem kaputten Hoverboard entfernt

Bilder vom Inneren des Roboters, Drähte, ect. Noch ein paar Bilder vom LED-Austausch, noch ein paar Bilder vom Arduino Mega mit Wire-Wrap, Bild vom Ultraschall mit Abdeckung (eigentlich war das 2015 so)

Bilder des Körpers ohne die Shell darauf und ein Bild von der Verwendung einer Konsole, um es über MQTT zu testen.

Das wars für den Moment, Danke fürs Hinschauen, und wenn es euch gefällt, stimmt bitte für mich ab:-) Ich könnte noch ein paar Teile für Projekte gebrauchen LOL - Habt einen schönen Tag und versucht alle sicher zu sein.

Empfohlen: