With Instructables you can share what you make with the world, and tap into an ever-growing community of creative experts.
Tell us about yourself!
Controlling Motors with a Cell Phone
Spoken Word Chess Pieces
How to drive Dynamixel AX-12A servos (with a RaspberryPi)
How to Vacuum Form Foam (Reusing the Same Master, Many Times)
Those two variables ended up not being the problem at all, the issue was we hadn't configured the ttyAMA0 port properly because we were running Jessie on the Pi. So I would go through and make sure you followed all the steps to configure it correctly. If you're running Jessie, this link should helphttp://raspberrypi.stackexchange.com/questions/47671/why-my-program-wont-communicate-through-ttyama0-on-raspbian-jessie - wjd13
hi, did u manage to run the commands for a long period of time? can u share your values for TX_DELAY_TIME and RPI_DIRECTION_SWITCH_DELAY? - HarithA1
Data Over Light: a Laser Modem Prototype
How To Mill Tall Stuff Using Not-So-Tall Endmills
Actually we only need a piece cable with proper length attached into proper pad of this gadget to increasing its range.I already try myself and measuring the distance in the open Air, with only a piece cable I got round 80 meters, as I wrote the experiment on my blog post:http://3lektronika.blogspot.co.id/2015/09/menguji-jarak-pancar-fm-modulator-di.htmlIt's written in Indonesian, but there were Google Translate button if necessary.
Hello I wonder how was the PID control of servo motors along with the touch screen?
Cool. I'm going to add a note about it to the Instructable.
Hello again, After weeks of research, international fact-finding missions, and mad scientific experiments, we figured out the issue. The ttyAMA0 port wasn't configured properly. Since we're running Raspbian Jessie, there was no /etc/inittab to edit, and so we just skipped it. Big mistake. In the end, we followed these steps below to correctly configure the ttyAMA0 serial port, and it works like a charm now. So for anyone trying to use these with Jessie, make sure ttyAMA0 is set up properly.http://raspberrypi.stackexchange.com/questions/47671/why-my-program-wont-communicate-through-ttyama0-on-raspbian-jessie
Hey, we've been having the same problem with line 177, we normally get around it by commenting out the readData line from the move methods. But now we need to use readPosition(), and there's no getting around needing to call readData. Did you ever get it to work? - wjd13
in my case, i can read most of the time, its just sometime that it will time out..and i have not solved that.. - HarithA1
After working on it for a day I finally figured it out and come back to share, thanks to Phil Martin's post on his blog https://frillip.com/raspberry-pi-3-uart-baud-rate-.... By setting core_freq=250, it works well now and I'm going to update my rpi3 to see how it will work soon. I also mess around your ax12 class and make it works on python 3 as well, here's a link https://github.com/aimlabmu/dynamixel-rpi/blob/mas.... Thanks for the place to encourage me that it's possible to do :)
After working on it for a day I finally figured it out and come back to share, thanks to Phil Martin's post on his blog https://frillip.com/raspberry-pi-3-uart-baud-rate-workaround/. By setting core_freq=250, it works well now and I'm going to update my rpi3 to see how it will work soon. I also mess around your ax12 class and make it works on python 3 as well, here's a link https://github.com/aimlabmu/dynamixel-rpi/blob/mas.... Thanks for the place to encourage me that it's possible to do :)
another thing is that instead of using 74LS24, I use 74LS241N. Is it different?
Hi guys, I'm new to raspberry and circuit but I want to make some servos connection using rpi and dunamixels. Now I tried following many links but still could not get motor to move. Here's what I've doneI'm using rpi 3 running Raspbian Jessie. I have connected dynamixel to rpi like you show and config following this http://www.oppedijk.com/robotics/control-dynamixel... since there is no /etc/inittab anymore so I did following this http://raspberrypi.stackexchange.com/a/47851 then I tried reading position from your lib but the it always stuck and have to brake (ctrl+c) and it shows where it stuck:```<ipython-input-7-499934bba478> in <module>()----> 1 test = servos.readPosition(15)/home/pi/Robot/ax12/ax12.pyc in readPosition(self, id) 604 outData += chr(Ax12.AX_INT_READ) 605 outData += chr(checksum)--> 606 Ax12.port.write(outData) 607 sleep(Ax12.TX_DELAY_TIME) 608 return self.readData(id)/usr/local/lib/python2.7/dist-packages/serial/serialposix.pyc in write(self, data) 523 assert timeout is None 524 # wait for write operation--> 525 abort, ready, _ = select.select([self.pipe_abort_write_r], [self.fd], , None) 526 if abort: 527 os.read(self.pipe_abort_write_r, 1)KeyboardInterrupt: In :```I have no clue now where I'm doing it wrong, any idea?
Hello again thiagohersan,After looking at how T-Kuhn used the library here: (https://github.com/T-Kuhn/ScrewPicker/blob/master/ax12/ax12.py) we noticed that he just commented out the readData at the end of every write function. We did the same, and now everything works fine. So if anyone ever has a similar problem, try just commenting out that line. Thanks for all of your constant help :)
qi are the coordinates of the platform connectors relative to the base coordinate system. I think I used mm to measure. You can measure with a ruler. It's the (x,y,z) distance from the origin in the center of the base, at the height of the motor arms.Makes sense for the home position be 0, no? This is the angle of the servo arm, which varies from -90 to 90 (or 0 to 180). I defined home position to be servo arm parallel to the base and platform, and called this 0 degrees. The arms then go -90 degrees (when the arm swings down) to 90 degrees when they swing up.Beta is the angle of rotation of the motor itself relative to the base. In your drawing, the angle labeled "Base Angle" is the beta for that one motor. You have to measure that one and all others.
Cool.Make sure each motor has its own address. I forgot to do that once and wasted a lot of time debugging something that wasn't a bug....
sends me cascade-haar.xml email@example.com, thanks
Hi thiagohersan, I have been working with Ben on getting the servo to move consistently. This afternoon, I tried varying the TX_DELAY_TIME as well as the RPI_DIRECTION_SWITCH_DELAY, but I still receive the timeouts from line 177 when trying to use readData(). For some reason, the try statement(see below) keeps getting exceptions.try: assert ord(reply) == 0xFF except: e = "Timeout on servo " + str(id) raise Ax12.timeoutError(e)We will double check the uart circuit, and see if we can find anything. We're getting in another 3 servos soon as well, and perhaps running more than 1 will resolve the problem. Once again, thanks for your time, and please write if you have any thoughts on what we might change! :)
Hi Thiagohersan.In your code, I don't know how to get the coordinates q[i].x, q[i].y, q[i].z because I have no idea to get (rotation.x), (rotation.y), (rotation.z) in my platform.And the angle of servo arm (α0) in the home position in equation (12) is 0 for each servo???Finnaly, Can you help me to get Beta angle in this image? Hope you can explain to me soon!Thank you. :)
For TX_DELAY_TIME, do you mean from 0 to 5 seconds ?I think too long a delay is also bad. Did you try just varying it a bit, like from 0.00002 to 0.00005 or 0.00001?What about RPI_DIRECTION_SWITCH_DELAY ? That one is also a bit of hack...If none of the functions are working, or they kind of work once, but then give timeouts, double check the uart circuit, maybe.... Because moveSpeedRW() and setAngleLimit() are all over our code, and they use readData(). They do still give some timeouts from time to time, but it's due to how often we send commands to the motors.We haven't used functions like readTemp() or readPosition(), so they could be buggy, specially in the op commands being sent to the motors (the variables checksum and outData, for example).
Hi Sir, I have a question that which software do you use for Stewart Platform Simulation math testing?
Hi, the circuit we are using is a 74LS241. We tried changing the TX_DELAY_TIME, going as low as 0 and as high as 5 and everywhere in between but to no avail. I think that the problem is somewhere in the readData function, as it keeps giving us that same timeout error no matter what sort of delay we use. Any thoughts? Thanks very much for your helpAlso, our Pi is running the latest version of Raspbian Jessie, if that is important.
Hi.What circuit are you using between the RPi and the motors?There're some nice hard-coded delays in the code that are specific to my circuit. Different circuits might need slightly different numbers.Also, if you have multiple motors, make sure you set them up to have different id numbers. (looks like you're only using one, but I figured I'd mention this anyway)The purely read...() functions were not very extensively tested.... there could be a bug in those, but move(), moveSpeed(), moveRW(), moveSpeedRW(), etc have been tested and used.
Hello, I have been trying to use your library to run some motors, but whenever readData is called, we get a timeout error, from line 177. If we try to move a motor it will move, but then the error will be thrown. If we simply try to read any data, such as temperature, nothing will happen, and the error will be thrown. Some sample code is belowfrom ax12 import Ax12;import sys;import time;self = Ax12();self.move(1, 500);Do you have any idea what is causing the problem? We double checked all the connections and they seem good. Could we possibly have messed something up when configuring the pi that could cause this? Thanks very much for your time.
Hi.I've seen a mistake in your code, more speific in the line 103 :float M0 = 2*hornLength*(h0+q[i].z).In the paper said: N0 = 2*hornLength*(h0+q[i].z) not M0Is that right? or I'm wrong :))And I was wondering between equation (9) and (12). What is the different between M0 = 2a(zp - zb) (9) and M0 = 2a (xp - xb) (12).I hope you will explain for me soon. Thank you!
Hi.I've seen a mistake in your code, more speific in the line 103 :float M0 = 2*hornLength*(h0+q[i].z).In the paper said: N0 = 2*hornLength*(h0+q[i].z) not M0Is that right? or I'm wrong :))
what are the problems that we may face when designing Stewart Platform?I am a polytechnic student in electric engineering , and really have no idea about this platform.I even can't understand the mathematics. I really need your help .Thank you so much!!!
Dear all get good idea from circuit
will give u up to 2 km rang
Join 2 million + to receive instant DIY inspiration in your inbox.
Download our apps!
© 2016 Autodesk, Inc.