.. note::
Hello, welcome to the SunFounder Raspberry Pi & Arduino & ESP32 Enthusiasts Community on Facebook! Dive deeper into Raspberry Pi, Arduino, and ESP32 with fellow enthusiasts.
**Why Join?**
- **Expert Support**: Solve post-sale issues and technical challenges with help from our community and team.
- **Learn & Share**: Exchange tips and tutorials to enhance your skills.
- **Exclusive Previews**: Get early access to new product announcements and sneak peeks.
- **Special Discounts**: Enjoy exclusive discounts on our newest products.
- **Festive Promotions and Giveaways**: Take part in giveaways and holiday promotions.
👉 Ready to explore and create with us? Click [|link_sf_facebook|] and join today!
.. _py_emotional:
Emotional Robot
===============
This example shows several interesting custom actions of PiCrawler.
**Run the Code**
.. raw:: html
.. code-block::
cd /home/pi/picrawler/examples
sudo python3 emotional_robot.py
**Code**
.. note::
You can **Modify/Reset/Copy/Run/Stop** the code below. But before that, you need to go to source code path like ``picrawler\examples``. After modifying the code, you can run it directly to see the effect.
.. raw:: html
.. code-block:: python
from picrawler import Picrawler
from time import sleep
crawler = Picrawler([10,11,12,4,5,6,1,2,3,7,8,9])
#crawler.set_offset([0,0,0,0,0,0,0,0,0,0,0,0])
def handwork(speed):
basic_step = []
basic_step = crawler.step_list.get("sit")
left_hand = crawler.mix_step(basic_step,0,[0,50,80])
right_hand = crawler.mix_step(basic_step,1,[0,50,80])
two_hand = crawler.mix_step(left_hand,1,[0,50,80])
crawler.do_step('sit',speed)
sleep(0.6)
crawler.do_step(left_hand,speed)
sleep(0.6)
crawler.do_step(two_hand,speed)
sleep(0.6)
crawler.do_step(right_hand,speed)
sleep(0.6)
crawler.do_step('sit',speed)
sleep(0.6)
def twist(speed):
new_step=[[50, 50, -80], [50, 50, -80],[50, 50, -80], [50, 50, -80]]
for i in range(4):
for inc in range(30,60,5):
rise = [50,50,(-80+inc*0.5)]
drop = [50,50,(-80-inc)]
new_step[i]=rise
new_step[(i+2)%4] = drop
new_step[(i+1)%4] = rise
new_step[(i-1)%4] = drop
crawler.do_step(new_step,speed)
##"[[right front], [left front], [left rear], [left rear]]")
def pushup(speed):
up=[[80, 0, -100], [80, 0, -100],[0, 120, -60], [0, 120, -60]]
down=[[80, 0, -30], [80, 0, -30],[0, 120, -60], [0, 120, -60]]
crawler.do_step(up,speed)
sleep(0.6)
crawler.do_step(down,speed)
sleep(0.6)
def swimming(speed):
for i in range(100):
crawler.do_step([[100-i,i,0],[100-i,i,0],[0,120,-60+i/5],[0,100,-40-i/5]],speed)
# main
def main():
speed = 100
swimming(speed)
pushup(speed)
handwork(speed)
twist(speed)
sleep(0.05)
if __name__ == "__main__":
main()