Git Product home page Git Product logo

freenove_big_hexapod_robot_kit_for_raspberry_pi's Introduction

Freenove Big Hexapod Robot Kit for Raspberry Pi

A Hexapod Robot Kit for Raspberry Pi.

Download

  • Use command in console

    Run following command to download all the files in this repository.

    git clone https://github.com/Freenove/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi.git

  • Manually download in browser

    Click the green "Clone or download" button, then click "Download ZIP" button in the pop-up window. Do NOT click the "Open in Desktop" button, it will lead you to install Github software.

If you meet any difficulties, please contact our support team for help.

Support

Freenove provides free and quick customer support. Including but not limited to:

  • Quality problems of products
  • Using Problems of products
  • Questions of learning and creation
  • Opinions and suggestions
  • Ideas and thoughts

Please send an email to:

[email protected]

We will reply to you within one working day.

Purchase

Please visit the following page to purchase our products:

http://store.freenove.com

Business customers please contact us through the following email address:

[email protected]

Copyright

All the files in this repository are released under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

markdown

This means you can use them on your own derived works, in part or completely. But NOT for the purpose of commercial use. You can find a copy of the license in this repository.

Freenove brand and logo are copyright of Freenove Creative Technology Co., Ltd. Can't be used without formal permission.

About

Freenove is an open-source electronics platform.

Freenove is committed to helping customer quickly realize the creative idea and product prototypes, making it easy to get started for enthusiasts of programing and electronics and launching innovative open source products.

Our services include:

  • Robot kits
  • Learning kits for Arduino, Raspberry Pi and micro:bit
  • Electronic components and modules, tools
  • Product customization service

Our code and circuit are open source. You can obtain the details and the latest information through visiting the following web site:

http://www.freenove.com

freenove_big_hexapod_robot_kit_for_raspberry_pi's People

Contributors

denzelchen avatar jinbaopeng avatar rherbrich74 avatar shaynee-mo avatar stieler-it avatar zhentao-lin avatar zhijguo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

freenove_big_hexapod_robot_kit_for_raspberry_pi's Issues

i2cdetect -y 1 with nothing. is it normal ?

Hi,
i can't do any test.py or main.py... i hava an error "OSError: [Errno 121] Remote I/O error" all the time.
can you help me ?

log:
i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --

Control.run() data parameters?

Is there documentation for the data parameters of the Control.run() server command somewhere (covering gait etc)? Apologies if it's me that can't find it..

Unclear software licensing

The documentation states that the project is 'open-source', however CC licensing is for content not software as per creative commons own FAQ: https://creativecommons.org/faq/#can-i-apply-a-creative-commons-license-to-software

If the only applied license is CC (which is not by definition an open-source license for the code) - can you clarify what license is applied for the open-source code advertised?

