Connect Makelangelo Software to Custom Bot

Shop Forum Makelangelo Polargraph Art Robot Connect Makelangelo Software to Custom Bot

Viewing 18 posts - 1 through 18 (of 18 total)
  • Author
    Posts
  • #8918
    Anonymous
    Inactive

    Dear Makelangelo,

    I am constructing a drawing bot for my school from 3d printed parts, an arduino uno, adafruit motorshield v2, and adafruit nema 17’s on Windows 7. Unfortunately, I cannot get the software to move my motors as this is supposed to happen once I hook up my bot. Attached is an image of my situation and it says, ‘port opened’ which I connected to. I* am using V5 and I have transferred the firmware to the Arduino library.

    I am interested in buying a machine, but want to learn on my own first so any help would be greatly appreciated.
    Thank you,
    Erik

    image: http://www.screencast.com/t/ZpBnXhmAoGai

    #8919
    Anonymous
    Inactive

    Actually I have made some progress. I got the servo to move. I don’t think I completely understand how to install the firmware. Is it is only necessary to copy the drawbot file to the Arduino library? Arduino is not opening when I press send and I have attempted to troubleshoot.

    Thanks, Erik
    capture2

    #8933
    Anonymous
    Inactive

    Hi,

    Wanting to build a COREXY-table for the Fablab in my neighborhood, I’m in a similar situation.

    I don’t know whether it’s causing your problems, but have a few questions.

    Can you get the steppers moving, using just the example-sketches for the V2-shield ?

    Using an Uno +V2 shield you’ll need the firmware_ams-sketch as firmware.
    Standard it supports a V1-shield, have you changed it to work with a V2 ?

    If so, V2-shields are controlled by I2C. In theory you can control 127 devices using the I2C-bus, but they all need their own address.
    Standard…. the address of a V2-shield is 0x60, something you can change, using the address-jumpers on the shield. Having a few versions of the firmware, I did notice SHIELD_ADDRESS is set to 0x61 in one of the firmwaresketches as well.

    Your shield will only respond if both addresses are the same.

    If you enter the address used in a working… example-sketch, it should work. If needed you can check which address(es) your shield responds to, by uploading an I2cScanner – sketch.

    #8952
    Anonymous
    Inactive

    Thanks for the reply Bart,

    I uploaded the sketch you referenced, firmware_arms-sketch to the ArduinoUno. I defined the constants as listed in the attached beginning of the code. THe issue I am facing is that the servo is working fine, but I cannot get the steppers to move. I think it has something to do with the pins of the M1_PIN and M2_PIN. I would think that each motor has two pins as is stated on the adafruit website. Also, I don’t understand the limit switch portion.

    DO you think this is why the steppers are not moving? They move fine in ‘steppertest’ sketch in the Arduino API.

    Thanks so much,
    Erik

    #define MOTHERBOARD 2  // Adafruit Motor Shield 2
    
    // machine style
    #define POLARGRAPH2  // uncomment this line if you use a polargraph like the Makelangelo
    //#define COREXY  // uncomment this line if you use a CoreXY setup.
    //#define TRADITIONALXY  // uncomment this line if you use a traditional XY setup.
    
    // Increase this number to see more output
    #define VERBOSE         (0)
    
    // Comment out this line to disable SD cards.
    //#define USE_SD_CARD       (1)
    // Comment out this line to disable findHome and limit switches
    //#define USE_LIMIT_SWITCH  (1)
    
    // which motor is on which pin?
    #define M1_PIN          (1)
    #define M2_PIN          (2)
    
    // which limit switch is on which pin?
    #define L_PIN           (A3)
    #define R_PIN           (A5)
    
    // Marginally Clever steppers are 400 steps per turn.
    #define STEPPER_STEPS_PER_TURN    (200.0)
    // We don't use microstepping on the AMS shield.
    #define MICROSTEPPING_MULTIPLIER  (8.0)
    #define STEPS_PER_TURN            (STEPPER_STEPS_PER_TURN*MICROSTEPPING_MULTIPLIER)
    
    #define NUM_TOOLS  (6)
    #8953
    Anonymous
    Inactive

    Also, I am concerned that this code might be outdated as the version 2 of the ADAfruit uses the constants:

    #include <Wire.h>
    #include <Adafruit_MotorShield.h>
    #include "utility/Adafruit_PWMServoDriver.h"
    
    // Create the motor shield object with the default I2C address
    Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 
    
    // Connect a stepper motor with 200 steps per revolution (1.8 degree)
    
    Adafruit_StepperMotor *myMotor1 = AFMS.getStepper(200, 1);
    Adafruit_StepperMotor *myMotor2 = AFMS.getStepper(200, 2);
    #8954
    Dan
    Keymaster

    Arduino 1.6.7 made changes that broke the code. Please read the latest makelangelo-firmware to see the changes we added that fix this problem. The github diff will be especially useful.

    https://github.com/MarginallyClever/Makelangelo-firmware/commit/778525a3bb7a479545018a91e8279dc08f29d094

    #8955
    Anonymous
    Inactive

    Thanks Dan,

    I see the changes; however, I am not sure which firmware to upload:
    firmware_ams/Adafruit_MotorShield/Adafruit_MotorShield.cpp or
    firmware_ams/Adafruit_MotorShield/Adafruit_MotorShield.h

    Also there is a servo firmware too. Do I need to add these changes into the firmware_arms or just upload one of these new firmware files?

    Thank you in advance,
    Erik

    #8956
    Dan
    Keymaster

    Neither. In fact, you don’t need to copy anything to the arduino/library folder any more.

    firmware_ams.ino is the file you should open and upload.

    If you are following our recipe for building a Makelangelo then the only thing you need to change is the MOTHERBOARD.

    If your steppers are not moving, you probably have crossed wires. The coils in the stepper will fight each other and you will get a vibration, at best, and nothing, at worst.

    #8957
    Anonymous
    Inactive

    Great. I am a novice when it comes to downloading from Github so I copied the file to a new arduino sketch and get this error:

    Arduino: 1.6.5 (Windows 7), Board: "Arduino/Genuino Uno"
    
    Build options changed, rebuilding all
    
    Using library SPI in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI 
    
    Using library Wire in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire 
    
    Using library Servo in folder: C:\Program Files (x86)\Arduino\libraries\Servo 
    
    Using library SD in folder: C:\Program Files (x86)\Arduino\libraries\SD 
    
    Using library EEPROM in folder: C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM 
    
    C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++ -c -g -Os -w -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -MMD -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=10605 -DARDUINO_AVR_UNO -DARDUINO_ARCH_AVR -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\standard -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\Wire -IC:\Program Files (x86)\Arduino\libraries\Servo\src -IC:\Program Files (x86)\Arduino\libraries\SD\src -IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\EEPROM C:\Users\ERIKSV~1\AppData\Local\Temp\build2111247330064447615.tmp\sketch_feb16a.cpp -o C:\Users\ERIKSV~1\AppData\Local\Temp\build2111247330064447615.tmp\sketch_feb16a.cpp.o 
    
    sketch_feb16a.ino:127:43: fatal error: AFMotorDrawbot/AFMotorDrawbot.h: No such file or directory
    compilation terminated.
    Error compiling.
    #8958
    Anonymous
    Inactive

    I apologize, but I can’t figure out how to get this file on my computer from Github. Copying the source code directly to Arduino yields these errors that claim I am missing the ‘AFMotorDrawbot/AFMotorDrawbot.h’ file. Which I have. I think.

    Thanks again,
    Erik

    #8960
    Dan
    Keymaster

    in #8954 I said there were changes made for 1.6.7. Your post above says you’re using Arduino 1.6.5. Please update your Arduino and try again.

    #8962
    Anonymous
    Inactive

    Ok great, I updated and am getting a compiling error where the director for #include “utility/Adafruit_PWMServoDriver.h” can’t be found.

    Do you know if this library is supported by the new release?
    I have it installed in the correct location.

    Thank you again,

    Erik

    #8963
    Dan
    Keymaster

    You’ve done something to your setup. I can’t tell what from your explanation.
    Try to start again fresh. I believe you have an arduino/library that you don’t need, and it’s breaking things.
    maybe it’s an old version of the Adafruit motor shield library *from adafruit*, which should also be updated. (It’s not used by our code but the names are similar and it could cause a problem.)

    #8972
    Anonymous
    Inactive

    <img src=”http://www.screencast.com/t/wrK5gGuh9il

    ” alt=”Library Image” />

    I have attached an image of my updated libraries. It seems like I have everything in order. I just reinstalled. I can try again if you think its worth it. I agree something is off.

    Thanks for all your help.

    Best,
    Erik

    #8974
    Dan
    Keymaster

    Please

    – move AFMotorDrawbot, Adafruit-PWM-Servo-Driver-Library-master, and Adafruit-Motor-Shield-V2-Library-master from your libraries folder to your desktop.
    – restart arduino
    – recompile the sketch
    – if no error, move Adafruit-PWM-Servo-Driver-Library-master back into the libraries folder and try again.
    – if no error, move Adafruit-Motor-Shield-V2-Library-master back into the libraries folder and try again.

    This way you will find which one is the problem. You should not need AFMotorDrawbot in the libraries folder since Arduino 1.6.7

    #8975
    Anonymous
    Inactive

    Thank you for your extended efforts Dan,

    I have followed your instructions and unfortunately got the same error after moving the libraries to the desktop and restarting Arduino. As a result, I could not troubleshoot to find which one was causing the issue. I am still getting the pesky error, #include “Adafruit_MotorShield/Adafruit_MotorShield.h” no library found

    Is it possible that Arduino is looking for it in the wrong place? That wouldn’t make much sense.

    Anyway, I have started working on writing my own program with your tutorials which are very helpful.

    Thank you very much,
    Erik

    #8978
    Anonymous
    Inactive

    In my case it doesn’t matter whether I have an adafruit-lib located in documents/arduino/Libraries/ or not, it compiles as it should.
    (did have to check quite a lot of libraries and have a nagging non-downloading library manager after upgrading to 1.6.7 though, Aaaargh…)

    Anyway,
    If you open the folder documents/arduino/Makelangelo/firmware_ams, where the firmware-sketch is located, you should see two maps Adafruit_MotorShield and AFMotorDrawbot. They’re included in the update and should be left untouched.

    #8980
    Anonymous
    Inactive

    In my case, it doesn’t matter whether I remove adafruit-libs from the documents/arduino/libraries – map or not, the firmware compiles as it should. (Still have a nagging, non-downloading library-manager, after upgrading to 1.6.7, Aaaargh ):

    Anyway, in the documents/arduino/makelangelo/firmware_ams/-folder, where the firmware-sketch is located, you should see 2 folders, Adafruit_MotorShield and AFMotorDrawbot. They’re included in the firmware and should be left untouched.

Viewing 18 posts - 1 through 18 (of 18 total)
  • You must be logged in to reply to this topic.