Arduino IDE like serial monitor in the Raspberry Pi shell: Unterschied zwischen den Versionen

Aus Hackerspace Ffm
Wechseln zu: Navigation, Suche
Zeile 11: Zeile 11:
 
Reboot the system.
 
Reboot the system.
  
Source:[https://github.com/watterott/RPi-ShieldBridge/blob/master/docu/Arduino.md github.com/watterott/RPi-ShieldBridge]
+
'''Source: '''[https://github.com/watterott/RPi-ShieldBridge/blob/master/docu/Arduino.md github.com/watterott/RPi-ShieldBridge]
  
 
Then I run the serial.sh script (you need all three for this to work)
 
Then I run the serial.sh script (you need all three for this to work)
Zeile 40: Zeile 40:
  
  
== Explanation==
+
==Explanation==
 
<pre>stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts</pre>
 
<pre>stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts</pre>
'''Source:'''[http://playground.arduino.cc/Interfacing/LinuxTTY playground.arduino.cc/Interfacing/LinuxTTY]
+
'''Source: '''[http://playground.arduino.cc/Interfacing/LinuxTTY playground.arduino.cc/Interfacing/LinuxTTY]
 
This one i basicaly copy and pasted it, without understanding it. It gets the serial interface in the right mode to talk to an Arduino (with 115200 baud)
 
This one i basicaly copy and pasted it, without understanding it. It gets the serial interface in the right mode to talk to an Arduino (with 115200 baud)
  

Version vom 5. April 2014, 21:15 Uhr

For serial communication with an Arduino I wanted an Arduino IDE like serial monitor in the Raspberry Pi shell. Since I could not a find a terminal that did support “line mode” I found another workaround.


If you want to be able to use the Serial Port of the Raspberry Pi you will have to disable the Linux serial console first.

sudo nano /boot/cmdline.txt

Remove references to console: =ttyAMA0,115200 and kgdboc=ttyAMA0,115200

sudo nano /etc/inittab

Remove or comment the line: T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Reboot the system.

Source: github.com/watterott/RPi-ShieldBridge

Then I run the serial.sh script (you need all three for this to work)

serial.sh

#!/bin/bash
stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts
sleep 1
tmux new-session -d  './serial-in.sh'
tmux split-window -v  './serial-out.sh'
tmux attach-session -d

serial-out.sh

#!/bin/bash
while true
do
	read a
	echo "$a" > /dev/ttyAMA0
done

serial-in.sh

#!/bin/bash
while true
do
        cat -A /dev/ttyAMA0|tr "^M$" " "
done


Explanation

stty -F /dev/ttyAMA0 cs8 115200 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts

Source: playground.arduino.cc/Interfacing/LinuxTTY This one i basicaly copy and pasted it, without understanding it. It gets the serial interface in the right mode to talk to an Arduino (with 115200 baud)


I use:

cat -A /dev/ttyAMA0

to listen to the serial port. Unfortunately there are some unwanted characters at the end of a line. I’m not sure why, but I just replaced them with a space. (That way they just do not any me anymore)

To get data to the Serial port I use:

echo "$a" > /dev/ttyAMA0

I use tmux split screen to be able to see both at the same time.

All of this is probably not a clean or nice solution, but it does what I wanted it to do.