NEW: Learning electronics? Ask your questions on the new Electronics Questions & Answers site hosted by CircuitLab.
Microcontroller Programming » Reading from serial and sending info to a text file using python?
February 16, 2011 by lcruz007 |
Can you check my python code?? It is not working for me, info is not recorded to the text file after reading data from the serial port.
|
---|---|
February 17, 2011 by hevans (NerdKits Staff) |
Hi lcruz, On the if statement the f.write() should be on the next line and indented one more level from the if statement. I don't know if it just got messed up on the copy (or if it is actually legal syntax for some reason). There might be several issues here. Fist, it might be that you are not getting a 1 over the serial port at all so your if statement is failing. my suggestion is to skip the test and just write everything you get to the file, then you can get a better idea of what you are looking at. Second, you seem to be closing the file as part of your while loop. This is probably not what you want, as you are likely going to be writing more than one thing, Since you close the file the first time through the loop and not open it again, you really are only attempting to write to the file once. I suggest moving the f.close() outside the whole loop, and put an f.flush() inside the while loop to flush the file buffer. Then you will have a better idea of what is going on. Humberto |
February 18, 2011 by lcruz007 |
Humberto, Thanks for your reply! I've tried almost everything though, changing the code, trying different algorithms, switching it etc. But none of these methods have worked. The text won't be recorded on the text file (sometimes until I close the program, but not in the while loop). This doesn't work either:
Any ideas? thanks! |
February 19, 2011 by hevans (NerdKits Staff) |
Hi Lcruz, Did you try what I suggested, to just not check the data before you write it to the file?
Note I added a print to print the data out to make sure you are getting anything at all out of the serial port. Humberto |
February 17, 2012 by RevMoses |
Your code may be busted but it was helpful to me. The meat python code was rough because i hadn't heard of python before I got the kit. Heres the code I got working from the above. ...i did put a limit on it (20) because i'm still customizing it for what i'm doing. import serial serial = serial.Serial("COM4", 115200, timeout=1)
i=1
while (i<20):
#uses the serial port
data = serial.readline()
print data |
February 17, 2012 by RevMoses |
Hoot! got it goin to excel. I have a simple average routine built in. Its not fancy like the moving average. But by changing the Avr=5 to a bigger value and making the while loop inifinite, i could let the thing run all night without it crashing excel's row limit of 65000.
|
July 15, 2012 by raildoc |
RevMoses
Any new developments on this or your Posts on 2162 and 2165? Good work! You gave me some good ideas on unipolar pulse generation and monitoring. I'm also working on a quadrature decoding and data recording set-up and a GPS with python-to-Excel programs. Incidentally, were your 'scope pics from an actual circuit or circuit/BB simulator? NK and others have good ones that specifically simulate various 5051-and PIC-type chips. These are a little easier to use than NI's MultiSim. I also use NI SignalExpress for DAQ and analysis. With Excel, have you tried an xls.VBA interface with uart? I know NK Forum doesn't like VB. But, I think it's a matter of which end of the data stream is easier to program and manipulate: PC or mcu. Thanks much for your posts. |
July 16, 2012 by Ralphxyz |
Why would the NK Forum not like VB? It has nothing to do with the microprocessor which Nerdkits promotes. The PC interface is whatever works best for you. In fact if you search the NK forum I bet you will find VB Serial XLS code examples. It might be in VBA and not the newest version of VB. I think you will find VB is welcome here. Yes the "Nerdkits Guys" use Python but the rest of us use whatever we are comfortable with. Ralph |
July 16, 2012 by raildoc |
Ralph: You're right. However, Arduino Forum may also be a richer source for various serial communication code posts. There is even a cheap ($3) Kindle eBook on it. Also, compiled Arduino "sketch" hex files can be seamlessly uploaded into NK. Other "5051" and 8-bit PIC sites are equally informative and also compatible with 328 C-coding. I just thought I'd expand the horizon and revisit older germane NK posts that I considered (IMHO) very good. Thanks for the follow-up. |
July 18, 2012 by Ralphxyz |
Now that would make for some interesting discusions and of course a Nerdkit Community Library article. I would really like to know how to use a Arduino.hex and how to move code from 5051 and PIC to AVR. Ralph |
July 18, 2012 by raildoc |
Ralph: see http://www.nerdkits.com/forum/thread/715/ for my first stumbling effort. In that case, Arduino had the perfect sketch, and I finally got it right for NK. "If the hex fits, ya gotta affix." There is other good stuff on Arduino-related sites (ADA, Smiley's, Robot this and that, etc.), even "upgrading" to REAL C code. Also, there are some good Arduino system interface/shield tools. I see from your NK posts, that you have also dabbled in this. Next step? |
July 19, 2012 by Ralphxyz |
Dabbled is most appropiate :-) There really should be a consolidated write up in the Nerdkits Community Library. Some people apparently take offense at Arduino or VB for that matter, but I have nver heard Humberto or Mike put it down, they do not support it, and encourage people to use C and python but I never heard "Oh my God that is horrible you cannot use Arduino code or only a ignoramous would ever use VB what is the mattter with you?" I think those that might be offended can just suck it up and understand it is a big world out there and different strokes for different folks. So if you are offended, move on, ignore the thread. Ralph |
Please log in to post a reply.
Did you know that negative numbers are represented in two's complement notation in binary? Learn more...
|