Open-source is means using an OSI compliant license (otherwise the code is published, but it's not open-source) and should therefore be a license named on the following page:

https://opensource.org/licenses/

Thanks in advance!

Rpi4B OS - Is debian compatible ?

Hello,
I have a simple question before to start.
Are your embedeed packages and scripts compatible with a Debian for Raspberry with p installed (instead of using the Raspberry OS) ?
Has anyone tried it successfully ?

Error 5

Hi I have assembled my Robotter BI page 67 and executed all the codes correctly. But when I want to test the servos now, it just says "Input/Output Error (Error 5). if I want to query the battery status or the ultrasonic sensor, the same thing happens. What can I do? Thanks in advance

apt-get update issue

When running setup.py, get error message of 'repo changed from "stable" to "oldstable"'
Need to use "sudo apt-get update --allow-releaseinfo-change" instead

ADCDevice.py update

Recently you've changed over to adafruit, is this an update to the kit or just a library update for the board?

Calibration data not saved fully

Hi, I think you're not saving calibration for two legs:

def save(self):
    command=cmd.CMD_CALIBRATION+'#'+'save'+'\n'
    self.client.send_data(command)

    self.point[0][0] = self.one_x.text()
    self.point[0][1] = self.one_y.text()
    self.point[0][2] = self.one_z.text()

    self.point[1][0] = self.two_x.text()
    self.point[1][1] = self.two_y.text()
    self.point[1][2] = self.two_z.text()

    self.point[2][0] = self.three_x.text()
    self.point[2][1] = self.three_y.text()
    self.point[2][2] = self.three_z.text()

    self.point[3][0] = self.four_x.text()
    self.point[3][1] = self.four_y.text()
    self.point[3][2] = self.four_z.text()

It misses:

    self.point[4][0] = self.five_x.text()
    self.point[4][1] = self.five_y.text()
    self.point[4][2] = self.five_z.text()

    self.point[5][0] = self.six_x.text()
    self.point[5][1] = self.six_y.text()
    self.point[5][2] = self.six_z.text()

Missing .ui files

Hi Freenove team,

is it possible to add the .ui files of Qt Designer so it is easier to change the example applications?

Control board schematic

Would it be possible to include the schematic for the control board in the repo? It's possible to reverse engineer it from the code, but a picture of it would be a lot easier (and act to document the included python code).

Unclear instructions in Tutorial.pdf page 57

Suggestion for documentation improvement:

In tutorial.pdf page 57 (commit df90b50) the instructions state to use the servo arms and screws in "servo package" - this should be clarified to state "MG90S" or "micro servo package" - otherwise it's not clear which servo package is to be used (and similar looking parts are in the MG996R servo packages).

Big Hexapod Robot Raspberry Pi 3 or 4?

Hi everyone,

I have a Raspberry Pi model 3B and a Raspberry Pi model 4B with 4GBs.

How much of a difference is it really going to make using the 4 over the 3? I’ll use the 4 if it will be a noticeable difference that is worth it, but if it doesn’t really make a difference, I’d rather repurpose my 4 for another project.

QPushButton not working on MacOS 12.1 (macOS Monterey)

For the past two days, I have been trying to get the Client app to work on macOS 12.1. My main problem is that something is blocking the QPushButton.clicked events from being detected and executed. Even after documenting out nearly all of the functionality code and added a print("Button clicked") in the handler, I still don't see the handler being executed at the click of a button.

Do you know how I can fix this?

Code/Server/Server.py get_interface_ip() fails on RasPi 4 with Raspberry Pi OS Bookworm

When running the server code with the following commands

cd ~/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server
sudo python main.py

I get the following error:

QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Traceback (most recent call last):
  File "/home/hex/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/main.py", line 85, in <module>
    myshow=MyWindow()
           ^^^^^^^^^^
  File "/home/hex/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/main.py", line 23, in __init__
    self.on_and_off_server()
  File "/home/hex/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/main.py", line 50, in on_and_off_server
    self.server.turn_on_server()
  File "/home/hex/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/Server.py", line 50, in turn_on_server
    HOST=self.get_interface_ip()
         ^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/hex/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/Server.py", line 44, in get_interface_ip
    return socket.inet_ntoa(fcntl.ioctl(s.fileno(),
                            ^^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 99] Cannot assign requested address

OS info:
Linux raspberrypi 6.1.0-rpi6-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.58-1+rpt2 (2023-10-27) aarch64 GNU/Linux

The system has an IP network connection while producing this error.

Any ideas as to the cause of and solution to this problem?

camera not working on latest raspbian

It appears the libraries have changed in the latest version of raspian and the code for the camera is no long functioning in the test code. I believe this change is due to the changing of the camera libraries to libcamera. The camera does work when using libcamera-still
Running fully updated image and updated packages:
Linux hexapod 6.1.0-rpi7-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.63-1+rpt1 (2023-11-24) aarch64 GNU/Linux

Please let me know if I can provide any further information

main.py crashes

Main.py crashes when the robot is controlled remotely. Occurs with Windows, ios, and Android clients. Pressing server off then on and reconnecting the client solves the issue. The crashes seem random and are not related to any particular action of the robot. Error log is provided below. The thread number in the first line changes, the rest of the error report is always the same. Tested with both Buster and Bullseye.

Python version:
Python 3.7.3 (default, Jan 22 2021, 20:04:44)
[GCC 8.3.0] on linux

Error log:
Exception in thread Thread-21:
Traceback (most recent call last):
File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
self.run()
File "/usr/lib/python3.7/threading.py", line 865, in run
self._target(*self._args, **self._kwargs)
File "/home/pi/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/Server.py", line 139, in receive_instruction
batteryVoltage=self.adc.batteryPower()
File "/home/pi/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/ADC.py", line 25, in batteryPower
val0 = self.batteryValue(0)
File "/home/pi/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/ADC.py", line 21, in batteryValue
return self.adc.analogRead(chn)
File "/home/pi/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/ADCDevice.py", line 52, in analogRead
value = self.bus.read_byte_data(self.address, self.cmd|(((chn<<2 | chn>>1)&0x07)<<4))
OSError: [Errno 121] Remote I/O error

Thank you
Alexey

Wiring diagram

Hello,
Can you furrnish a complete wiring for GPIO Interface specific to this product BigBug ?
in particular nothing indicates wether Interrupt output INT of MPU6050 is wired or not to the rpi
(The library used (mpu6050-raspberrypi) doesn't use it though, but it can be highly interresting)

thanks,
The library used (mpu6050-raspberrypi) doesn't use it though...

Tutorial.pdf, page 73, 4P cable

The 4P cable mentioned on this page isn't quite long enough to connect the ultrasonic ranging sensor to the interface board. The builder may have to replace it with a longer cable or modify it so that it is long enough. I had a couple of spare Dupont wires laying around, so I was able to use them as an extender so that the head would move correctly.

You might want to consider putting a longer version of the 4P cable in future releases of the kit.

Playing audio

Hi,
I finished building the Hexapod with no issues, and I have my client on my Ubuntu 20.04 machine. Everything worked fine, including all modules.

Then I modified the code to add a "Hello" button that plays a .wav audio file stored on the Raspberry. The button logic is working fine and transmitting the command properly to the server. However it looks that when starting the server (main.py) on the Raspberry it takes over the audio module and I get this error:

  File "/home/pi/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/Server.py", line 127, in play_audio
    pygame.mixer.init()
pygame.error: ALSA: Couldn't open audio device: Unknown error 524

I have tried play the same file from a test script on the raspberry, and it works fine with no errors:

import pygame

#Audio
def play_audio():
    pygame.mixer.init()
    pygame.mixer.music.load('/home/pi/audio/hello.wav')
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy(): 
        pygame.time.Clock().tick(10)

print("Playing audio...")
play_audio()

Is there a way for the server process to release the audio module, or maybe another way I can access the audio?
Thanks!

CPU / Battery usage

The server runs in a tight loop even when in "relaxed" mode (10 second idle timeout)

I would suggest to add this simple change to keep the raspberry much cooler and not using so much power when idle/relaxed;

diff --git a/Code/Server/Control.py b/Code/Server/Control.py
index 7e73f6e..d26060b 100644
--- a/Code/Server/Control.py
+++ b/Code/Server/Control.py
@@ -152,6 +152,8 @@ class Control:
         return flag
     def condition(self):
         while True:
+            if self.flag==0x00:
+                time.sleep(0.01)
             if (time.time()-self.timeout)>10 and  self.timeout!=0 and self.order[0]=='':
                 self.timeout=time.time()
                 self.relax(True)

Code duplication in ui_client.py

Hi, in this section your code is duplicated:

"QLineEdit{\n"
"border:1px solid #242424;\n"
"border-radius:3px;\n"
"padding:2px;\n"
"background:none;\n"
"selection-background-color:#484848;\n"
"selection-color:#DCDCDC;\n"
"}\n"
"QLineEdit:focus,QLineEdit:hover{\n"
"border:1px solid #242424;\n"
"}\n"
"QLineEdit{\n"
"border:1px solid #242424;\n"
"border-radius:3px;\n"
"padding:2px;\n"
"background:none;\n"
"selection-background-color:#484848;\n"
"selection-color:#DCDCDC;\n"
"}\n"
"\n"
"QLineEdit:focus,QLineEdit:hover{\n"
"border:1px solid #242424;\n"
"}\n"

It doesn't break anything but I think this would be sufficient:

"QLineEdit{\n"
"border:1px solid #242424;\n"
"border-radius:3px;\n"
"padding:2px;\n"
"background:none;\n"
"selection-background-color:#484848;\n"
"selection-color:#DCDCDC;\n"
"}\n"
"QLineEdit:focus,QLineEdit:hover{\n"
"border:1px solid #242424;\n"
"}\n"

camera.py fails on RasPi 4 with Raspberry Pi OS Bookworm

When testing the camera,on a raspberry pi 4 with the latest Raspberry Pi OS (Bookworm), I got the following error:

Traceback (most recent call last):
  File "/usr/lib/python3.11/threading.py", line 1038, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.11/threading.py", line 975, in run
    self._target(*self._args, **self._kwargs)
  File "/usr/lib/python3/dist-packages/picamera2/previews/null_preview.py", line 29, in thread_func
    callback(picam2)
  File "/usr/lib/python3/dist-packages/picamera2/previews/drm_preview.py", line 75, in handle_request
    picam2.process_requests(self)
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1265, in process_requests
    display.render_request(display_request)
  File "/usr/lib/python3/dist-packages/picamera2/previews/drm_preview.py", line 66, in render_request
    self.render_drm(self.picam2, completed_request)
  File "/usr/lib/python3/dist-packages/picamera2/previews/drm_preview.py", line 145, in render_drm
    raise RuntimeError("Failed to reserve DRM plane")
RuntimeError: Failed to reserve DRM plane
^CTraceback (most recent call last):
  File "/home/hex/Freenove_Big_Hexapod_Robot_Kit_for_Raspberry_Pi/Code/Server/camera.py", line 3, in <module>
    picam2.start_and_capture_file("image.jpg")
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1827, in start_and_capture_file
    self.start_and_capture_files(name=name, initial_delay=delay, preview_mode=preview_mode,
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1785, in start_and_capture_files
    self.switch_mode_and_capture_file(capture_mode, name.format(i))
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1387, in switch_mode_and_capture_file
    return self.dispatch_functions(functions, wait, signal_function, immediate=True)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/picamera2/picamera2.py", line 1304, in dispatch_functions
    return job.get_result() if wait else job
           ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3/dist-packages/picamera2/job.py", line 79, in get_result
    return self._future.result()
           ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/concurrent/futures/_base.py", line 451, in result
    self._condition.wait(timeout)
  File "/usr/lib/python3.11/threading.py", line 320, in wait
    waiter.acquire()

OS version:
Linux raspberrypi 6.1.0-rpi6-rpi-v8 #1 SMP PREEMPT Debian 1:6.1.58-1+rpt2 (2023-10-27) aarch64 GNU/Linux

Anybody know what the cause and solution might be?

Help woth installing autostart

when I begin the tutorial to code the desktop autostart, I'm met with error: XDG_RUNTIME_DIR not set in the environment.
And even when I follow EXACTLY what the tutorial tells me, it won't work.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.