New to Robotics. Where should I start?

I'm a doctor of physics and program PC's. Currently I prefer Pascal. What I'm wanting to do is find a reasonably inexpensive motion control I/O card and learn how to use the PC to instruct and control it. Am I in the right forum to learn this? If so, can someone recommend a good place to start with making hardware purchases? I prefer Amazon.

Reply to
DrCharbonneau
Loading thread data ...

Clearly from the lack of response, and indeed traffic, you are probably not in the correct spot to get a reply. Might I suggest that you look at the Linuxcnc.org site as a beginning, assuming that your interest might be classical CNC machining, or even the 3d printing which seems to be a hot topic just now.

If not, what is your application, and level of comfort in dealing with electronics? SparkFun.com sells controllers for steppers, and any of a number of hobby level processor boards could be adapted to driving them.

If you are interested in robotics, specifically, there are a number of useful web sites, and google is your friend ...

This USED to be a vibrant venue, but not so much these days ..

Cheers, Rob.

Reply to
Spam

replying to Spam , DrCharbonneau wrote: Since posting the query here and also at Tom's with little response, I've been doing some searches. My particular application, at this time, is learning. I've found quite a few low cost kits at Amazon. As for steppers, mag brakes, PLC's and I/O's, my years as an engineer have me acquainted with all that. As far as electronics, I actually have a military soldering certification, still I'm not an EE, even though I've worked as one before. I found a webpage that had a "MotorBee" USB controller (

formatting link
) that carries some boards and also has programming that interfaces with Delphi (Pascal). Delphi is my favorite language, so that has my attention, still I imagine I'll start with one of the kits on Amazon and build outward from there. As for my electronics skills, I could likely take the output from a board, say capable of controlling a 100mA motor, and re-engineer it to control an 8 Amp motor. Here, as over at Tom's, my hope was to find others working with hobbyist level gear who are willing to share particulars about their own experiences in learning the ropes. I'll check out those sites. Thanx.

Reply to
DrCharbonneau

Hi Dr Charbonneau,

comp.robotics.misc is dead.

I didn't respond because you want to use Pascal.

I controlled my pc based robot using the K8055 board.

Reply to
jgkjcasey

I'm not acquainted with comp.robotics.misc, unless that is or involves the link I gave.

I can look up that board. What programming language do you use? Does the card's needs use particular interrupts? Is it possible to write, or do there exist, assembly language routines that could be compiled "in-line," as one might using C/C++ ?

Reply to
DrCharbonneau

Hi Dr Charbonneau

I am posting to comp.robotics.misc

I used the k8055 simply because I could walk into the shop and buy it as I don't like buying sight unseen without retailers to talk to. I used to interface via the parallel port on the old computers but now you have to use a USB port or a wireless connection.

formatting link

If you want vision then RoboRealm might be an easy solution and they also have robot examples.

formatting link

I am not sure what kind of robot you want to start with? Another robot I can just walk in and buy is based on the Arduino.

formatting link
formatting link

You might also like to look at the Raspberry Pi

I actually use FreeBasic because as a hobby programmer BASIC and assembler were my first languages and easy to use and learn. I also used to use C a lot before FreeBasic. FreeBasic comes with an inline assembler. I used assembler a lot in the old days but find with the modern fast computers and sophisticated compilation of HLLs means it isn't really required.

This is a simple FreeBasic code demo using a wireless keyboard to remote control the motors on the robot base to give you some idea of how to use the k8055. I hasten to add it may not be the best solution for you, it was just all I had at the time.

formatting link

Dim OpenDevice As Function (Byval CardAddress As Long) As Long Dim CloseDevice As Sub Dim SetAllDigital As Sub Dim ClearAllDigital As Sub Dim SetDigitalChannel As Sub (Byval As Integer) Dim ClearDigitalChannel As Sub (Byval As Integer)

Dim hndl As Any Ptr

hndl=DyLibLoad("k8055d.dll")

'' find the procedure address (case matters!) OpenDevice = DyLibSymbol( hndl, "OpenDevice" ) CloseDevice = DyLibSymbol( hndl, "CloseDevice" ) SetAllDigital = DyLibSymbol( hndl, "SetAllDigital" ) ClearAllDigital = DyLibSymbol( hndl, "ClearAllDigital" ) SetDigitalChannel = DyLibSymbol(hndl, "SetDigitalChannel") ' (Byval As Integer) ClearDigitalChannel = DyLibSymbol(hndl, "ClearDigitalChannel")

'' then call it.. Print "opening" OpenDevice(0) Print "opened"

