Arduino IDE로 Raspberry Pi 이용하기

Arduino IDE에서 Raspberry Pi를 개발보드로 이용할 수 있는 팁입니다.

다음 링크를 참조하시기 바랍니다: https://github.com/me-no-dev/RasPiArduino

Arduino Framework for RaspberryPI

Features

  • The familiar Arduino API
  • pinMode/digitalRead/digitalWrite/analogWrite
  • Full SPI, Wire and Serial compatibility
  • Access to STDIN/STDOUT through the Console class
  • Access to system tty through the TTY library
  • Process, FileIO, Client, Server and UDP implementations through the Bridge library

Instructions for Arduino IDE

  • Open the installation folder of Arduino IDE
  • Create a folder named “RaspberryPi” inside “hardware” and clone the repository to a folder named “piduino”
mkdir hardware/RaspberryPi
cd hardware/RaspberryPi
git clone https://github.com/me-no-dev/RasPiArduino piduino
  • Download , extract and copy the toolchain to piduino/tools/arm-linux-gnueabihf
  • Restart Arduino IDE and select the RaspberryPI from the list of boards
  • Compile a sketch
  • Select the RaspberryPi from the list of Ports (will show the IP address)
  • Upload your sketch and see it go

Instructions for the PI

  • Install Raspbian Jessie on your RaspberryPI
  • Gain root permissions
sudo su
  • Enable password login for root
passwd
  • enter the new root password twice
  • Edit /etc/ssh/sshd_config and make sure that the following lines exist and are not commented
PermitRootLogin yes
PasswordAuthentication yes
  • Disable Serial Console on boot by removing console=/dev/ttyAMA0 from /boot/cmdline.txt (or through raspi-config)
  • Disable Serial tty
systemctl disable serial-getty@ttyAMA0
  • Disable loading sound kernel module
sed -i "s/dtparam=audio=on/#dtparam=audio=on/" /boot/config.txt
  • Change the hostname for your Pi (optional) (also through raspi-config)
hostnamectl set-hostname piduino
  • Setup WiFi (optional)
cat > /etc/wpa_supplicant/wpa_supplicant.conf <<EOL
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
    ssid="your-ssid"
    psk="your-pass"
}
EOL
  • Setup avahi service to allow updating the sketch from ArduinoIDE
cat > /etc/avahi/services/arduino.service <<EOL
<?xml version="1.0" standalone='no'?><!--*-nxml-*-->
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
  <name replace-wildcards="yes">%h</name>
  <service>
    <type>_arduino._tcp</type>
    <port>22</port>
    <txt-record>board=bplus</txt-record>
  </service>
</service-group>
EOL

service avahi-daemon restart
  • Install telnet and git
apt-get update
apt-get install telnet git
  • Copy all files from tools/arpi_bins to /usr/local/bin
git clone https://github.com/me-no-dev/RasPiArduino.git piduino
chmod +x piduino/tools/arpi_bins/*
cp piduino/tools/arpi_bins/* /usr/local/bin
rm -rf piduino
  • Create symbolic link for run-avrdude
ln -s /usr/local/bin/run-avrdude /usr/bin/run-avrdude
  • Synchronize time and start sketch on boot (optional)
apt-get install ntpdate
cat > /etc/rc.local <<EOL
#!/bin/sh -e

_IP=\$(hostname -I) || true
if [ "\$_IP" ]; then
  printf "My IP address is %s\n" "\$_IP"
fi

# Sync Time
ntpdate-debian -u > /dev/null
# Start Sketch
/usr/local/bin/run-sketch > /dev/null

exit 0
EOL
  • Prevent some RealTek USB WiFi from sleep (optional) (EU)
echo "options 8192cu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1" > /etc/modprobe.d/8192cu.conf
echo "options r8188eu rtw_power_mgnt=0 rtw_enusbss=1 rtw_ips_mode=1" > /etc/modprobe.d/r8188eu.conf
  • Disable screen blank (optional)
sed -i "s/BLANK_TIME=30/BLANK_TIME=0/" /etc/kbd/config
sed -i "s/POWERDOWN_TIME=30/POWERDOWN_TIME=0/" /etc/kbd/config
  • Do not load I2C UART or SPI kernel drivers
  • reboot

If everything went well

Selecting the board from the list of ports

Select Pi Port

Password prompt before upload

Enter Pi Pass

Monitoring the sketch

Sketch Monitor

Links to external tutorials

About: Seok-Hyun Ga

현재 서울대학교 교육종합연구원에서 선임연구원으로 재직 중이며, 이전에는 국립대만사범대학 과학교육대학원 및 과학교육센터에서 객원조교수를 역임했습니다. 학부에서 서울대학교 지구과학교육과 및 물리교육과를 졸업한 후 동 대학원 과학교육과에서 석사와 박사 학위를 취득했으며, 한국방송통신대학교에서 컴퓨터과학 학사 학위를 취득했습니다.


11 thoughts on “Arduino IDE로 Raspberry Pi 이용하기”

  1. Wow, this Arduino IDE on Raspberry Pi guide is exactly what I needed! I’ve been trying to get my Raspberry Pi project working for weeks and couldn’t figure out why the GPIO pins weren’t responding properly. This Arduino framework seems way more intuitive than trying to work with the Linux-level stuff directly. I’m actually working on a small game controller project inspired by Bowmasters – trying to recreate some of the physics-based mechanics with real button inputs. Having the Arduino API available on my Pi should make this a lot simpler. Thanks for sharing these resources – the GitHub link looks super helpful!

  2. 핑백: saxenda pen
  3. 핑백: โคมไฟ

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다