Tiny Robot Plat Form With Pi Zero_part1

418

7

About: As a young kid, my curiosity in electronics was compelling.... why does thunder interrupt the radio reception? ....why does ROBOTs run without any wire?.... and I've been hooked on making thing ever since.

i am figuring about the part 4 roller bot out that arduino running in multi-program

crashing out ! (Tiny Robot Plat Form With nano_part_4 + reset circuit)

IN CODING(nano_part_4):

so i have to write a sub-program in order to reset it's self every second.

or it will not both receiving next remoter signals and running at the same time!

and finally, i use pi zero instead then.

because it's supporting multi-tasking!

and then , i slim it by took apart the IR receiver circuit and

took apart nano and the reset circuit, and remote it with

a wireless keyboard in order to speedup the response time.

Teacher Notes

Teachers! Did you use this instructable in your classroom?
Add a Teacher Note to share how you incorporated it into your lesson.

Step 1: Materials

pi zero * 1

dc-motor gears * 1

micro servo motor * 1

USB wireless keyboard*1 (as the remoter)

5v relay * 2

AAA batt * 4

AAA holder * 2

3.7 v Li battery(18650) * 1

3.7 v Li battery(18650)holder * 1

TR 1, 2 : 2N 3904 * 2

D 1, 2 : IN 4148 * 2

C 1 : 100 uF * 1

C 2 : 0.01 uF * 1 (for bypass noise)

R1 : 10 K OHM * 1

R 4,5 : 1 K OHM * 2

PCB * 1

mini breadboard * 1(prototype use)

screw * 9

BBQ stick * 1

Step 2: Make the Platform Chassis

Step 3: Coding

# import curses, GPIO and time

import curses

import RPi.GPIO as GPIO

import time

#set GPIO numbering mode and define output pins

GPIO.setmode(GPIO.BOARD)

GPIO.setup(7,GPIO.OUT)

GPIO.setup(11,GPIO.OUT)

GPIO.setup(12,GPIO.OUT)

GPIO.setup(13,GPIO.OUT)

GPIO.setup(15,GPIO.OUT)

p = GPIO.PWM(12, 100) # channel=12 frequency=100Hz

p.start(0)

# Get the curses window, turn off echoing of keyboard to screen, turn on

# instant (no waiting) key response, and use special values for cursor keys

screen = curses.initscr()

curses.noecho()

curses.cbreak()

screen.keypad(True)

try:

while True:

char = screen.getch()

if char == ord('q'):

break

elif char == curses.KEY_UP:

GPIO.output(7,False)

GPIO.output(11,True)

GPIO.output(13,False)

GPIO.output(15,True)

elif char == curses.KEY_DOWN:

GPIO.output(7,True)

GPIO.output(11,False)

GPIO.output(13,True)

GPIO.output(15,False)

elif char == curses.KEY_RIGHT:

p.ChangeDutyCycle(22)

time.sleep(0.5)

GPIO.output(11,True)

GPIO.output(7,False)

GPIO.output(13,False)

GPIO.output(15,True)

elif char == curses.KEY_LEFT:

p.ChangeDutyCycle(8)

time.sleep(0.5)

GPIO.output(7,False)

GPIO.output(11,True)

GPIO.output(13,True)

GPIO.output(15,False)

elif char == 10:

GPIO.output(7,False)

GPIO.output(11,False)

GPIO.output(13,False)

GPIO.output(15,False)

p.ChangeDutyCycle(13)

time.sleep(.5)

#p.stop()

finally:

#Close down curses properly, inc turn echo back on!

p.stop()

curses.nocbreak(); screen.keypad(0); curses.echo()

curses.endwin()

GPIO.cleanup()

Step 4: Wiring Up

Connect pi_zero to the PCB,

and then connect battery and motor together.

*** you need to save the code last step to EX: remote.py

and you append the .bashrc

"sudo python remote.py" in the last line

in order to boot up and run ! ***

Step 5: Test Run

Robotics Contest 2017

Participated in the
Robotics Contest 2017

Be the First to Share

    Recommendations

    • CNC Contest

      CNC Contest
    • Make it Move

      Make it Move
    • Teacher Contest

      Teacher Contest

    Discussions