Jump to content
  • Sky
  • Blueberry
  • Slate
  • Blackcurrant
  • Watermelon
  • Strawberry
  • Orange
  • Banana
  • Apple
  • Emerald
  • Chocolate
  • Charcoal


  • Content Count

  • Joined

  • Last visited

Community Reputation

10 Good

About shadowrecon

  • Rank
    GMRL Developer
  • Birthday 01/19/1991

Personal Information

  • Location
    Killeen, Tx
  • Interests
    Electronics, Programing, Fishing
  • Occupation
    Deff not a English Professor =P
  • Studies
    EE Major

Contact Information

  • Skype

Recent Profile Visitors

11015 profile views
  1. Happy birthday bro! i turn 25 in January!
  2. Well after many designs and a lot of money later im starting to get some progress done with the development of the entire ideal. Ive ended up using a linux based development board. it has python, opencv and much more just got to learn my way around python and Linux. Heres a link to a album https://www.facebook.com/media/set/?set=a.10201700820146597.1073741826.1362925785&type=1&l=77f0a1250d
  3. Yeah slacky i think learning pascal would be cool i just have enough im trying to learn so ive just put that project to he side and moved on to the IRobot Roomba, since it has a built in access port using simple serial commands and they are fairly well document commands so i should have no problem taking full control of the IRobots systems. I know the pictures dont look great but those are the 3 ive built so far and im sure they will change so much more over the next few months.
  4. I understand slacky its not too difficult (it is for someone without even a python complier...) but it is something im not willing to learn at this moment as im trying to understand NEMA GPS strings, yeah not the difficult in a text book, but in raw data is another story. If it isnt difficult why couldnt you port it over for me slacky? let me guess slacking? lol j/k. Side note i picked up a Roomba IROBOT today at a local thrift shop for under $60 and it works! Im working on writing a interface for it as it has a serial control port, found a article ive been reading and its pretty straight forward send a byte receive a byte kind of data transfer using standard I2C protocols. The roomba will still do much of the algorithm crunching while the arduino receives requested feedback from any of the sensors available on the roomba while acting as a romote telling the roomba to move forward 200 mm turn right ect. Its a bit more complex but thats because IROBOT designed the roobas as circles (great idea) and they actually drive in arcs somewhat. Luckily i dont have to derive the individual functions for the turning radius for right and left as the article i found / tutorial has them already. The only problem is the tutorial was not intended for arduinos and compatibility went out the window from the first line so now im just trying to dig through and find the commands i need. I should have the other robot i order soon which is the one i need the python library ported for. Also that happens to be one of the only library's i have found any where on the internet. Anyways the only thing im missing now is the time to put all of this hardware i have managed to collect together. As i said at the beginning anyone have any ideas? - - - Updated - - - @Lord_Jashin I will not port a library before i learn the language ever again! lol. You remember SPS right?? - - - Updated - - -
  5. I will have no true multitasking ability because im using a 8bit and 32 bit processor. i have already implemented a task system that runs certain task at certain times very similar to how threads can be simulated in scar with timers but the way ive set it up i can assign priority levels to the task and modify them if need be by another function before they are processed. Basically this is a scheduler based task management system. Aside from that, ive starched the original frame and sensor setup and bought a "Rover Tank Spy" for a steal of $45 and im going to re engineer the system to communicate to a program on the computer through a ad-hoc network and there will probably be another network that will relay sensor data back to the computer. This is necessary and there is no other way around. Because i got the robot at basically a steal im just going to add onto the already well built infrastructure. The Rover Tank Spy was built to be controlled from a ipad, i phone or other smart device the app was made for. But what i want to do is send and receive data over the wifi network which will not be hard since someone has already wrote a python library to do the work. My problem is i have no idea what im doing when it comes to python is there anyone willing to help port this python library over to c/c++? Rover Python Files Rover.zip So the new plan is to use a already designed platform to develop from. I will leave the robots current circuitry alone and add my sensors creating another standalone circuitry for the sensor network i will add. I may remove the wires from the motors and create a 4 bit data stream the arduino can read. also creating a encryption method so i could send 16 unique commands 4 of which would control the motors from the arduino after the commands were processed but the other 12 commands could be used to transfer data from the computer to the arduino/robot but they could not be used to send data back to the computer since the motor wires are only output. To feed the computer with data we need to setup another network to send and receive data. to do this i will attach a 2.5ghz transceiver to the robot and antoher one at a arduino which will serve as a hub to gather the data and finally transmit over the usb to the computer for the application to process and do it all over again. I know this sounds crazy and goofy and im probably on the wrong forum to be asking questions like this as most of you have no electronic experience and believe me when i say DIY electronics are far different and less reliable than desktop computers. The info i proposed today is all very possible and real with only a little bit of work. I am sorry i have yet to add any pictures to the post but by next Sunday i should have something to take a picture of. I am waiting on parts and everything else.
  6. yes of-course, i guess i missed that point somewhere in the reading. The arduino could process that kind of data but like you said it would be setting there all day thinking of what to do next. The difference from what your saying and im trying to do is i plan on having no 32 bit computer (before i hook to the internet) to process data. The hub will be another 8bit arduino connected to the network through a Ethernet shield, which will allow me to request and host data for the world to see from just a 8bit arduino. Does that make since. Im trying to build a product that is not only smart but cost effective, i can pick up arduino chips for under $4 bucks a piece i dont need the fancy development board just the chip. I need some ideas for prototyping some of the functions and routines have any ideas on what you think some of the first things the robot should check? or how he should order thoughts as to not become self destructive?
  7. The point is not to use a super computer the size of mars to figure out what an object is, slacky you are like most other americans that believe you need a bigger gun to do damage when really you just need to work smarter not harder... attack plan - step 1: build robot frame, and apply sensors (0.3mp camera, distance sensors, color sensors, bumper sensors, GPS module, accelerometer, gyro, and wireless transceivers 2.4ghz) step 2: design wireless data platform that will communicate with the arduino (200-400 feet effective range plenty for inside my house) This platform will receive and send data from and to the robot, it will use wolframalphas website to search for data, resistivity, colors, pictures ect. I plan to offload alot of the math to either google.com or the network hub arduino, the one processing the website data and relaying it to the robot arduino. Slacky i believe you are way under estimating the power of the arduino. Ive built many projects based on the arduino for school and play, and ive yet to find a problem to difficult for the arduino to process. Now if you treat it like a 32bit desktop your right, ram and memory runs out fast, but if you use every bit of every byte there's more than enough storage. bit-wise operators and bit-wise math. Also i plan on using a 32bit chipkit uno which is a pic but is compatible with the arduino to process the higher level decision making. Object recognition is also along ways a way. I have alot of other systems to build in the mean time, check out my motor header file for driving. its very memory efficient #define MOTOR_1_EA 9 #define MOTOR_1_0 8 #define MOTOR_1_1 11 #define MOTOR_2_EB 10 #define MOTOR_2_0 12 #define MOTOR_2_1 13 class motor { public: byte data; // bitRead(data, 7) holds the current direction of motor 1 // bitRead(data, 6) holds the current direction of motor 2 // bitRead(data, 5) holds the status of EA // bitRead(data, 4) holds the status of EB // bitRead(data, 3) // bitRead(data, 2) // bitRead(data, 1) // bitRead(data, 0) void create() { DDRB = B00111111; // set pins 8-13 as output ATmeg328 only!!! setDir(2); } void setDir(byte dir){ switch (dir){ case 0: // forward bitWrite(data, 7, 1); bitWrite(data, 6, 1); bitWrite(data, 5, 1); bitWrite(data, 4, 1); break; case 1: // reverse bitWrite(data, 7, 0); bitWrite(data, 6, 0); bitWrite(data, 5, 1); bitWrite(data, 4, 1); break; case 2: // stop bitWrite(data, 7, 0); bitWrite(data, 6, 0); bitWrite(data, 5, 0); bitWrite(data, 4, 0); break; case 3: // left fast bitWrite(data, 7, 1); // motor 1 bitWrite(data, 6, 0); // motor 2 bitWrite(data, 5, 1); // motor 1 EA bitWrite(data, 4, 1); // motor 2 EB break; case 4: // right fast bitWrite(data, 7, 0); bitWrite(data, 6, 1); bitWrite(data, 5, 1); bitWrite(data, 4, 1); break; case 5: // left slow pivot bitWrite(data, 7, 1); bitWrite(data, 6, 0); bitWrite(data, 5, 1); bitWrite(data, 4, 0); break; case 6: // right slow pivot bitWrite(data, 7, 0); bitWrite(data, 6, 1); bitWrite(data, 5, 0); bitWrite(data, 4, 1); break; default: bitWrite(data, 7, 0); bitWrite(data, 6, 0); bitWrite(data, 5, 0); bitWrite(data, 4, 0); break; }; } byte getDir(){ byte result; // result data structure // bit 7 is the direction of motor 1 // bit 6 is the direction of motor 2 // bit 5 // bit 4 // bit 3 // bit 2 // bit 1 // bit 0 if (bitRead(data, 5) == 1) if (bitRead(data, 7) == 1){ bitWrite(result, 7, 1); } else { bitWrite(result, 7, 0); } if (bitRead(data, 4) == 1) if (bitRead(data, 6) == 1){ bitWrite(result, 6, 1); } else { bitWrite(result, 6, 0); } return result; } void run(){ digitalWrite(MOTOR_1_EA, bitRead(data, 5)); digitalWrite(MOTOR_1_0, bitRead(data, 7)); digitalWrite(MOTOR_1_1, !bitRead(data, 7)); digitalWrite(MOTOR_2_EB, bitRead(data, 4)); digitalWrite(MOTOR_2_0, bitRead(data, 6)); digitalWrite(MOTOR_2_1, !bitRead(data, 6)); } };
  8. Guys all of this info is great! I have not settled on a development board just yet, but i believe im going to do all this with a 8bit avr with 32kb of programmable flash and 4kb sram to control the wheels and object avoidance system. Then for the bring im looking toward a pic 32bit processor with 128kb of flash and 16 kb sram. These processors will be connected and have the ability to transfer data between the two. What is going to make this interesting is the lack of on board programmable memory and sram. The processors im using do not have schedulers like a 32bit or 64bit computer. So i have created/incorporated an abstracted class that controls the flow of functions. basically i schedule the functions as the program runs and i can control how often the functions are run and at what time they start. ive started work on a watch dog function similar to the windows watch dog that makes sure no function is taking to long and if it is the watchdog function will have the ability to restart the avr/pic processor. I know these limited processors seem fairly week compared to the machines we use to search the web but i believe we can do alot. The Apollo 11 moon lander was a 16bit processor with only 12kb of flash memory, i believe what im trying to do with the arv/arduino chips could easily be done with the proper approach. If i do outsource the processing to a desktop computer or the internet i could greatly increase the power these chips have. for instance ive started on the motor controller class, im using 8 bit byte to store 8 pieces of information, the high bit 7 contains motor 1's direction 0 for forward 1 for reverse, bit 6 contains the direction of motor 2, bit 5 is the enable for motor 1 (if this isnt 1 / enabled then motor 1 will not move) bit 4 is motor 2 enabled bit, bit 4 - 0 haven't been used yet. but as you can see with only 1 byte of data i have stored multiple pieces of data and still have room to work. im trying to incorporate as much bit-wise operations as possible because they are some of the fastest functions you can preform of data. next after the motor class im building the sonar class which is going to calculate the average distance in front of the robot going from 0 degrees far left to 180 degrees far right. I plan to incorporate a delta and multiple samples per second before averaging the distance. or i may average the distance between certain angles like 0-30 30-60 60-90 90-120 120-150 150-180 and the greatest distance in the direction of travel to the destination point will be used as the direction the robot needs to calculate to move to. i am trying to make this as minimal as possible while retaining a non programmatic pattern in the movement. Since the clock of the arduino 328p is at 16mhz that's 16 million cycles per second which means 8 bits of data x 16 million is the throughput of the processor. keeping all the data down to 8 bits returned per class will keep ea class efficient and fast. on side note, yesterday i went to the lab at school and designed a new frame, this one is a little bigger than before 5" x 9" which will allow plenty of room for components, and since it is made from one solid piece of steel its strong and reliable.
  9. Lol, thanks lord, i need some programmers who can program in "C" or "C++". Since ive started this back in December ive redesigned the robot quit a few times but right now the little guy looks pretty cool but doesnt do a whole lot. Ill upload some pictures soon! if anyone has anyideas on how to go about doing object recognition shoot them at me no response is wrong. Parts im waiting on: * 1mp video camera * < .5 m accurate GPS chip * 3.2in touch screen lcd * litium 3 cell charging circuit/ protective circuit * high tourqe 360 degree servos (6kg/cm ea) Also ive setup a git repo for the code for this project and if anyon would like access to view and optomize code that would be greatly appericated.
  10. So far the little guy is almost built hardware wise minus his 3 axis claw that im waiting to receive. The sensors i have managed to attach so far are, 180 degree turret distance sensor, which can rotate 180 degrees and detect the distance between the sensor and object using ultrasonic ranging. example is showen below how to turn timings into distance. float microsecondsToInches(long microseconds) { // According to Parallax's datasheet for the PING))), there are // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per // second). This gives the distance traveled by the ping, outbound // and return, so we divide by 2 to get the distance of the obstacle. // See: [url]http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf[/url] return ((float)microseconds) / 74 / 2; } float microsecondsToCentimeters(long microseconds) { // The speed of sound is 340 m/s or 29 microseconds per centimeter. // The ping travels out and back, so to find the distance of the // object we take half of the distance travelled. return ((float)microseconds) / 29 / 2; } Ive also added a temp sensor to compensate for temperature coefficients when trying to measure long distances with an ultra sonic distance sensor. Now i need to start determining how i am going to drive this robot forward is he going to check for obstacles every few seconds, drive blind from a starting point, or map the room from one position and keep an active location ideal.
  11. TPoints cannot be anything other than integers because each pixel has a whole number and there are not half pixels.
  12. Okay so the last few years i've spent programming in Delphi and pascal, learned a lot but also have always loved electronics. Ive recently found a way o combine both my love fore programming and the love of electronics by building a robot. I named him wall-e, the plan is to have a robot that will learn his surroundings and be able to map rooms and identify objects with various analog sensors that will create the digital data. What im looking for from the community are ideals about but not limited to: movement, room mapping with distance sensor, object detection using different real world sensors (anything is optional just through out the ideal and ill think about adding the sensor for that bit of data). I believe the knowledge we have built with scar could be pushed further if we actually focus on making real life task robotic. What if task for consumer bought robots were open source and widely available? basically like app based smart phones but a app based robot, which could easily run on a Android processor. To close my little tangent, i would like to really get feed back on how many people would be interested and what ideals they could bring to the table as i plan to create a kickstart page for the project and get the details set in place.
  13. type "TerminateScript;" this will stop/end the script.
  14. bitmaps are not good detection methods in runescare as the colors change everytime it is loaded better methods are to use colors and tolerances.
  15. <p><p><p>Happy Birthday bro, hope it is a good one!</p></p></p>

  • Create New...