dim as string key dim as integer motor1 = 0 'motor off=0 motor on = 1 pin1 dim as integer direction1 = 0 'direction left or right pin2

do key = inkey 'turn motor1 left or right? if key = "1" then ClearDigitalChannel(1) 'turn motor off sleep 10 'time to settle ClearDigitalChannel(2) 'direction left sleep 10 'time to settle SetDigitalChannel(1) 'turn on motor sleep 100 'time to run ClearAllDigital() end if if key = "2" then ClearDigitalChannel(1) 'turn motor off sleep 10 'time to settle SetDigitalChannel(2) 'direction right sleep 10 'time to settle SetDigitalChannel(1) 'turn on motor sleep 100 ClearAllDigital() end if 'turn motor2 left or right? if key = "3" then ClearAllDigital() 'turn motors off sleep 10 'time to settle ClearDigitalChannel(4) 'direction left sleep 10 'time to settle SetDigitalChannel(3) 'turn on motor sleep 100 'time to run ClearAllDigital() end if if key = "4" then ClearAllDigital() 'turn motors off sleep 10 'time to settle SetDigitalChannel(4) 'direction right sleep 10 'time to settle SetDigitalChannel(3) 'turn on motor sleep 100 ClearAllDigital() end if 'rotote left if key = "l" then ClearAllDigital() 'turn motors off sleep 10 'time to settle ClearDigitalChannel(4) 'set direction left SetDigitalChannel(2) 'set direction right sleep 10 'time to settle setDigitalChannel(1) 'turn on motor1 SetDigitalChannel(3) 'turn on motor2 sleep 100 'time to run ClearAllDigital() end if 'rotate right if key = "r" then ClearAllDigital() 'turn motors off sleep 10 'time to settle SetDigitalChannel(4) 'set direction right ClearDigitalChannel(2) 'set direction left sleep 10 'time to settle setDigitalChannel(1) 'turn on motor1 SetDigitalChannel(3) 'turn on motor2 sleep 100 'time to run ClearAllDigital() end if 'rotate right if key = "b" then ClearAllDigital() 'turn motors off sleep 10 'time to settle SetDigitalChannel(4) 'set direction right SetDigitalChannel(2) 'set direction left sleep 10 'time to settle setDigitalChannel(1) 'turn on motor1 SetDigitalChannel(3) 'turn on motor2 sleep 100 'time to run ClearAllDigital() end if 'rotate forward if key = "f" then ClearAllDigital() 'turn motors off sleep 10 'time to settle ClearDigitalChannel(4) 'set direction right ClearDigitalChannel(2) 'set direction left sleep 10 'time to settle setDigitalChannel(1) 'turn on motor1 SetDigitalChannel(3) 'turn on motor2 sleep 100 'time to run ClearAllDigital() end if loop until key="s"

'now shut down the device Print "closing" CloseDevice () Print "closed" DyLibFree hndl

end

Reply to
jgkjcasey

Hi jgkjcasey,

I've seen FreeBasic available at Coding Monkeys... I use Delphi and EBasicPro (now IWBasic), although I started years ago with QBasic and used Debug A to write in Assembly till I moved up to Turbo C/C++ and TASM, mixing all that with batch file routines. I was a die hard DOS man till PNP rewired motherboards so a DOS extender was a must to access the far heap. Now I just write for Windows and use Delphi 7 (still). Soooooo many math classes. I do need to upgrade though. 64 bit surely awaits. I use Blender a lot, but I'm not satisfied with how ANY of the modelers handle anatomy and rigging. I suppose that's a little off topic, but it's good to establish just what level of expertise we are starting from. Computer science has really exploded since the days of the 486 DX machines and RISC boards.

I visited the Velleman site about the k8055. They mentioned it comes with DLL's and will work with VB or Delphi, so I imagine I'd be okay with that. I like what I saw and found a kit on Amazon for $32. I saw it was a real kit that one solders up and nearly came to tears. ;)

What kind of robot? As of the moment I'm working on my security system, so the Velleman products look promising and even resemble PLC board connectivity. Over the next few years I plan to build some robotic nursing aids, among other "3rd hand" type bots to assist me in my research. Ultimately? Years from now I'd like to get into humanoids and robotic prosthetics.

For now? Just about any suggested directions I'll gladly explore and are much appreciated.

Thank you for yours :)

Reply to
DrCharbonneau

On Wednesday, 9 October 2013 08:18:02 UTC+11, DrCharbonneau wrote:

It should work with any language that can use a DLL. There are some smart cookies that wrote the code needed to use the dll with FreeBasic.

'' '' k8055d.bi ''

#inclib "k8055d"

