- Mein Ziel ist es, für mein Projekt die Motoren des 3D-Druckers Anycubic Chiron mittels eines Raspberry Pi manuell zu steuern. Der Drucker funktioniert einwandfrei, außer bezüglich der Düse. Meine ursprüngliche Idee war, die Motoren einzeln manuell zu steuern, jedoch bin ich der Meinung, dass es einfacher sein muss. Gibt es eine Möglichkeit, die Motoren mithilfe einfacher Befehle über die Platine des 3D-Druckers zu steuern?
Posts by Nils_8214
-
-
Soweit ich weiss ist der 017 I2C und der S17 SPI.
Zur Not zum testen mal ein ganz anderes Gerät nehmen, wie ein ESP oder Arduino.
Arduino und ESP:
Code
Display More#include "Wire.h" void setup() { Wire.begin(); // wake up I2C bus // set I/O pins to outputs Wire.beginTransmission(0x20); Wire.write(0x00); // IODIRA register Wire.write(0x00); // set all of port A to outputs Wire.endTransmission(); } void loop() { Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write((byte)0xAA); // value to send - all HIGH Wire.endTransmission(); delay(500); Wire.beginTransmission(0x20); Wire.write(0x12); // address bank A Wire.write((byte)0x55); // value to send - all HIGH Wire.endTransmission(); delay(500); }
ok danke ich werd das mal machen habe leider kein arduino hier wir haben aber in der schule welche also werde ich das mittwoch mal testen und dann gucken vielen dank für die hilfe bis jetzt
-
Hallo,
Pin18 auch wirklich über einen Widerstand 10K auf VC geklemmt ? Am Chip selber nachmessen, ob dort die gleiche Spannung wie an Pin 9 anliegt. Dazu einfach mit einem Mutimeter gegen GND Pin 10 messen.
Wenn das alles nichts hilft noch einmal die Verdrahtung SDA und SCL / Pin 13 Chip zum GPIO2 PI und Pin 12 Chip zu GPIO3 PI überprüfen.
Dann kannst du die Funktion des Chips, falls es wirklich ein MCP23017 und kein MCP23S17 ist, dahingehend überprüfen, falls du in Besitz eines Oszis bist. Dazu müsste eine kurzzeitiger Spannungseinbruch an Pin 20 des Chip zu registrieren sein, wenn du den Taster betätigst. Die Rückmeldefunktion an den Mikrocontroller funktioniert auch ohne angeschlossenen I2C-Bus. Dh. Ist der Taster nicht betätigt, liegt dort die gleiche Spannung wie an Pin 9 des Chips an. Mit der Betätigung des Tasters muss die Spannung dort kurz auf 0 Volt abfallen.Wenn in deiner /boot/config.txt keine abweichende Beschreibung des I2C-Bus steht, und es kein MCP23S17 ist, muss du den Chip über GPIO 2 und 3 unter BUS1 finden. Hier wäre ein vollständiger Auszug auf dieser Datei hilfreich.
Da du so fröhlich und verliebt auf diesen Adafruiz Code setzt, hier gleich noch ein Dämpfer. Nur wenn der I2C Bus als Bus 1 geführt ist, funktioniert auch der Adafruit-Code. Dieser kann meiner Erfahrung nach nicht mit abweichenden Bus Nummer 0, 2 bis umgehen.
Hier solltest du mal schauen, es gibt für diesen Schaltkreis auch verschiedene Codes bei Github, die auf SMBUS anstatt auf BOARD und BUSIO setzen. -> z.B. https://github.com/sensorberg/MCP23017-pythonich habe leider kein gerät um irgendwas davon zu testen habe aber ich habe alle kabel geprüft und ein zweiten chip getestet falls der eine defekt ist.
noch etwas ist mir gerade aufgefallen also da steht mcp23017 -E/SP wenn ich das google kommt aber nur schaltpläne für mcp23017 ist das egal oder kann es daran liegen? -
I2C aktiviert ?
Plus 3,3 Volt, GND, SDA, SCL angeschlossen ?
Reset und Adresse auch ?
Dann sollte bei i2cdetect eine Ausgabe kommen, sonst ist wohl was defekt.
also ich habe bereits i2c im config aktiviert nutze 3.3 volt und habe jetzt merhmals geprüft das ich alles richtig eingesteckt hatte und auch schon ein anderen chip getestet also ist er nicht defekt
-
Steht ja da No I2C device at address: 0x20
ja, da ist ja mein Problem ich habe es angeschlossen
deswegen will ich ja wissen warum diese Meldung trotzdem kommt
-
ok also ich versuche gerade ein mcp23017 zu nutzen ich habe ihn so wie hier angeschlossen (https://www.raspberrypi-spy.co…-the-raspberry-pi-part-1/)
und das ist mein code:
Python
Display Moreimport time import board import busio import digitalio from adafruit_mcp230xx.mcp23017 import MCP23017 i2c = busio.I2C(board.SCL, board.SDA) mcp = MCP23017(i2c) # MCP23017 pin1 = mcp.get_pin(6) pin1.value = True
und das der error code
Code
Display MoreTraceback (most recent call last): File "/home/chess/.local/lib/python3.9/site-packages/adafruit_bus_device/i2c_device.py", line 176, in __probe_for_device self.i2c.writeto(self.device_address, b"") File "/home/chess/.local/lib/python3.9/site-packages/busio.py", line 175, in writeto return self._i2c.writeto(address, buffer, stop=stop) File "/home/chess/.local/lib/python3.9/site-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 52, in writeto self._i2c_bus.write_bytes(address, buffer[start:end]) File "/home/chess/.local/lib/python3.9/site-packages/Adafruit_PureIO/smbus.py", line 314, in write_bytes self._device.write(buf) OSError: [Errno 121] Remote I/O error During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/chess/.local/lib/python3.9/site-packages/adafruit_bus_device/i2c_device.py", line 182, in __probe_for_device self.i2c.readfrom_into(self.device_address, result) File "/home/chess/.local/lib/python3.9/site-packages/busio.py", line 165, in readfrom_into return self._i2c.readfrom_into(address, buffer, stop=stop) File "/home/chess/.local/lib/python3.9/site-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 59, in readfrom_into readin = self._i2c_bus.read_bytes(address, end - start) File "/home/chess/.local/lib/python3.9/site-packages/Adafruit_PureIO/smbus.py", line 181, in read_bytes return self._device.read(number) OSError: [Errno 121] Remote I/O error During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/chess/Desktop/vs/test/mcp-test.py", line 10, in <module> mcp = MCP23017(i2c) # MCP23017 File "/home/chess/.local/lib/python3.9/site-packages/adafruit_mcp230xx/mcp23017.py", line 57, in __init__ super().__init__(i2c, address) File "/home/chess/.local/lib/python3.9/site-packages/adafruit_mcp230xx/mcp23xxx.py", line 38, in __init__ self._device = i2c_device.I2CDevice(bus_device, address) File "/home/chess/.local/lib/python3.9/site-packages/adafruit_bus_device/i2c_device.py", line 63, in __init__ self.__probe_for_device() File "/home/chess/.local/lib/python3.9/site-packages/adafruit_bus_device/i2c_device.py", line 185, in __probe_for_device raise ValueError("No I2C device at address: 0x%x" % self.device_address) ValueError: No I2C device at address: 0x20
von daher das ich mich mit dem Thema nicht sehr gut auskenne hab ich erst gegoogelt und dann das hier versucht
daraus kam
Code0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- --
und dann
Code0 1 2 3 4 5 6 7 8 9 a b c d e f 00: -- -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- 37 -- -- 3a -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- 49 -- -- -- -- -- -- 50: 50 -- -- -- -- -- -- -- -- 59 -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
schlauer wurde ich daraus aber auch nicht also ich weiß nicht ganz was ich von hier aus machen kann
bedanke mich für jede hilfe schonmal im vorraus
-
oder Magnete unter den Figuren und unter dem Schachbrett Reed-Kontakte?
das mit den reed Kontakten klingt ganz gut aber wie mach ich das weil ich kann ja nicht einfach 64 solcher teile an mein raspberry klatschen
-
Also ganz einfach gesagt möchte ich ein Schachroboter bauen. Die KI läuft schon auf meinem Raspberry Pi jetzt brauche ich aber noch irgendein weg Inputs von einem Schachbrett zu bekommen. Kennt jemand einen Weg, das möglichst günstig hinzubekommen. Meine Idee wäre wie im Titel schon gesagt eine Art Drucksensor oder sowas ich konnte jedoch noch nichts passendes finden.