Difference between revisions of "Holonomic Robotic Platform"
Joelmartin (talk | contribs) |
Joelmartin (talk | contribs) |
||
Line 55: | Line 55: | ||
</source> | </source> | ||
====Robot Code for Robot/Laptop Base Communication ==== | ====Robot Code for Robot/Laptop Base Communication ==== | ||
+ | import socket | ||
+ | serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | ||
+ | serv.bind(('192.168.1.43',13000)) | ||
+ | serv.listen(5) | ||
+ | while True: | ||
+ | conn, addr = serv.accept() | ||
+ | message_from_client = '' | ||
+ | while True: | ||
+ | data = conn.recv(4096) | ||
+ | if not data: break | ||
+ | message_from_client = data.decode() | ||
+ | print ("Tx:" + message_from_client) | ||
+ | message = "RxAck:" + message_from_client | ||
+ | conn.send(message.encode()) | ||
+ | conn.close() | ||
+ | if message_from_client == "Stop the Server" : break | ||
+ | print ('Communication protocols termintated at Server by Client') |
Revision as of 20:20, 1 January 2020
Engineering Project Data
Mechanical
Drive Motors with Gearboxes
Hardware Case for Raspberry PI 4
Electronic/Electrical
Raspberry PI4 4 Gig Ram
Raspberry PI Full Function Servo Motor HAT Controller
HDMI Video Adapter Cable
Micro SD 64 Gig Memory Card for PI Operating System, and Hard Drive
Software
Raspbian Operating System
Balena Flash Prom Programmer
Windows Python for Laptop Host Development
Spyder Development Environment
Spyder is a powerful scientific environment written in Python, for Python, and designed by and for scientists, engineers and data analysts, featuring the following options:
- Editor
- IPython Console
- Variable Explorer
- Profiler
- Debugger
- Help
Code and Mathematics
Code to Facilitate Development
To help easy development of specific modules in the Holonomic Robot, a communications interface is implemented between the Robot(Raspberry PI 4 Server) and a Laptop Development workstation(HP Client). The protocol is built on TCP Tx-Rx Exchange between the two devices. The code modules are Python running at both ends. The Robot starts out as a purely slaved device taking commands from the laptop. Motor control modules manipulating the GPIO interface run on the Robot but are commanded by the laptop. As the motor control is refined and routinized along with the growth of intrinsic autonomy, the code is transitioned from the Laptop to the Robot. Code is primarily developed in Python 3.7.
Laptop Code for Robot/Laptop Base Communication
import socket
message_from_server = ''
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('192.168.1.43', 13000))
while True:
message = ''
message = input('Input lowercase sentence:')
client.send(message.encode())
message_from_server = (client.recv(4096)).decode()
print (message_from_server)
if message == "Stop the Server" : break
client.close()
print ("You ended the session")
Robot Code for Robot/Laptop Base Communication
import socket serv = socket.socket(socket.AF_INET, socket.SOCK_STREAM) serv.bind(('192.168.1.43',13000)) serv.listen(5) while True:
conn, addr = serv.accept() message_from_client = while True: data = conn.recv(4096) if not data: break message_from_client = data.decode() print ("Tx:" + message_from_client) message = "RxAck:" + message_from_client conn.send(message.encode()) conn.close() if message_from_client == "Stop the Server" : break
print ('Communication protocols termintated at Server by Client')