Declare Function OpenDevice Alias "OpenDevice" (Byval As Integer) As Integer Declare Sub CloseDevice Alias "CloseDevice" () Declare Function ReadAnalogChannel Alias "ReadAnalogChannel" (Byval As Integer) As Integer Declare Sub ReadAllAnalog Alias "ReadAllAnalog" (Byval As Integer Ptr, Byval As Integer Ptr) Declare Sub OutputAnalogChannel Alias "OutputAnalogChannel" (Byval As Integer, Byval As Integer) Declare Sub OutputAllAnalog Alias "" (Byval As Integer, Byval As Integer) Declare Sub ClearAnalogChannel Alias "ClearAnalogChannel" (Byval As Integer) Declare Sub SetAllAnalog Alias "SetAllAnalog" () Declare Sub ClearAllAnalog Alias "ClearAllAnalog" () Declare Sub SetAnalogChannel Alias "SetAnalogChannel" (Byval As Integer) Declare Sub WriteAllDigital Alias "WriteAllDigital" (Byval As Integer) Declare Sub ClearDigitalChannel Alias "ClearDigitalChannel" (Byval As Integer) Declare Sub ClearAllDigital Alias "ClearAllDigital" () Declare Sub SetDigitalChannel Alias "SetDigitalChannel" (Byval As Integer) Declare Sub SetAllDigital Alias "SetAllDigital" () Declare Function ReadDigitalChannel Alias "ReadDigitalChannel" (Byval As Integer) As Integer Declare Function ReadAllDigital Alias "ReadAllDigital" () As Integer Declare Function ReadCounter Alias "ReadCounter" (Byval As Integer) As Integer Declare Sub ResetCounter Alias "ResetCounter" (Byval As Integer) Declare Sub SetCounterDebounceTime Alias "SetCounterDebounceTime" (Byval As Integer, Byval As Integer)

Mine were AU$85

Yeah me too! I used to do a lot of soldering many years ago but now find it tedious. I managed to solder the screw connectors on back the front on my first K8055 board. You can have up to four boards connected.

Reply to
jgkjcasey

replying to jgkjcasey , DrCharbonneau wrote: Hi jgkjcasey,

I just encountered a major disaster on this end. We had a torrent of rain a couple days ago and I just went back to work on the computer that likely would be a part of this system and, to my alarm, found a new leak in the roof formed right over that machine and it appears to have shorted something. I'll have to nurse it back to health, hoping, since it was plugged in, there isn't some serious ESD damage. It may be the PSU. In that, it will be a while till I go hands on with any I/O boards :(

Nonetheless, I'm still all eyes for recommended companies or product suggestions.

Thanx

Reply to
DrCharbonneau

Hi Dr Charbonneau. I just read through this thread, and I'm sorry to hear about the roof leak. Considering your knowledge and experience, along with the mention of futur e goals for bionic and humanoid research and work, I highly recommend the p lethora of technical books available on safari books.

I don't mean to plug a site, and an account isn't exactly cheap, but in my experience of learning programming, web development, and all things tech re lated, having access to thousands and thousands of books and pooling knowle dge from many of them together to apply to my work has been invaluable.

I was actually never interested in electronics, engineering, or robotics un til I decided to read a book or two suggested on safari.

There is a college-level, three volume, robotics course just published this summer available on there. That's what I'm reading now, and the reason I'm suggesting it to you. You can read primers, tutorials, how-to guides, and forum posts all day long and not obtain the crucial fundamentals and advanc ed information required to be as informed and skilled as possible. I spent years dabbling as a student and hobbyist, many of times exercising wrong or old practices, until I finally discovered the value in top-notch current i nformation and resources written by experts of the subject matter.

I'm sure you will be thrilled by what is available on safari.

Good luck with that PC and roof leak.

Reply to
brettfraley

I highly recommend the p

The PC problem has gone from horror to just plain old fashioned weird. I found some cables not only disconnected, but reconnected in wrong places. I had it working again, then it stopped after a few days went by, but this time there were no obvious signs of intrusion or mischief. I'll just buy a new tower and some other components, then start over from there.

Do you have a link to Safari by chance? I could always Bing it and probably will in the near future, but I'm busy with some other stuff today, so some recommended pages would be nice.

Thanx for the tip.

Reply to
DrCharbonneau

replying to DrCharbonneau, DrCharbonneau wrote:

formatting link

formatting link
Have you had any experience with these ?

Reply to
DrCharbonneau

I don't know if it answers your needs but you may have a look at ROS[1]. There are a lot of stacks to interact with many robots. I don't know if Pascal is used. You may add an interface to it.

- Fabien

[1]
formatting link
Reply to
Fabien R

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.